Agent
Agent(model)实战
类似于 RL 的过程
Agent(WorkFlow)相关理论+实战
类似于设计有向无环图
https://qiankunli.github.io/2018/09/04/technology_manage.html
从头实现一个基于 LLM 的 Agent 是一个系统工程,对一个初学者来说要学习的太多,本文结合个人思考从学术研究到常见框架进行总结。
https://github.com/KelvinQiu802/llm-mcp-rag
流式输出:GitHub - ZejunCao/bilibili_code: bilibili 视频讲解所使用的课件代码记录
初学者网站:
0. Motivation
搭建可自我修正、持续优化的 Agent 系统。
可能的关键点:
1.上下文动态调整机制
Context 决定了 LLM 在各个场景中的实际表现。上下文包含:User Query、History Messages、Prompt、Search Results、Tool Call Results 等等。尽管 LLM 的 Attention 与自回归生成可以改变 context,但实践证明这种机制还不足够,现有 LLM 依然需要精细 context 设置才能更好完成任务。分治、专注:相比使用单个复杂 Prompt,将复杂任务拆解为简单子任务,并为每个子任务设置独立的 Prompt 更容易优化,取得更好的整体效果。多尺度上下文:将 Context 中的冗余信息进行压缩或扩充。
2.反思与适应机制
1.大模型常见工具、平台
分布式训练框架:Accelerate(初始化)、DeepSpeed、MegaTron-LM、Colossal-AI、FairScale
推理框架:vLLM、LMDeploy、TensorRT-LLM、TGI、DeepSpeed-IF3
分布式任务调度框架:Ray
LLM 微调框架:OpenRLHF、LLaMA Factory、VeRL
GPT给出的VeRL与其他模块的关系
数据 → SFT → Reward Model → Preference Data → PPO / DPO / IPO → 微调完成
↑ ↑ ↑ ↓
DeepSpeed Accelerate Ray Tune (可选) 模型 API 暴露,供 LangChain 调用
应用开发框架:LangChain、pydantic_ai Web UI:Gradio、Streamlit、FastAPI、Flask
2.相关概念
Agent = LLM + Planning + Memory + Tools + Action
这里头 LLM 当然是核心,其推理、规划等能力都要出色,也可以使用多个 LLM 来联合完成任务。Planning 是
2.1.Agent System
大模型没那么大:ACL 2025 | 大模型提示词不是「随便写」!这篇文章告诉你:每句话都在重塑 AI 的「思考路径」
LLM 基座的选择很重要,因为有的模型推理能力不足,或者缺乏具备创造/调用工具的能力,难以支持复杂的 Agent 任务。除了基座选择以外,Prompt 也是重要的一环,是让 Agent 实现自主的关键。具体来说,Prompt 可以同时起到角色定位、陈述性和流程性等记忆(用户喜好、工具定义、可行的工具流程)、思维能力增强(CoT 能力、反思能力、抽象思维、发散思维、归纳思维、思维结构塑造)和内外部感知(工具、环境的感知)等作用,优化速度很快而且成本很低。因此 Prompt 微调相比参数微调对 Agent 更为重要,更适合测试时适应,而且给用户的反馈是最直接的。参数微调则更适合在获得大量数据后将知识内化。CoT 实际上也可以看做一种自己 Prompt 自己的过程【论文】,有序化搜索空间,提升泛化能力,因此理论上来说存在不需要任何 System Prompt 的 Agent。【想法:Prompt 太多了也不好,每次推理速度很慢,如何实现 Prompt 的内化?可以将 Prompt LLM 的能力蒸馏到 w/o Prompt LLM 中,通过对比两个模型的性能来实现自我学习。或者自己将 Prompt 进行总结,对比总结前后的性能来有效提升 LLM 能力】
Prompt 也会起到 负面作用,比如我在设计 Agent 的时候,一开始就只设定了其智能助理的身份,结果 LLM 就丧失了利用自身知识的对话能力。比如,询问我设计的 Agent 某个动漫每一集的内容,它无法回答出来,而在无 Prompt 的情况下就可以很好的回答问题。最后,我 在 Prompt 中引入了一个知识库的身份,引导其可以利用自身知识来回答问题,才部分解决了这一问题。还有比如 Prompt 如果包含不合理的工作流,也会让 LLM 效果更差。
2.2.Memory:RAG、记忆系统
看完 Cursor 记忆功能提示词后,我发现了 AI 智能体记忆设计的秘诀
首次全面复盘 AI Agents 记忆系统:3 大类,6 种操作!
2.3.Tools:Function Call、Model Context Protocol (MCP)
不理不理:Qwen Function Calling 的对话模板及训练方法总结
MCP、function calling 这两者有什么区别?与 AI Agent 是什么关系?
战士金:大模型工具调用(function call)原理及实现
MCP 的 Github 链接:
https://github.com/modelcontextprotocol/python-sdk
@mcp.tools 的实现
LastWhisper:MCP (Model Context Protocol),一篇就够了。
https://github.com/liaokongVFX/MCP-Chinese-Getting-Started-Guide?tab = readme-ov-file
MCP 的 Prompt(未确认)
Tool: {self.name}
Description: {self.description}
Arguments:
{chr(10).join(args_desc)}
2.4.Planning:WorkFlow、Chain of Thought (CoT)
简单来讲,就是通过将问题进行分解并依次求解,来提升复杂问题的处理能力,例如做数学题、编写代码。CoT 的发展历程为 IO (Input-Output) -> CoT -> ToT (Tree of Thought)。实现方式包括:
Prompt
3.相关研究
3.1.Agent 的仿生启发
吕阿华:【AI Agent 研究综述】《基础智能体的进展与挑战:从脑启发智能到进化、协作和安全系统》(全文)
3.2.Agent 综述
LinguaMind:万字长文!何谓 Agent,为何 Agent?
3.3.Agent 前沿
自动驾驶之心:思维链再进化!极简推理范式 Chain of Draft:推理 token 爆砍 80%~
机器之心:OTC‑PO 重磅发布 | 揭开 o3 神秘面纱,让 Agent 少用工具、多动脑子!
3.3. Agent 项目与系统
https://github.com/Fosowl/agenticSeek
如何快速理解已有 Github 项目,并用于自己的项目中?
Claude code 的逆向工程:
https://github.com/shareAI-lab/analysis_claude_code
4.实战
4.1. Prompt 设计心得
Prompt 一方面给予了模型引导,另一方面也会限制模型能力
4.1.常见格式
模型训练-sharegpt,保存为 jsonl:
{
"conversations": [
{
"from": "human",
"value": "人类指令"
},
{
"from": "function_call",
"value": "工具参数"
},
{
"from": "observation",
"value": "工具结 果"
},
{
"from": "gpt",
"value": "模型回答"
}
],
"system": "系统提示词(选填)",
"tools": "工具描述(选填)"
}
]
conversations 是一个列表,每个元素包含一个 from 和一个 value,分别代表发言的角色以及内容。conversations 中奇数 列为外部环境反馈(human、observation),偶数列为 Agent 的 Action(gpt、funciton_call)。system 和 tools 是其他参数。
sharegpt 还可以设置偏好数据集,其中 conversations 为多轮对话(奇数个,需要模型输出回答)。chosen 和 rejected 则为正负样本对。
[
{
"conversations": [
{
"from": "human",
"value": "人类指令"
},
{
"from": "gpt",
"value": "模型回答"
},
{
"from": "human",
"value": "人类指令"
}
],
"chosen": {
"from": "gpt",
"value": "优质回答"
},
"rejected": {
"from": "gpt",
"value": "劣质回答"
}
}
]
模型训练-alpaca,保存为 jsonl 或者 json:
{
"instruction": "Describe the benefits of exercise.",
"input": "",
"output": "Exercise improves mental and physical health..."
}
LLaMA 2 / ChatLLaMA 格式(Meta 官方推荐)
huggingface 上 llama 2 chat 格式是多轮 messages 模式:
{
"conversations": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What's the weather like?"},
{"role": "assistant", "content": "It's sunny and warm."}
]
}
Vicuna(基于 LLaMA + ShareGPT)
Vicuna 用的是 ShareGPT 格式,类似 messages 列表。
{
"conversations": [
{"from": "human", "value": "Tell me a joke."},
{"from": "gpt", "value": "Why did the chicken cross the road? To get to the other side!"}
]
}
Baichuan / Qwen / ChatGLM 格式
一般也采用 messages 数组结构,但 role 命名不同。
{
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What's AI?"},
{"role": "assistant", "content": "AI stands for Artificial Intelligence..."}
]
}
4.1.基础 Agent 实现
无涯:基于本地知识的问答机器人 langchain-ChatGLM
RedHerring:手搓一个最小的 Agent 系统 — Tiny Agent
wx1997:AI Agent 系列二:Agent 基础技术篇(ReACT、ReST、AgentTuning、Reflexion)
摇一摇:我也复刻了一个 Manus,带高仿 WebUI 和沙盒
4.1.结合模型训练的 Agent
4.2.NLP 奇幻之旅:vLLM 入门(一)初始 vLLM
4.3
字节跳动开源了 Deep Research 项目 DeerFlow,这将如何影响开源社区和技术发展?
SkyRL:首个现实环境、长周期 LLM Agent 的端到端 RL 流水线框架
设计 action space 接近于帮 LLM agent 的抽象出它的 skills
设计 state space 接近于帮 LLM 选择需要置入 上下文的内容或者写提示词
reward function 相当于帮 LLM 设计 evaluation 和 verify 模块,直接决定 它的自行迭代环路的 转动速度
manus
什么是 manus
-
Manus 是一个真正自主的 AI 代理,能够解决各种复杂且不断变化的任务。其名称来源于拉丁语中 "手" 的意思,象征着它能够将思想转化为行动的能力。与传统的 AI 助手不同,Manus 不仅能提供建议或回答,还能直接交付完整的任务结果。
-
作为一个 "通用型 AI 代理",Manus 能够自主执行任务,从简单的查询到复杂的项目,无需用户持续干预。用户只需输入简单的提示,无需 AI 知识或经验,即可获得高质量的输出。
-
这种 "一步解决任何问题" 的设计理念使 Manus 区别于传统的 AI 工作流程,更易于普通用户使用。
关于 manus
-
Manus 之前做的是 AI 浏览器,后跟 Arc 团队转型做 Dia 遇到了类似的问题,但比他们做的更多更快,于是转去做了现在的 Manus。之前的 Browse Use、Computer Use 的人机协同体验不佳, AI 在跟用户抢夺控制权,当你下达任务之后,只能在一旁欣赏 AI 的表演,如果误触,流程就可能被打断。AI 需要使用浏览器,但 Manus 团队认为应该给 AI 一个自己云端的浏览器,最后把结果反馈给用户就行。
-
Less Structure, More Intelliengence. 这是业内大家讨论比较多的一个非共识,对于这个问题的热烈讨论从扣子 Coze 等平台支持通过 workflow 构建 AI 应用就一直存在。比如 Flood Sung 就在 Kimi 发布 k1.5 时表态,“现在的各种 Agentic Workflow 就是各种带 Structure 的东西,它一定会限制模型能力,没有长期价值,早晚会被模型本身能力取代掉。Manus 就是这样的设计,没有任何搭建的 workflow,所有的能力都是模型自然演化出来的,而不是用 workflow 去教会的。
-
Manus 设计的第一个核心是给大模型配了一个电脑,让它一步步规划去做 observation 和 action;第二个核心是给它配了系统权限,好比给新来的同事开通了一些公司账户权限,Manus 接入了大量的私有 API,能够处理许多结构化的权威数据;第三个核心是给它 Training,给它培训,就好比跟新来的同事也有磨合的过程,Manus 也会根据你的使用习惯不断的去学习你的要求。
-
为什么 Manus 说自己是“全球首款真正意义上的通用 AI Agent?”那之前的 Operator、Deep Research、MetaGPT、AutoGPT、Eko 等等不算吗?以及为啥有人说 Manus 是套壳到了极致?在我们的理解里,其实之前的一些 Agent 开源框架也能实现 Manus 类似的效果,但 Manus 做了一些不错的工程优化,率先的产品化了出来。这里 cue 一下另一个华人团队 Flowith,他们半年前做的 Oracle 模式,基本都能实现目前 Manus Demo 演示出的效果。
核心架构解析
Manus 的架构设计体现 Multi-Agent 系统的典型特征,其核心由三大模块构成:

