OpenHands的Microagents如何为?
摘要:AI Agent 框架探秘:拆解 OpenHands(14) Microagents 目录AI Agent 框架探秘:拆解 OpenHands(14) Microagents0x00 概要0x01 需求1.1 当前问题1.2 多智能体系统1
AI Agent 框架探秘:拆解 OpenHands(14)--- Microagents
目录AI Agent 框架探秘:拆解 OpenHands(14)--- Microagents0x00 概要0x01 需求1.1 当前问题1.2 多智能体系统1.3 Multi-Agent1.4 连接机制1.5 Sub-agent1.6 microagents1.7 原理1.7.1 协作1.7.2 token1.7.3 成本0x02 基本梳理2.1 基类定义2.2 微型代理的类型2.2.1. KnowledgeMicroagent2.2.2. RepoMicroagent2.2.3 对比2.2.4 TaskMicroagent核心特点适用场景2.3 微型代理的来源2.3.1. 可共享微型代理(公共)2.3.2. 仓库指令(私有)2.4 升级为 SkillKnowledgeMicroagentRepoMicroagent0x03 实现3.1 处理流程3.2 触发条件3.3 AgentDelegateAction3.4 特色3.4.1 委托代理(Delegate)机制3.4.2 功能概述3.4.3 层级型的合作模式3.4.4 流程图主 - 子 Agent 交互与控制流程图AgentController 核心事件处理流程图3.4.5 容错和隔离机制独立的Controller实例独立的状态管理事件流隔离异常处理错误状态传播状态恢复机制3.5 代码3.5.1 调用大模型3.5.2 解析3.5.3 执行3.5.4 微代理记忆提示模板核心功能处理流程指导原则技术实现应用场景与其他组件的关系3.5.5 get_prompt 函数参数处理核心处理步骤与系统其他组件的关系0xFF 参考
0x00 概要
很多Agent系统会采用多智能体(multi-agent)架构,划分不同子模块/子Agent各司其职,由中央调度Agent统筹管理整个生命周期。这种模块化架构能将复杂任务拆解给最擅长该子任务的模块,发挥各模型所长,避免单一模型在某些任务上的弱点。
在OpenHands 中,Microagents 本质上是一组量身定制的指令模块,核心作用是给 OpenHands 工具注入更聚焦的能力 —— 不管是某个细分领域的专业知识,还是特定任务的标准化流程,都能通过它们来落地。对开发者来说,这些小模块就像身边的专项助手:遇到 Git 操作、代码审查这类具体场景时,不用再手动梳理步骤,微型代理会提供现成的专业指引;重复任务能直接交给它们自动化处理,还能保证不同项目里的操作逻辑保持一致,省不少事。
Microagents 允许我们为 Agent “外挂”领域知识,而无需修改 Agent 的核心代码或 Prompt。Memory 组件会在任务开始时或在对话中检测到特定关键词时,自动加载相应的 Microagent 文件内容,并将其作为上下文信息提供给 LLM。这使得 Agent 能够:
快速适应特定项目: 通过加载项目专属的 repo.md,Agent 可以了解项目的架构、编码规范和测试方法。
利用领域知识: 比如,当用户提到 “Python” 时,可以自动注入一份关于 Python 最佳实践的 knowledge.md。
0x01 需求
1.1 当前问题
既然单智能体能搞定不少复杂事,为啥还要费劲搞多智能体协作?核心原因很简单:任务一超出一定复杂度,单个智能体就容易 “力不从心”。
就像一个人要同时处理项目规划、数据调研、数学计算、文案撰写一堆事,不仅容易顾此失彼,还会被海量信息淹没 —— 智能体也一样,面对太多工具要选、太多上下文要记,它的 “思考空间” 根本不够用,决策效率和准确性都会明显下滑。更别说有些任务横跨好几个专业领域,指望一个智能体精通所有,就像让一个医生同时当好工程师,显然不现实。
单一的、庞大的“万能”Agent在处理多任务时,其上下文窗口和工具集会变得异常臃肿,导致“上下文污染)”(Context Pollution),最终影响系统的可靠性和效率。
LangChain的benchmark研究显示,当distractor domains(干扰域)从0增加到8个时,单agent架构的性能从0.67暴跌至0.34,下降50%。
1.2 多智能体系统
而多智能体系统恰好能解决这些痛点。它的核心逻辑是 “分工协作”:遇到复杂任务时,先把大任务拆成一个个小模块,比如把 “完成一份市场分析报告” 拆成 “数据收集”“统计计算”“报告撰写”“合规审核” 几个子任务,再给每个子任务分配专门的 “专家” 智能体 —— 有的专攻数据爬取,有的擅长数学建模,有的精通文案润色。
这些智能体不用包揽所有事,只需要把自己领域的工作做精。
