Manus智能体学习
智能体分类
反应智能体
根据固定输入和固定规则作出反应,类似简单的聊天机器人,没有真正的规划能力
有限规划智能体
简单的多步骤执行任务,比如联网搜索等,像现在的GPT一样
自主规划智能体
根据目标自主分解任务制定计划,选择工具,一步步完成任务
关键技术
CoT思维链
CoT (Chain of Thought)思维链是一种让 AI像人类一样“思考”的技术,帮助 AI 在处理复杂问题时能够按步骤思考。对于复杂的推理类问题,先思考后执行,效果往往更好。而且还可以让模型在生成答案时展示推理过程,便于我们理解和优化 Al。
CoT 的实现方式其实很简单,可以在输入 Prompt时,给模型提供额外的提示或引导,比如“让我们一步一步思考这个问题”,让模型以逐步推理的方式生成回答。还可以运用 Prompt 的优化技巧few shot,给模型提供包含思维链的示例问题和答案,让模型学习如何构建自己的思维链。
Agent Loop
在传统的聊天模型中,每次用户提问后,AI回复一次就结束了。但在智能体中,AI 回复后可能会继续自主执行后续动作(如调用工具、处理结果、继续推理),形成一个自主执行的循环,直到任务完成(或者超出预设的最大步骤数)。
ReAct模式
ReAct (Reasoning + Acting)是一种结合推理和行动的智能体架构,它模仿人类解决问题时“思考-行动-观察”的循环,目的是通过交互式决策解决复杂任务,是目前最常用的智能体工作模式之一。
核心思想:- 推理(Reason):将原始问题拆分为多步骤任务,明确当前要执行的步骤,比如”第一步需要打开编程导航网站”。
- 行动(Act):调用外部工具执行动作,比如调用搜索引擎、打开浏览器访问网页等。
- 观察(Observe):获取工具返回的结果,反馈给智能体进行下一步决策。比如将打开的网页代码输入给Al
- 循环迭代:不断重复上述3个过程,直到任务完成或达到终止条件。
OpenManus实现原理
整体架构
OPENMANUS ├── .github ├── .vscode └── app ├── agent // 智能体核心 ├── flow // 工作流 ├── mcp // 实现MCP ├── prompt // 项目中用到的提示词 ├── sandbox // 隔离的沙箱环境 └── tool // 各种工具 ├── __init__.py ├── bedrock.py ├── config.py // 配置 ├── exceptions.py // 异常处理 ├── llm.py // 大模型调用 ├── logger.py └── schema.py
agent
BaseAgent:最基础的代理抽象类,定义了所有代理的基本状态管理和执行循环
ReActAgent:实现ReAct模式的代理,具有思考和行动两个步骤
ToolCallAgent:能够调用工具的代理,继承自ReActAgent并扩展了工具调用能力
Manus:具体实现的智能体实例,集成了所有能力并添加了更多专业工具
tool
定义各种各样的工具
prompt
定义了整个项目中可能用到的提示词,这块可以狠狠借鉴学习
其他支持
记忆系统:通过记忆存储对话历史和中间状态,Eino里通过ctx可以实现
LLM大模型
工具系统
流程控制,通过state进行状态管理循环
智能体工作流
智能体工作模式
prompt chaining 提示链工作流
现在最常见的智能体工作流模式,核心思想是将一个复杂任务拆解为一系列有序的子任务,每一步由LLM处理前一步输出,逐步推进任务完成
Routing路由分流工作流
根据输入内容的类型和特征,将任务分发给下游适合的智能体或者处理流程
Parallelization 并行化工作流
把任务拆解为并习性处理的子任务,最后聚合各自结果
比如处理长文档的时候,分段,每一段由不同的智能体并行总结,最后通过投票机制提升结果准确度
Orchestrator-Workers 协调器-执行者工作流
引入以为管理者,把任务自行动态拆解出子任务,然后分配给工人智能体,最后整合结果。适用于任务结构不确定需要动态分解的场合
Evaluator-Optimizer 评估-优化循环工作流
模拟实现了人类“写→评→改”的过程,一个智能体负责生成初步结果,另一个负责评估和反馈,二者循环迭代优化输出
A2A协议
智能体世界里的HTTP协议,让不同厂商,不同平台,不同能力的智能体能够像团队成员一样互相理解,协作和分工
以后就可以实现调用云服务一样,调用各个专业的智能体服务