UStackUStack
Gemini CLI Subagents icon

Gemini CLI Subagents

Gemini CLI Subagents 可将复杂高并发任务委派给专家子代理,隔离上下文窗口并支持并行执行与自定义代理定义。

Gemini CLI Subagents

什么是 Gemini CLI 子代理?

子代理是与您的主 Gemini CLI 会话并行运行的专家代理。当您向 Gemini CLI 分配宽泛或复杂任务时,主代理可以作为协调器,将特定子任务委派给最相关的子代理。

每个子代理在隔离环境中运行,拥有独立的上下文窗口、自定义系统指令和精选工具集。它们的工作——可能涉及多次工具调用、搜索或测试运行——会汇总成单个响应返回给主会话。

主要特性

  • 委派给专家代理:Gemini CLI 可将大型任务分解为子任务,并路由至针对性子代理。
  • 隔离执行环境:每个子代理拥有独立的上下文窗口、系统指令和精选工具,帮助主会话避免拥挤。
  • 工具与上下文汇总:子代理执行的中间步骤汇总成一个响应返回给主代理。
  • 并行子代理执行:Gemini CLI 支持同时运行多个子代理(不同子代理或同一子代理的多个实例)。
  • 自定义子代理定义:您可以使用带有 YAML frontmatter 的简单 Markdown 文件创建自己的子代理。

如何使用 Gemini CLI 子代理

  1. 创建子代理定义:使用带有 YAML frontmatter 的 Markdown 文件(.md),指定 namedescriptiontoolsmodel 等字段(如“frontend-specialist”示例所示)。
  2. 将定义添加到支持位置
    • 个人工作流:~/.gemini/agents
    • 团队/项目共享:.gemini/agents
    • 扩展:将代理定义 Markdown 文件放入扩展的 agents/ 目录。
  3. 正常使用 Gemini CLI:在主 Gemini CLI 会话中提供总体任务;Gemini CLI 会自动分派子代理处理相关子任务。
  4. (如需)并行运行工作:当任务自然拆分为多个独立的研究/重构/测试轨道时,Gemini CLI 可同时分派多个子代理。

使用场景

  • 跨多个主题的研究:将独立研究线程委派给不同子代理并并行运行,然后在主会话中接收汇总输出。
  • 重构多个组件:将重构拆分为独立的组件级任务,由专家子代理处理各区域,而不填充主上下文窗口。
  • 代码探索与分析:使用专家子代理调查代码部分并返回摘要或格式化结果,同时主代理保持决策和最终综合。
  • 测试与验证:将测试相关步骤序列(可能涉及多次工具调用)卸载至子代理,使主会话保持响应性。
  • 自定义角色的特定工作流自动化:创建可复用专家代理(例如前端/UI-UX 角色),强制一致的方法和工具使用于重复项目工作流。

常见问题

子代理与主 Gemini CLI 会话有何区别?
子代理是与主会话并行运行的专家代理。它们在隔离环境中运行,拥有独立的上下文窗口、系统指令和工具,然后返回汇总结果。

Gemini CLI 可以同时运行多个子代理吗?
可以。Gemini CLI 支持 并行执行,包括同时启动多个子代理或同一子代理的多个实例。

如何配置自定义子代理?
自定义子代理使用带有 YAML frontmatterMarkdown 文件.md)定义。您可将其置于 ~/.gemini/agents(个人使用)、.gemini/agents(项目级共享)或扩展的 agents/ 目录。

子代理执行的中间工作如何处理?
子代理可能运行多次工具调用、文件搜索或测试运行,但其执行结果 汇总成单个响应 返回给主代理。

子代理有自己的工具和系统指令吗?
是的。每个子代理运行时拥有精选工具集和自定义系统指令,与主会话独立。

替代方案

  • 无委派的单代理提示:您可以要求 Gemini CLI 在单一上下文中处理所有任务。这避免了自定义代理的设置,但可能更需要长提示或遭受上下文增长问题。
  • 手动工作流拆分:您可以为每个子任务运行独立的提示,然后自行合并结果。这可以模拟委派,但您需要处理编排和整合。
  • 通用多代理框架:基于工具或框架的多代理方法也可以将任务路由到专业角色,尽管工作流和配置与 Gemini CLI 的子代理定义及隔离模型不同。
  • 基于聊天的代理角色(非子代理):如果您的用例主要是基于角色的协助而非隔离的并行工具执行,您可能发现简单的角色提示就足够,隔离和子任务输出整合的控制较少。
Gemini CLI Subagents | UStack