← 文档中心

Agent 与子任务

使用

Agent 是”带着特定工具集与权限的 AI 角色”。同一个模型,配不同 Agent 会表现出不同的行为边界。

内置 Agent

Agent定位
build默认 Agent。可读写文件、执行命令,用于完成实际开发任务
plan只做调查与方案设计,不修改文件,产出计划后交由 build 执行
general通用对话与问答
explore只读探索,用于快速理解陌生代码库
title内部使用,为会话生成标题
summary内部使用,压缩与总结上下文
compaction内部使用,上下文压缩

title / summary / compaction 由系统自动调用,通常不需要手动选择。

切换 Agent

  • TUI<leader>a 打开 Agent 列表;tab 在已用 Agent 间循环
  • 桌面端mod+.shift+mod+. 切换
  • 配置:设置 default_agent
{
  "default_agent": "build"
}

default_agent 填了不存在的名字时会静默回退到 build,不会报错。

自定义 Agent

在配置中覆写内置 Agent,或新增自定义 Agent:

{
  "agent": {
    "build": {
      "model": "anthropic/claude-sonnet-4",
      "permission": {
        "bash": "ask"
      }
    },
    "reviewer": {
      "description": "只读代码审查",
      "model": "deepseek/deepseek-chat",
      "prompt": "你是一名严格的代码审查者,只报告问题,不修改代码。",
      "permission": {
        "edit": "deny",
        "bash": "deny",
        "read": "allow"
      }
    }
  }
}

常用字段:

字段说明
model该 Agent 使用的模型,覆盖全局 model
prompt追加的系统提示词
permission该 Agent 的权限规则,会与全局权限合并
description描述,会展示在 Agent 列表与子任务可选清单中
tools工具开关

只有 mode 为非 primary 的 Agent 才会作为子任务类型被主 Agent 调用(task 工具)。

命令行管理:

duoduocode agent list      # 列出所有 Agent
duoduocode agent create    # 交互式创建自定义 Agent

权限继承

Agent 的权限由三部分合并而成,内置约束优先级最高

内置默认权限  →  用户在 config 中的 permission  →  Agent 内置强制约束

这意味着某些结构性限制无法通过配置绕开。例如 explore 作为只读 Agent,其 "*": "deny" 是结构约束——即使你在全局配置里写了 {"permission": {"*": "allow"}}explore 仍然不能写文件。

详见权限


并行多智能体分发

开启后,复杂需求会在主循环开始前被自动拆成多个子任务并发执行,结果汇总回主循环。

  • 开关位于设置面板的「并行多智能体分发」
  • 底层为 Rust 侧 LoopConfig.parallel_dispatch默认关闭
  • 并发上限由 max_concurrent_subagents 控制(默认 3)

冲突处理

子任务按文件级并行,安全由三层机制保证:

  1. 冲突分组 —— 用并查集把改动文件有交集的任务归为一组
  2. 组内串行、组间并行 —— 同组任务依次执行,不同组同时执行
  3. 黑板协调 —— 子 Agent 通过 blackboard_* 系列工具交换进度与草稿

失败的子任务不会中断其他任务,最终结果会连同失败信息一起汇总。

何时开启

  • 适合:多个相互独立的文件改动、大范围重构、批量修改
  • 不适合:改动高度耦合、需要严格顺序的迁移任务

相关