在工作流水线中执行 Claude AI CLI 要求的子代理
抱歉,我需要您提供要翻译的具体文本内容(除 > Source: 行之外),才能为您进行翻译。请把文章的正文粘贴在这里,我会按照要求保留链接、格式和代码块进行简体中文翻译。
TL;DR
我构建了 uctm(Universal Claude Task Manager)——一个 npm 包,可在 Claude Code 中安装六个专用子代理。
你只需输入一个请求,它就会自动 计划、构建、验证、提交——全部通过结构化的 XML 消息完成。
npm install -g uctm
cd your‑project && uctm init
claude
# Type: [new-feature] Add user authentication with JWT
# → Pipeline runs automatically
GitHub: UCJung/uc-taskmanager-claude-agent npm: uctm
问题
Claude Code 功能强大,但当你让它构建复杂的东西时,它会尝试一次性完成所有工作。
- 简单任务 → 没问题。
- 多文件项目、相互依赖的组件或完善的测试 → 输出变得混乱、占用大量令牌,且难以推理。
我希望有一个系统能够实现:
| 目标 | 为什么重要 |
|---|---|
| 将复杂任务拆分为可管理的部分 | 保持每一步聚焦且可测试 |
| 每个部分单独构建、测试并提交 | 逐步保证正确性 |
| 随着任务堆积,上下文不会膨胀 | 节省令牌并降低幻觉 |
| 零外部运行时依赖 | 纯提示、可移植的解决方案 |
架构 – 6 个代理,1 条流水线
User Request
│
Main Claude (orchestrator)
│
├─ router → decides execution mode
├─ planner → decomposes request into TASKs (DAG)
├─ scheduler → manages DAG, dispatches ready TASKs
├─ builder → writes the actual code
├─ verifier → runs tests / lint / acceptance checks
└─ committer → writes result report & git commits
关键约束:Claude Code 子代理 不能调用其他子代理。
因此 主 Claude(CLI 终端)充当编排器,依次调用每个代理并在它们之间传递消息。
并非每个请求都需要全部六个代理——router 决定使用哪一子集。
执行模式
| 模式 | 何时 | 会发生什么 |
|---|---|---|
| direct | 简单更改,无需测试 | Router 单独处理所有事务 |
| pipeline | 需要测试,单一域 | router → builder → verifier → committer |
| full | 复杂,多文件,存在依赖 | 包含所有 6 个代理并进行 DAG 管理 |
结构化 XML 消息
与自由文本不同,uctm 使用 XML —— 可解析、可验证且节省 token。
每个代理都清楚地知道应期待什么以及应返回什么。
Dispatch (router → builder)
<dispatch>
<project>my-app</project>
<language>ko</language>
<planPath>works/WORK-05/PLAN.md</planPath>
<task>
<path>works/WORK-05/TASK-00.md</path>
<title>Add JWT authentication middleware</title>
<type>implement</type>
<description>Create auth middleware with token validation...</description>
</task>
</dispatch>
Result (builder → verifier)
<result>
<summary>JWT auth middleware implemented</summary>
<details>
<component>JWT verification middleware</component>
<tests>12 test cases for auth flows</tests>
<outcome>12/12 passed</outcome>
</details>
<metadata>
<description>Auth middleware with JWT validation</description>
<libraries>Used jsonwebtoken for RS256 support</libraries>
<env>Requires JWT_SECRET env variable</env>
<notes>None</notes>
</metadata>
</result>
为什么使用 XML?
- 可解析 – 每个代理都能精确提取所需信息。
- 可验证 – 通过模式约束,能够提前捕获格式错误的消息。
- 节省 token – 没有多余的冗余,只包含必需字段。
Source: …
滑动窗口上下文交接
在多任务流水线中,朴素的做法是传递每个先前任务的完整历史,这会导致 token 膨胀。
uctm 根据与当前任务的距离限制传递的内容:
| 与当前任务的距离 | 细节级别 | 传递内容(≈ token 数) |
|---|---|---|
| 前一个 TASK (1) | FULL | what + why + caution + incomplete(约 150) |
| 2 个任务前 | SUMMARY | 仅 what(约 50) |
| 3 + 任务前 | DROP | 什么也不传(0) |
因此,无论已完成多少任务,上下文大小大致保持在 200 token 左右。
示例
TASK-00 → TASK-01 → TASK-02 → TASK-03
TASK‑03 的构建器接收:
| 来源 | 细节级别 | 负载 |
|---|---|---|
| TASK‑02 | FULL | what / why / caution / incomplete |
| TASK‑01 | SUMMARY | 仅 what |
| TASK‑00 | DROP | (无) |
在一个包含 10 个任务的工作流中,这相比于朴素地传递全部信息可节省 ≈ 75 000 token。
真实世界流水线运行(计算器示例)
请求: “创建一个具有加、减、乘、除功能的简单计算器。”
| 步骤 | 输入 | 输出 |
|---|---|---|
| Router | [new-feature] 创建 calc.js,包含 4 个算术函数 | execution-mode=pipeline + dispatch XML + PLAN.md + TASK-00.md |
| Builder | 来自 Router 的 dispatch XML | “task-resultXML(创建calc.js和calc.test.js`) |
| Verifier | Builder 的 task-result XML | 重新运行所有 8 个测试,检查接受标准 → ALL PASS |
| Committer | Builder + verifier 的结果 | 写入 TASK-00_result.md,创建 git 提交 feat(TASK-00): calc.js ESM module,返回提交哈希 |
指标: 136 K 令牌,96 次工具调用,344 秒运行时间。所有代理间消息均遵循 XML 规范。
Specification‑Driven Development (SDD) 哲学
- 需求 → 架构 → 设计 才是真正的资产。
- 规范文档定义:
- XML 架构
- 上下文交接规则
- 流水线行为
- 代理是普通的
.md文件 – 纯提示定义。 - 零运行时代码,零依赖 → 完全可移植。
这能为你提供的价值
| 属性 | 好处 |
|---|---|
| 可移植 | 在任何项目中运行 uctm init 后即可使用 |
| 可定制 | 编辑 .agent/router_rule_config.json 以调节模式选择规则 |
| 透明 | 每个 WORK 都是一系列可读的 markdown 与 XML 文件 |
| 确定性 | 没有隐藏逻辑;行为由规范本身驱动 |
Quick Start Recap
npm install -g uctm # install the CLI globally
cd my-project && uctm init # bootstrap the six agents
claude # start Claude Code
# Example request:
# [new-feature] Add user authentication with JWT
# → uctm automatically runs the appropriate pipeline
现在,您拥有一个 自包含、令牌高效、测试驱动的流水线,它让 Claude Code 能够处理从单行代码到完整多模块特性的任何任务,而不会导致上下文爆炸。
概述
uctm (UC Task Manager) 生成 PLAN.md、TASK 文件、进度跟踪和结果报告。
安装
npm install -g uctm
快速入门
# Move to your project folder
cd your-project
# Initialise uctm in the project
uctm init
运行 Claude Code(绕过模式,以实现不中断的流水线)
claude --dangerously-skip-permissions
使用标签请求触发流水线
# [new-feature] Add a REST API for user management
# [bugfix] Fix the race condition in data loader
# [enhancement] Improve search query performance
uctm init 的作用
- 将 12 个代理
.md文件复制到.claude/agents/ - 创建
.agent/router_rule_config.json - 将代理调用规则追加到 CLAUDE.md
- 为 WORK 文件创建
works/目录
路线图亮点
- MCP Server Integration (Phase 2 完成, Phase 3 计划中) – 用于外部工具集成的 HTTP 传输
- Multi‑project orchestration – 在依赖的代码库之间运行流水线
- Dashboard visualization – 实时流水线监控
为什么尝试 uctm?
如果你使用 Claude Code 并管理复杂的多文件任务,uctm 可以简化你的工作流程。它是:
- 免费且开源
- 安装仅需 ≈30 秒
GitHub: UCJung/uc-taskmanager-claude-agent npm: uctm
支持
- 在 GitHub 上打开 issue
- 在 Discord 上联系维护者