跳到主要内容

Sub-Agents 子智能体

Sub-Agents(子智能体)是主智能体在处理复杂、多步骤任务时派生出的专业智能体。每个子智能体在专属的提示词、工具集以及可选的独立模型配置下运行。

持久交互式子智能体​

如果需要观看智能体工作、直接与它对话,并在之后继续使用,可以选择 /term。Ante 能在命名终端中启动另一个 Ante 实例、Claude Code 或 Codex,发送任务、读取输出并继续追问。你可以随时加入同一个终端,分离窗口后让它继续运行,也可以在主 Ante 重启后重新连接。

每个终端智能体都有自己的对话和进程生命周期。可以使用它自身的分叉命令从已保存的对话创建分支,或请 Ante 将任务和相关上下文交给新会话。TUI 操作指南展示了这两种方式。下文的内置 Agent 工具用于将委派任务的结果返回给父智能体;/term 会话则通过终端选择器及其中运行的程序管理。

内置子智能体​

Ante 内置了两个开箱即用的子智能体:

general(通用研究子智能体)​

通用智能体,用于调研复杂问题、搜索代码并执行多步骤任务。当主智能体需要进行无法在几次简单尝试内完成的搜索时会委派给它。

explorer(代码探索子智能体)​

针对代码库探索高度优化的快速智能体。能快速按模式定位文件、按关键字搜索代码并回答关于代码库结构的问题。

关于 Ante 自身的问题由内置的 ante-guide 技能处理,而非子智能体。

创建自定义子智能体​

在 ~/.ante/agents/(用户级)或以下任何项目级位置创建带有 YAML Frontmatter 的 Markdown 文件:

---
name: security-reviewer
description: Reviews code for security vulnerabilities and OWASP top 10 issues
tools:
- Read
- Grep
- Glob
---

You are a security-focused code reviewer. Analyze the provided code for:

- Injection vulnerabilities (SQL, command, XSS)
- Authentication and authorization flaws
- Sensitive data exposure
- Security misconfiguration
- Known vulnerable dependencies

Provide findings with severity ratings and remediation steps.

Frontmatter 字段说明​

字段必填说明
name是子智能体的唯一标识名称
description是该智能体的职责描述(展示给主智能体以供委派决策)
model否覆盖该子智能体使用的大语言模型
tools否严格限制该子智能体允许调用的工具列表

Frontmatter 的读取规则与技能 Frontmatter完全一致:常见的未加引号标量错误在无歧义时会自动修复,配置块上限为 16 KB 和 32 层嵌套。超出限制或遇到无法修复的 YAML 时会显式报错退出。

协同工作机制​

当主智能体遇到匹配子智能体描述的任务时,会通过内置的 Agent 工具拉起子智能体:

  1. 主智能体评估当前可用的子智能体及其职责描述
  2. 通过 Agent 工具携带详细的提示词发起任务委派,并可按需传入单次 model 覆盖
  3. 子智能体在独立的上下文中自主运行
  4. 子智能体的最终答复与交付内容直接返回父智能体

观察子智能体工作​

子智能体运行时,页脚会列出每个子智能体及其任务、运行时长和 token 用量。在输入框为空时,按 ↓ 选中其中一个,按 Enter 打开其实时记录。在记录视图中,↑/↓ 加 Enter 可切换到其他智能体,PgUp/PgDn 滚动,Esc 返回对话。

三个子智能体并行运行并列在页脚下方,其中一个已打开显示实时记录

子智能体会自动继承父会话中配备的技能,使基于技能的工作流在委派任务内部继续生效。委派深度限制为一层:子智能体本身不携带 Agent 工具(无法继续派生下级智能体),也不会配备 AskUser 提问工具。

自定义定义用于提供任务专属指令。子智能体执行单次无人值守任务,无法向您追问,因此委派时应提供所需输入与预期输出。

子任务可在 Agent 工具调用上指定独立的 model 参数。若未指定,子任务会优先使用子智能体定义中配置的 model,其次回退到当前会话的模型。

每个子智能体都在 auto 权限模式下按无人值守策略运行。安全调用无需提示即可继续;需要审批的调用会立即被拒绝,被判定为破坏性的命令不会获准执行。子智能体不会继承父会话的权限模式或已保存允许规则,因为其没有可供用户确认或持久化授权的可见审批提示。

子智能体的 Token 与缓存用量会转发并计入父会话总计,在 /usage 中可见;其上下文窗口快照保持私有,因此委派任务不会覆盖根会话的上下文指示器。

┌────────────┐ Agent 工具 ┌──────────────┐
│ 主智能体 │ ────────────▶ │ 子智能体 │
│ Main Agent │ ◀──────────── │ (Explorer) │
│ │ 返回结果 └──────────────┘
│ │
│ │ Agent 工具 ┌──────────────┐
│ │ ────────────▶ │ 子智能体 │
│ │ ◀──────────── │ (General) │
└────────────┘ 返回结果 └──────────────┘

并发上限​

在 ~/.ante/settings.json、命名配置文件或项目设置中设置 max_concurrent_subagents,限制每个会话同时运行的子智能体数量。例如,使用一次仅处理一个请求的本地模型时:

{ "max_concurrent_subagents": 1 }

省略、null 或 0 表示不限制。达到上限后的调用会显示 waiting for a subagent slot,在子智能体打开模型请求流之前等待空位,从而避免排队时间消耗提供商的空闲超时窗口。中断父轮次会取消等待。该设置在新建或恢复会话时读取,没有对应的 CLI 参数或 SessionRequest 字段。

智能体发现优先级​

子智能体按以下优先级顺序发现(同名智能体后者覆盖前者):

  1. 内置智能体(general、explorer)
  2. ~/.ante/agents/(用户级)
  3. .agents/agents/(项目级)
  4. .ante/agents/(项目级)
  5. .claude/agents/(项目级,Claude Code 兼容)

会话启动时,用户级和项目级智能体会与内置智能体一同加载。Ante 会向主智能体介绍可用于委派任务的子智能体。