编写 Agent
Agent 是一个具名的 prompt + 模型预设,主模型可以通过
Agent 工具把它作为子进程式的 worker 拉起。DSCC 从磁盘的
TOML 文件里发现 agent 定义。
发现路径
由 crates/commands/src/lib.rs:1265–1304 的
discover_definition_roots
解析。按顺序搜索;同一小写名字,先命中的源胜出。
| # | 来源 | 路径 |
|---|---|---|
| 1 | 项目祖先目录 | .codex/agents/、.dscc/agents/ |
| 2 | $CODEX_HOME |
$CODEX_HOME/agents/ |
| 3 | 用户 home | ~/.codex/agents/、~/.dscc/agents/ |
加载器:commands/lib.rs:1418–1459 的
load_agents_from_roots。用 parse_toml_string
解析;文件名的 stem 作为默认 name。
文件格式
TOML,一文件一 agent。
| 字段 | 必填 | 类型 | 用途 |
|---|---|---|---|
name |
否(默认取文件名 stem) | string | 显示名 |
description |
否 | string | 一行描述 |
model |
否 | string | 模型 id |
model_reasoning_effort |
否 | string | 推理预算提示 |
最小示例
.dscc/agents/verify-branch.toml:
name = "verify-the-branch"
description = "Verify that the current branch builds, tests, and lints cleanly"
model = "claude-sonnet-4-6"
列出与覆盖
| 方式 | 内容 |
|---|---|
/agents(斜杠) |
列出全部已发现 agent |
dscc agents(CLI) |
CLI 中的同一列表 |
同一小写名字两源冲突时,先命中者胜出;后者记录在胜出条目的
shadowed_by 中。
子 agent 类型
来自 tools.rs:1687–1766。模型调用 Agent
工具时用 subagent_type 指定。每种类型自带工具白名单。
| 类型 | 典型用途 |
|---|---|
Explore |
只读的代码库侦查 |
Plan |
起草执行计划 |
Verification |
完成后运行检查 |
dscc-guide |
回答 DSCC 自身的问题 |
statusline-setup |
配置状态栏 |
general-purpose(默认) |
通用任务 |
调用
模型调用 Agent 工具(tools.rs:394–406),传
subagent_type 与 prompt。后台线程在
DangerFullAccess 权限下执行子 agent。
运行产物
每次运行都会在 .dscc-agents/agent-<timestamp>.json
/ .md 写入一对 JSON +
Markdown(tools.rs:408–423)。JSON 含
agentId、name、subagentType、model、status、createdAt、completedAt、outputFile、manifestFile、error。由运行时写入,不要手改。
添加一个新 agent
- 在
.dscc/agents/myagent.toml至少填description(参考上面示例)。 - DSCC 里运行
/agents确认已出现。# [交互](REPL 斜杠命令;等价的dscc agentsCLI 子命令可脚本化、无需标记。) - 模型即可通过
Agent工具请求它。
另见
- skills.md —— 更轻量的 prompt 片段,不拉子 agent。
- reference/tools.md ——
Agent工具完整 schema。