yome-agent 子代理机制揭秘:如何让 Agent 自己派生并调度 Subagent

发布时间:2026/10/17 5:02:36
yome-agent 子代理机制揭秘:如何让 Agent 自己派生并调度 Subagent 【免费下载链接】yome-agent项目地址https://gitcode.com/gh_mirrors/yo/yome-agent点击查看免费下载yome-agent 的子代理Subagent机制是让主 Agent 在对话过程中自动派生出独立工作的子 Agent把复杂任务拆解、并行调度、隔离执行。本文将带你快速看懂它的核心设计Agent 工具注册、三级代理加载、隔离执行循环、防递归安全四大机制并给出实践建议。一、什么是 yome-agent 的子代理传统聊天式 AI 只有一个大脑所有任务挤在同一段上下文里。yome-agent 的思路不同主 Agent 拥有一个名为Agent的工具当任务足够复杂比如调研整个代码库并总结架构主 Agent 会调用这个工具派生一个带着独立对话历史的子 Agent 去干活干完只把结论汇报回来。它带来三个直接收益✅上下文隔离子代理的探索过程不污染主会话主 Agent 的 token 不被浪费✅并行调度一条消息里可以派发多个子代理同时工作✅权限收敛每个子代理可以配置自己的工具白名单、模型和最大轮数核心实现集中在 src/subagent/ 目录入口导出见 index.ts。二、机制拆解 1Agent 工具如何被注册进主循环子代理不靠魔法触发而是一个标准工具。在 src/agent.ts 的构造函数里主 Agent 初始化时会执行registerTool(createAgentTool(config))把Agent工具注册进工具表——从这一刻起LLM 的工具列表里就多了一项派生子代理的能力。createAgentTool定义在 src/subagent/agentTool.ts它做三件事动态生成工具描述遍历当前所有可用代理把每个代理的agentType、whenToUse适用场景、可用工具拼进描述里让 LLM 自己判断该不该派、派谁去校验入参只要求description3~5 词的短描述和prompt完整任务说明两个字段subagent_type可选缺省使用general-purpose执行派发命中代理定义后调用runAgent()跑完整个子代理循环最后把结果和 token 用量格式化返回工具描述里还写入了何时不该用的约束读单个文件、搜一个模式这种 1~2 步的事主 Agent 自己做避免子代理被滥用。三、机制拆解 2子代理从哪里来三级加载 优先级覆盖子代理的定义是一个AgentDefinition见 src/subagent/types.ts包含类型名、适用场景描述、工具白/黑名单、可预载的 skills、指定模型、最大轮数。它们来自三个地方加载逻辑在 src/subagent/loadAgents.ts级别位置来源标记内置代理代码内置如general-purposebuilt-in用户代理~/.yome/agents/*.mduser项目代理当前项目.yome/agents/*.mdproject同名代理按项目 用户 内置的顺序覆盖loadAgents.ts这和你熟悉的其他工具链就近配置优先的思路一致。自定义代理就是一个带 frontmatter 的 Markdown 文件例如项目里放一个.yome/agents/reviewer.md--- name: reviewer description: 代码审查专家只读不写 tools: [Read, Grep, Glob] model: your-fast-model maxTurns: 10 --- 你是一名严格的代码审查员……正文即该子代理的 system promptfrontmatter 解析器在 parseFrontmatter正文部分自动成为该子代理的系统提示词。注意name 和 description 缺一不可description 是主 Agent 决定何时派它的关键依据写清楚比写花哨更重要。内置的general-purpose代理定义在 src/subagent/builtinAgents.ts拥有全部工具适合多步调研类任务。四、机制拆解 3子代理如何被隔离执行真正的执行引擎是 src/subagent/runAgent.ts 中的runAgent()一次子代理生命周期的流程配置合并若代理定义了model就生成一份只改了模型的配置实现不同代理用不同模型工具过滤按代理的白名单/黑名单裁剪可用工具下文详述预载 skills若代理声明了skills会把对应技能提示词预先注入对话开头runAgent.ts独立消息历史从零开始建一个messages数组主会话的任何上下文都不会带过去——所以 prompt 必须写得详尽循环执行每轮调用 LLM若返回 tool_use 就执行工具、把结果回灌直到 LLM 给出纯文本结论或达到maxTurns默认30轮见 runAgent.ts收尾从最后一条 assistant 消息提取最终文本连同 input/output token 统计一起返回给主 Agent主 Agent 拿到的结果长这样Agent xxx completed. / Tokens: N in / M out / 子代理的结论文本之后由主 Agent 负责向用户转述。防递归一个不起眼但关键的设计resolveAgentTools 在组装子代理工具表时第一步就是把Agent工具本身剔除。这意味着子代理没有再派生子代理的能力从架构上杜绝了无限递归派生、token 爆炸的可能。这是子代理机制能安全并行调度的前提。五、动手实践管理你的子代理命令行里管理开关在 yome 交互界面输入/subagents命令注册见 src/ui/App.tsx会弹出终端内的选择器AgentPicker.tsx用方向键 Enter 即可启用/禁用任意代理。禁用状态持久化在~/.yome/disabled.json逻辑见 src/toggleState.ts下次启动依然生效。写好 prompt 的三个要点子代理是零上下文启动的agentTool.ts 的工具说明里明确强调了交代背景你在做什么、已经知道了什么、要找什么明确产出说清楚是只调研还是可以改代码⚡并行派发一条消息里发起多个Agent工具调用即可同时跑多个子代理如一个查代码、一个查文档什么时候该用 / 不该用场景建议跨多文件调研、架构梳理✅ 派子代理两个独立任务调研 验证✅ 并行派两个读一个已知文件、搜一个字符串❌ 主 Agent 直接用 Read/Grep需要来回追问用户的任务❌ 子代理无法与用户对话六、总结yome-agent 的子代理机制可以浓缩为一句话Agent 是一个工具——主 Agent 通过标准的Agent工具派生独立上下文的子代理用三级配置决定派谁用工具过滤和默认 30 轮上限决定能干什么用剔除递归工具保证不会失控。想深入了解建议按顺序阅读工具注册与描述src/subagent/agentTool.ts执行循环核心src/subagent/runAgent.ts加载与优先级src/subagent/loadAgents.ts内置代理示例src/subagent/builtinAgents.ts赞分享【免费下载链接】yome-agent项目地址https://gitcode.com/gh_mirrors/yo/yome-agent点击查看免费下载相关推荐Claude Code Subagent 子代理完整指南官方 Subagents、Agent 委派、Agent Teams 与社区代理资源Claude Code Subagent 子代理完整指南官方 Subagents、Agent 委派、Agent Teams 与社区代理资源 课程信息 作者 教程人工智能PhalApi服务网格(Service Mesh)集成Istio实战指南PhalApi服务网格 Service Mesh 集成Istio实战指南 PhalApi作为轻量级PHP开源接口框架专注于接口服务开发让接口从简单开始。本如何编写并发布你的第一个 yome-agent 原生技能从 yome-skill.json 到 Hub 上架如何编写并发布你的第一个 yome agent 原生技能从 yome skill.json 到 Hub 上架 在 yome agent 中Native创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询