1.规划模块(Planning)
规划模块是 Manus 的 "大脑",负责理解用户意图,将复杂任务分解为可执行的步骤,并制定执行计划。这一模块使 Manus 能够处理抽象的任务描述,并将其转化为具体的行动步骤。
作为系统的决策中枢,规划模块实现:
-
任务理解与分析
-
任务分解与优先级排序
-
执行计划制定
-
资源分配与工具选择
-
语义理解与意图识别(NLU)
-
复杂任务分解为 DAG 结构
-
异常处理与流程优化
2.记忆模块(Memory)
记忆模块使 Manus 能够存储和利用历史信息,提高任务执行的连贯性和个性化程度。该模块管理三类关键信息:
-
用户偏好:记录用户的习惯和喜好,使后续交互更加个性化
-
历史交互:保存过去的对话和任务执行记录,提供上下文连贯性
-
中间结果:存储任务执行过程中的临时数据,支持复杂任务的分步执行
构建长期记忆体系:
class MemorySystem:
def __init__(self):
self.user_profile = UserVector() ## 用户偏好向量
self.history_db = ChromaDB() ## 交互历史数据库
self.cache = LRUCache() ## 短期记忆缓存
3.工具使用(Tool Use)
工具使用模块是 Manus 的 "手",负责实际执行各种操作。该模块能够调用和使用多种工具来完成任务,包括:
-
网络搜索与信息检索
-
数据分析与处理
-
代码编写与执行
-
文档生成
-
数据可视化
这种多工具集成能力使 Manus 能够处理各种复杂任务,从信息收集到内容创建,再到数据分 析。
Multi-Agent 系统:智能协作的艺术
-
Multi-Agent 系统(MAS)由多个交互的智能体组成,每个智能体都是能够感知、学习环境模型、做出决策并执行行动的自主实体。这些智能体可以是软件程序、机器人、无人机、传感器、人类,或它们的组合。
-
在典型的 Multi-Agent 架构中,各个智能体具有专业化的能力和目标。例如,一个系统可能包含专注于内容摘要、翻译、内容生成等不同任务的智能体。它们通过信息共享和任务分工的方式协同工作,实现更复杂、更高效的问题解决能力。
运转逻辑与工作流程
- Manus 采用多代理架构(Multiple Agent Architecture),在独立的虚拟环境中运行。其运转逻辑可以概括为以下流程:

