子代理
运行不继承隐藏对话状态的内置、自定义及外部代理。
查看可用代理
在 Studio 的 Settings → Subagents 中查看内置定义并管理自定义配置。列表会显示每个配置的执行类型、模型角色、范围、工具和委派许可。
公开的内置 ID 包括:
builtin/interviewerbuiltin/managerbuiltin/senior-developerbuiltin/junior-developerbuiltin/researchbuiltin/web-searchbuiltin/web-tester
执行单次请求
请在请求中提供全部必要上下文。子代理不会自动继承父对话。
/subagent builtin/senior-developer 审查 app/model.go 中的取消处理
从 bare q 兼容聊天中明确调用 /subagent 时,自定义配置使用简短名称。配置中存储的委派许可则使用 builtin/senior-developer、global/code-reader 或 workspace/browser-check 等规范 ID。
在聊天中委派
普通聊天同时提供工作区工具和委派能力。主代理可以根据请求直接工作,或协调范围明确的子代理。manager 作为 PM 负责需求和计划,senior developer 可以直接修改,也可以将实现委派给 junior developer,然后审查结果。需要明确指定角色时,请使用 /subagent <name> <request>。
Studio 将每个子代理显示在会话树的父节点下。选择子节点可打开其进度、对话和工具调用。每次调用都会保存父会话书签和子会话。重启后,q 先恢复最深层的子会话,再继续父会话。没有记录结果的工具调用会返回 unknown,不会自动重试。中断的外部 ACP 调用也会返回 unknown,因为其内部轮次无法恢复。
在基于 clean Git branch 的已保存 session 中,可修改工作区的 inner child 会在本地 q/delegate/<invocation-id> branch 和 linked worktree 中工作。成功后,Q 会提交剩余改动,并返回固定 base/head commit 的内部 Change Request。调用方读取 diff 后再 merge 或 close。嵌套 child 使用相同流程,因此 senior developer 可以先审查并合并 junior developer 的 branch,再向上层返回自己的 Change Request。Studio session tree 会显示请求状态和 branch。该本地流程不需要 remote push。
每个 inner task result 都包含简短的 summary,并可通过可选的 report 保存最多 256 KiB 的最终 Markdown 分析、设计依据、审查意见或研究综述。较大的结果会存入 Loom;调用方收到 reference 和受限 preview,并可按需读取完整报告。
定义内部代理
内部配置会选择 q 模型角色、明确的工具列表以及可直接调用的委派对象。
version: 1
name: code-reader
description: 解释所请求的代码。
kind: inner
role: advisor
system_prompt: |
阅读所请求的代码,并通过具体文件位置解释其行为。
tools:
- list_directory
- read_file
delegates: []
配置文件存放在 ~/.q/subagents/ 或 <workspace>/.q/subagents/。同名的工作区配置会整体替代全局配置。
外部代理
外部配置绑定到已启用的 ACP 连接。它保存系统提示以及远程代理能否修改工作区,但不选择 q 工具、委派对象或 q 模型角色。
ACP 创建会话的协议没有系统消息字段,因此 q 会把保存的系统提示附加在首次普通 ACP 请求之前。连接缺失或被禁用时,配置会暂时不可用,而无需删除它。