RoleZero 是 MetaGPT 动态智能 (DI) 系统的基石。它代表了一种先进的代理架构,能够通过响应式的观察-思考-行动周期进行自主思考和行动。与具有固定标准操作程序 (SOP) 的传统角色不同,RoleZero 可以根据不同的上下文动态地调整其行为、使用工具、管理计划以及与人类进行交互。
本页面涵盖了 RoleZero 的核心架构、能力和实现。有关 RoleZero 可以使用的工具系统的信息,请参阅 工具系统。
RoleZero 扩展了基础的 Role 类,并为其增强了动态智能能力,使其能够通过工具使用、规划和自适应行为进行自主问题解决。
来源
RoleZero 在以观察-思考-行动循环为核心的响应式架构上运行,并集成了动态智能能力。这使其能够适应不断变化的需求并自主执行复杂任务。
来源
RoleZero 采用双层思考系统
快速思考 (_quick_think):用于无需工具或复杂推理即可直接回答的简单查询。这包括
深度思考 (_think):用于需要工具、规划和推理的复杂任务
过程始于快速思考,用于分类查询类型(QUICK、SEARCH、TASK 或 AMBIGUOUS)。对于 QUICK 或 AMBIGUOUS 查询,RoleZero 会直接响应。对于 SEARCH 查询,它使用 SearchEnhancedQA 工具。对于 TASK 查询,它进入完整的响应式循环。
来源
RoleZero 使用 Planner 组件来管理任务和跟踪进度。规划功能支持
规划工作流程包括
计划状态作为 RoleZero 思考过程的上下文的一部分,帮助它决定下一步采取何种行动。
来源
RoleZero 可以通过复杂的工具集成架构动态访问和使用各种工具。这使其能够与文件交互、浏览网页、执行终端命令等等。
RoleZero 维护命令名称与其实现之间的映射
| 命令类型 | 示例 | 实现 |
|---|---|---|
| 基本工具 | Editor.read、Browser.goto | 直接调用工具方法 |
| 计划命令 | Plan.append_task、Plan.finish_current_task | 调用计划器方法 |
| 特殊命令 | end、RoleZero.ask_human | 自定义处理程序方法 |
| 第三方工具 | SearchEnhancedQA.run | 根据配置有条件注册 |
来源
RoleZero 使用 ToolRecommender 组件根据当前上下文建议合适的工具。这有助于 LLM 就使用哪些工具做出更明智的决策。工具推荐发生在 _think 阶段,为 LLM 提供有关可用工具及其功能的信息。
来源
RoleZero 通过复杂的缓存和经验增强系统与语言模型集成。这使其能够
通过 exp_cache 装饰的 llm_cached_aask 方法通过以下方式管理此过程
RoleZeroContextBuilder 将相关经验添加到请求中RoleZeroSerializer 提取缓存的关键部分来源
RoleZero 提供两种主要的人机交互方法
ask_human:当角色需要人类指导才能继续进行时使用,例如当
reply_to_human:用于向人类用户提供响应,尤其是在
这些方法与环境(特别是 MGXEnv)集成,以促进用户和 RoleZero 代理之间的通信。
来源
RoleZero 通过强大的解析和执行管道将语言模型输出处理成可执行命令
_parse_commands 提取并验证这些命令_run_commands 顺序执行每个命令_run_special_command 处理tool_execution_map 执行命令格式遵循结构化 JSON 模式
命令可以组合起来执行复杂的任务,同时小心处理可能冲突的互斥命令。
来源
RoleZero 结合了多种处理错误和从问题中恢复的机制
重复响应检测:识别语言模型何时重复输出,并触发重新生成或请求人工帮助
JSON 修复:通过专门的修复提示修复命令输出中格式错误的 JSON
命令验证:检查独占命令并确保命令格式正确
异常处理:捕获和报告命令执行期间的异常
最大循环预防:达到 max_react_loop 后停止,并请求人工指导
这些机制确保 RoleZero 能够优雅地处理意外情况,即使在发生错误时也能继续运行。
来源
RoleZero 是 MetaGPT 生态系统中多个专用角色的基础
| 角色 | 目的 | 关键扩展 |
|---|---|---|
| Engineer2 | 软件开发 | 代码编写、仓库管理 |
| DataAnalyst | 数据分析和机器学习 | 数据处理、模型训练 |
| TeamLeader | 团队协调 | 任务分配、消息传递 |
扩展 RoleZero
_update_tool_execution 以添加自定义工具@register_tool 装饰器注册工具来源
RoleZero 拥有先进的内存能力,使其能够
内存系统对于在多次交互中保持上下文并用相关历史信息为思考过程提供信息至关重要。
启用长期记忆时,RoleZero 使用向量化存储,根据当前上下文检索语义上相似的过去交互。
来源
RoleZero 代表了 MetaGPT 框架内自主代理架构的重大进步。通过其动态智能、规划能力、工具集成和经验增强,它能够在最少的人工干预下处理复杂任务,同时保持在需要时寻求指导的能力。
其架构平衡了自主性与人工监督,使其既能作为独立的解题者,也能作为更专业角色的基础。经验检索和缓存机制使其能够从过去的交互中学习,随着时间的推移变得越来越高效和有效。
RoleZero 的模块化设计允许轻松扩展和定制,使其能够适应广泛的用例和环境。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(be6921)