完整执行流程
-
任务接收:用户提交任务请求,可以是简单的查询,也可以是复杂的项目需求。Manus 接收这一输入,并开始处理。
-
任务理解:Manus 分析 用户输入,理解任务的本质和目标。在这一阶段,记忆模块提供用户偏好和历史交互信息,帮助更准确地理解用户意图。
- 运用先进的自然语言处理技术对用户输入进行意图识别和关键词提取
- 在需求不明确时,通过对话式引导帮助用户明晰目标
- 支持文本、图片、文档等多模态输入,提升交互体验
-
任务分解:规划模块将复杂任务自动分解为多个可执行的子任务,建立任务依赖关系和执行顺序。
// todo.md
- [ ] 调研日本热门旅游城市
- [ ] 收集交通信息
- [ ] 制定行程安排
- [ ] 预算规划
- 任务初始化与环境准备:为确保任务执行的隔离性和安全性,系统创建独立的执行环境:
## 创建任务目录结构
mkdir -p {task_id}/
docker run -d --name task_{task_id} task_image
-
执行计划制定:为每个子任务制定执行计划,包括所需的 工具和资源。历史交互记录在这一阶段提供参考,帮助优化执行计划。
-
自主执行:工具使用模块在虚拟环境中自主执行各个子任务,包括搜索信息、检索数据、编写代码、生成文档和数据分析与可视化等。执行过程中的中间结果被记忆模块保存,用于后续步骤。
系统采用多个专业化 Agent 协同工作,各司其职:
每个 Agent 的执行结果都会保存到任务目录,确保可追溯性:
class SearchAgent:
def execute(self, task):
## 调用搜索 API
results = search_api.query(task.keywords)
## 模拟浏览器行为
browser = HeadlessBrowser()
for result in results:
content = browser.visit(result.url)
if self.validate_content(content):
self.save_result(content)
- Search Agent: 负责网络信息搜索,获取最新、最相关的数据,采用混合搜索策略(关键词+语义)
- Code Agent: 处理代码生成和执行,实现自动化操作,支持 Python/JS/SQL 等语言
- Data Analysis Agent: 进行数据分析,提取有价值的洞见,Pandas/Matplotlib 集成
- 动态质量检测:
def quality_check(result):
if result.confidence < 0.7:
trigger_self_correction()
return generate_validation_report()
- 结果整合:将各个子任务的结果整合为最终输出,确保内容的连贯性和完整性。
-
智能整合所有 Agent 的执行结果,消除冗余和矛盾
-
生成用户友好的多模态输出,确保内容的可理解性和实用性
-
结果交付:向用户提供完整的任务结果,可能是报告、分析、代码、图表或其他形式的输出。
-
用户反馈与学习:用户对结果提供反馈,这些反馈被记忆模块记录,用于改进未来的任务执行。强化模型 微调,不断提升系统性能。
manus 的核心能力-推测与拆解
- manus 核心优势在 Controller 层
在 agent flow 能力(observe,plan 和 tool decide 的大模型环节),大概率这些是使用自己调优训练的大模型的,并且基础模型大概率是 qwen
- Manus 比较亮眼的能力:
- Plan 较为充分,有条理
- 决定使用什么 tool 的能力很强(例如可以玩 2048,用 yahoo api 下载布伦特原油价格数据)
- 浏览器上的观察能力不弱(例如可以展开日历控件并且尝试翻页)
- 与用户的交互能力不弱(可以理解到弹出了小红书登录框并且交互要求登录)
- 初步判断 agent flow 中应该是使用了自己调优的模型
- 单步的 tool 或者 agent 调用可能没有调优,例如 codeact 模型未必需要在论文基础上调优(目前看官方爆料,大概率用的是 Claude Sonnet 3.7)
- manus 的核心壁垒是数据
- 很简单,如果得知核心优势是调优的模型,那么核心壁垒就一定是调优数据
- Manus 团队之前是做 AI 浏览器的,浏览器交互数据可能很充分(这也说明了为什么他们浏览器操作很多,并且只能程度很高);这里可以贡献了 plan 和 observe 部分的数据。
- 其他 agent flow 的数据未知,尤其是 tool decide 的数据情况未知
- manus 的 AgentFlow 有没有可能使用了其他黑科技
- 之前觉得有黑科技,或者说实际上之后可以发展为 CodeAgent(就是整个 plan 和 tasks 都是 code 描述的,包括方法调用,状态码,任务复杂结构,try catch 容错等)
- 但目前看 manus 的模式不是,还是本地起 todo.md,里面是 task-》subtask 模式
- 不能排除其他黑科技
- manus 不用 MCP 协议的原因
- 本质上 Manus 只使用了 3 个工具调用:vscode - python, Linux sandbox - computer use, chrome - browser use。并且开发人员否认了 MCP 的使用,hidecloud 也在群里表示完全不理解为什么要用 MCP。
- MCP 其实提供了一个更大范围的可调用 tool list,但是它没有解决排行问题和检索问题
- MCP 对于 Manus 模式的贡献可能会有 2 个,一个是更好的搜索源,一个是官方的长尾 rpa(例如操作美团或者 12306),除此之外没有什么帮助
技术特点与创新
Manus 具有多项技术特点,使其在 AI 代理领域脱颖而出:
-
自主规划能力
- Manus 能够独立思考和规划,确保任务的执行,这是其与之前工具的主要区别。在 GAIA 基准测试(General AI Assistant Benchmark)中,Manus 取得了最新的 SOTA(State-of-the-Art)成绩,这一测试旨在评估通用 AI 助手在现实世界中解决问题的能力。在复杂任务中实现 94%的自动完成率。
-
上下文理解
- Manus 能够从模糊或抽象的描述中准确识别用户需求。例如,用户只需描述视频内容,Manus 就能在平台上定位相应的视频链接。这种高效的匹配能力确保了更流畅的用户体验。支持 10 轮以上的长对话维护。
-
多代理协作
- Manus 采用多代理架构,类似于 Anthropic 的 Computer Use 功能,在独立的虚拟机中 运行。这种架构使不同功能模块能够协同工作,处理复杂任务。
-
工具集成
- Manus 能够自动调用各种工具,如搜索、数据分析和代码生成,显著提高效率。这种集成能力使其能够处理各种复杂任务,从信息收集到内容创建,再到数据分析。支持自定义工具插件开发。
-
安全隔离
- 基于 gVisor 的沙箱环境,确保任务执行的安全性和稳定性。
-
其他技术优势
-
环境隔离的任务执行,确保安全性和稳定性
-
模块化的 Agent 设计,支持灵活扩展
-
智能化的任务调度机制,最大化资源利用
-
未来优化方向
-
任务依赖关系升级为 DAG (有向无环图) 结构,支持更复杂的任务流
-
引入自动化测试和质量控制,提高执行结果的可靠性
-
发展人机混合交互模式,结合人类洞察和 AI 效率
技术架构依赖
系统的强大能力得益于多层次的模型协作:
-
轻量级模型:负责意图识别,提供快速响应
-
Deepseek-r1:专注于任务规划,把控全局策略
-
Claude-3.7-sonnet:处理复杂的多模态任务,提供深度理解能力