Manus 是一个基于多智能体架构的智能任务执行系统,能够自动分析用户意图、规划任务、执行操作并验证结果。系统采用模块化设计,支持多种AI模型和工具集成,适用于自动化任务处理、智能问答、数据分析等场景。
- 🤖 多智能体协作: 意图分析、任务规划、执行、验证等智能体协同工作
- 🛠️ 丰富的工具生态: 支持文件操作、网络搜索、MCP协议工具等
- 🔄 异步任务处理: 基于asyncio的高性能异步任务执行
- 🎯 智能意图识别: 自动分析用户任务类型并选择合适的执行策略
- 📊 实时状态监控: 提供任务执行状态和系统运行状态监控
- 🌐 多AI模型支持: 支持OpenAI、Anthropic、Gemini等主流AI模型
┌─────────────────────────────────────────────────────────────┐
│ Manus 智能体系统 │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 意图分析 │ │ 任务规划 │ │ 任务执行 │ │
│ │ 智能体 │ │ 智能体 │ │ 智能体 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 任务执行流水线 │ │
│ │ 意图分析 → 规划 → 执行 → 验证 → 汇总 │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 工具注册 │ │ 任务管理 │ │ 结果验证 │ │
│ │ 中心 │ │ 系统 │ │ 智能体 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
manus/
├── 📁 config/ # 配置文件目录
│ ├── ai_models.json # AI模型配置
│ └── servers.json # 服务器配置
├── 📁 src/ # 源代码目录
│ ├── 📁 agents/ # 智能体模块
│ │ ├── base.py # 智能体基类
│ │ ├── intent.py # 意图分析智能体
│ │ ├── planner.py # 任务规划智能体
│ │ ├── worker.py # 任务执行智能体
│ │ ├── verifier.py # 结果验证智能体
│ │ ├── llm.py # LLM接口封装
│ │ └── promp.py # 提示词管理
│ ├── 📁 tools/ # 工具模块
│ │ ├── base.py # 工具基类
│ │ ├── registry.py # 工具注册中心
│ │ ├── 📁 local/ # 本地工具
│ │ │ ├── file_tools.py # 文件操作工具
│ │ │ └── baidu_search_tools.py # 百度搜索工具
│ │ └── 📁 mcp/ # MCP协议工具
│ │ └── mcp_tools.py # MCP工具实现
│ ├── models.py # 数据模型定义
│ └── system.py # 系统核心编排器
├── 📁 venv/ # 虚拟环境
├── config.py # 系统配置管理
├── demo.py # 演示脚本
├── env.example # 环境变量示例
├── requirements.txt # 依赖包列表
├── run.py # 主程序入口
└── README.md # 项目说明文档
系统经过深度优化,实现了智能的任务验证和重试机制:
- BaiduWebSearch: 专门用于事实性信息查询(如出生日期、年龄、地点等)
- BaiduAISearch: 专门用于复杂问题分析、智能问答和多媒体资源搜索
- 大模型能根据查询类型自动选择合适的搜索工具
- 验证标准优化:重点关注信息准确性而非结果数量
- 评分体系:70分以上认为质量达标,避免不必要的重试
- 权威性评估:优先信任权威来源(如百度百科、豆瓣等)
- 避免过度重试:第一轮结果质量达标时不再重试
- 结果导向评估:重点关注是否回答了用户问题
- 重试条件明确:只在完全失败或信息严重缺失时才重试
- 2025年基准:所有时间计算都基于2025年
- 年龄计算准确:确保人物年龄计算的正确性
- 信息时效性:优先使用最新和权威的信息源
| 方面 | 优化前 | 优化后 |
|---|---|---|
| 工具选择 | 随机选择,可能不合适 | 智能选择,根据查询类型 |
| 验证评分 | 70分以下,触发重试 | 80-90分,直接完成 |
| 重试次数 | 3轮重试,浪费时间 | 0-1轮,提高效率 |
| 时间准确性 | 使用过时年份(2023年) | 使用正确年份(2025年) |
| 用户体验 | 等待时间长,结果可能错误 | 响应快速,结果准确 |
- Python 3.8+
- Windows 10/11 或 Linux/macOS
- 至少 2GB 可用内存
-
克隆项目
git clone <repository-url> cd manus
-
创建虚拟环境
python -m venv venv # Windows venv\Scripts\activate # Linux/macOS source venv/bin/activate
-
安装依赖
pip install -r requirements.txt
-
配置环境变量
cp env.example .env # 编辑 .env 文件,填入您的API密钥 -
验证安装
python config.py
在 .env 文件中配置以下关键参数:
# AI模型API密钥(至少配置一个)
OPENAI_API_KEY=sk-your-openai-api-key
ANTHROPIC_API_KEY=sk-ant-your-anthropic-api-key
GEMINI_API_KEY=AIza-your-gemini-api-key
# 系统配置
LOG_LEVEL=INFO
TASK_TIMEOUT=300
MAX_CONCURRENT_TASKS=5
# 工具配置
ENABLE_WEB_SEARCH=true
ENABLE_FILE_OPERATIONS=true-
单次任务执行
python run.py --mode single --task "搜索Python异步编程教程" -
交互模式
python run.py --mode interactive
-
指定日志级别
python run.py --mode single --task "分析项目代码" --log-level DEBUG
在交互模式下,您可以使用以下命令:
help- 显示帮助信息tools- 显示所有可用工具status- 显示系统状态clear- 清屏quit/exit- 退出程序
系统支持多种类型的任务:
- 🤖 AI问答: "你是什么模型?"
- 🔍 搜索任务: "搜索关于Python异步编程的信息"
- 📁 文件任务: "检查当前项目的文件结构"
- 📊 分析任务: "分析项目代码的复杂度"
- 🌐 网络任务: "查询当前天气情况"
用户提交任务
↓
1. 意图分析 (IntentClassifierAgent)
↓
2. 任务规划 (TaskPlannerAgent)
↓
3. 串行执行子任务 (WorkerAgent + VerifierAgent)
├── 第1轮执行计划
│ ├── 执行子任务1 → 立即验证 → 通过则继续,失败则重试(最多3次)
│ ├── 执行子任务2 → 立即验证 → 通过则继续,失败则重试(最多3次)
│ ├── ...
│ └── 执行子任务N → 立即验证 → 通过则继续,失败则重试(最多3次)
│
├── 某个子任务3次失败 → 立即停止 → 重新规划 🔄
│
├── 第2轮执行计划(重新规划后)
│ ├── 基于失败原因生成新的子任务序列
│ └── 重复执行流程
│
├── 第3轮执行计划(重新规划后)
│ ├── 最后一次重新规划机会
│ └── 重复执行流程
│
└── 达到最大重新规划次数 → 任务失败 ❌
↓
4. 生成最终结果(最后一个子任务的结果)
↓
任务完成
-
系统初始化 (
run.py)- 加载环境变量和配置
- 初始化智能体系统
- 注册可用工具
-
任务提交 (
ManusSystem.submit_task)- 创建任务对象
- 初始化任务上下文
- 启动异步执行流水线
-
意图分析 (
IntentClassifierAgent)- 分析用户任务类型
- 确定执行策略
- 选择合适的工具集
-
任务规划 (
TaskPlannerAgent)- 分解复杂任务为子任务
- 制定执行计划
- 分配执行资源
-
任务执行 (
WorkerAgent)- 按计划执行子任务
- 调用相应工具
- 收集执行结果
-
智能验证 (
VerifierAgent)- 单任务验证:对主要任务结果进行质量评估
- 智能决策:基于结果质量判断是否需要重试
- 避免重试:如果结果质量达标(≥70分),直接完成
- 必要重试:只有在结果质量不达标时才重新执行
-
结果汇总 (
ManusSystem)- 聚合执行结果
- 生成最终报告
- 更新任务状态
- 意图分析智能体: 负责理解用户意图,确定任务类型
- 规划智能体: 将复杂任务分解为可执行的子任务序列
- 执行智能体: 负责具体任务的执行,调用相应工具
- 验证智能体: 验证执行结果的正确性和完整性
-
文件操作工具 (
file_tools.py)- 文件读写、目录遍历、文件搜索等
-
百度搜索工具 (
baidu_search_tools.py)- 网络搜索、内容抓取等
- SEO数据库工具: 关键词管理、监控数据等
- 百度建议工具: 搜索建议、相关搜索等
系统采用插件化工具注册机制,支持动态加载和配置工具:
# 工具注册示例
@tool_registry.register("file_reader")
class FileReaderTool(BaseTool):
def execute(self, file_path: str) -> str:
# 工具实现逻辑
pass系统支持多环境配置:
- 开发环境 (
DevelopmentConfig): 调试模式,详细日志 - 生产环境 (
ProductionConfig): 性能优化,错误日志 - 测试环境 (
TestingConfig): 测试模式,禁用外部服务
支持通过环境变量动态调整:
# 调整工作智能体数量
WORKER_COUNT=5
# 设置任务超时时间
TASK_TIMEOUT=600
# 控制并发任务数
MAX_CONCURRENT_TASKS=10- 任务执行统计
- 智能体运行状态
- 工具使用情况
- 系统性能指标
使用 loguru 提供结构化日志:
- 支持多级别日志
- 彩色输出格式
- 异步日志写入
- 日志轮转管理
- 继承
BaseTool类 - 实现
execute方法 - 使用装饰器注册工具
- 添加工具描述和参数说明
- 继承
BaseAgent类 - 实现核心业务逻辑
- 集成到系统流水线
- 添加配置和参数
- 修改
config.py文件 - 添加新的配置项
- 更新环境变量示例
- 验证配置有效性
# 运行所有测试
python -m pytest tests/
# 运行特定测试
python -m pytest tests/test_system.py
# 生成覆盖率报告
python -m pytest --cov=src tests/- 单元测试: 核心功能模块
- 集成测试: 智能体协作
- 端到端测试: 完整任务流程
-
环境准备
# 使用生产配置 export ENVIRONMENT=production export LOG_LEVEL=WARNING
-
性能优化
# 增加工作智能体数量 export WORKER_COUNT=10 export MAX_CONCURRENT_TASKS=20
-
监控配置
# 启用详细监控 export ENABLE_METRICS=true export METRICS_PORT=9090
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "run.py", "--mode", "interactive"]- Fork 项目仓库
- 创建功能分支
- 提交代码更改
- 创建 Pull Request
- 遵循 PEP 8 代码风格
- 添加适当的类型注解
- 编写清晰的文档字符串
- 确保测试覆盖率
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
A: 检查环境变量配置,确保API密钥正确设置,查看日志获取详细错误信息。
A: 调整 TASK_TIMEOUT 配置,或检查网络连接和外部服务状态。
A: 参考现有工具实现,继承 BaseTool 类并注册到工具注册中心。
A: 调整工作智能体数量、并发任务数,使用更快的AI模型API。