命令列工具
nrslib/takt avatar
nrslib/takt

nrslib/takt:TAKT 把代理协作写进 YAML

TAKT 代理程式協調拓撲 - 在 YAML 中定義 AI 代理程式如何協調、人類幹預的位置以及記錄的內容。

1,341 個 Star99 個 ForkTypeScriptMIT
GitHub

秒懂

它是什麼?
围绕 nrslib/takt 的 README、版本信息和许可证,梳理它的实际边界、启动入口与项目专属核验点。
適合誰用?
适合需要TAKT Agent Koordination Topology - Define how AI agents coordinate, where humans intervene, and what gets recorded, in YAML.并愿意按 README 建立试运行记录的开发者或维护者;不适合把仓库描述直接当成兼容性或生产保证的团队。先按项目命令完成最小流程,再观察README 给出的安装入口包括 npm install -g takt 和 Nix 命令,运行环境要求 Node.js 至少 24.15.0。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 2 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

TAKT 解决的问题 · nrslib-takt-deep-analysis

TAKT 的 README 以"Stop babysitting AI coding agents."开头。它描述的问题是,在长时间运行中,AI 编码代理会忘记指令、积累污染上下文、模糊实现与审查的职责,并可能迫使人类重复反馈。将更多规则添加到提示词或 CLAUDE.md 中可以提供帮助,但无法强制执行流程。TAKT 将代理视为需要从外部控制的对象,而不是被信任的对象。

工作流是过程的所有者 · nrslib-takt-deep-analysis

该 README 将 TAKT 与普通 AI 编码代理进行了对比。在 TAKT 中,YAML 工作流拥有过程,而不是提示词要求代理遵循过程。审查和修复循环是明确的转换,而不是可能被遗忘或跳过的步骤。每个步骤只接收它需要的上下文,而不是一个持续增长的上下文。职责通过角色、权限和输出契约来分离。任务默认在隔离的工作树中运行,日志和报告保留从任务到 PR 的路径。工作流是可重用的、可审查的和可版本化的。

工作流结构 · nrslib-takt-deep-analysis

工作流由步骤序列定义。一个最小的示例展示了一个名为 plan-implement-review 的工作流,包含 initial_step: plan 和 max_steps: 10。每个步骤指定了一个角色(谁)、编辑权限(允许做什么)和规则(下一步做什么)。示例中的计划步骤具有 edit: false,实施步骤具有 edit: true 和 required_permission_mode: edit,审查步骤具有 edit: false。规则将条件映射到下一步:当计划完成时进入实施,当实施完成时进入审查,当批准时完成,当需要修复时进入实施。COMPLETE 以成功结束工作流,ABORT 以失败结束。可重用的步骤定义可以存储在 .takt/steps/ 中,并在验证前通过 uses 进行扩展。工作流文件放在 workflows/ 目录中。当多个位置存在同名工作流时,解析顺序为 .takt/workflows/,然后是 ~/.takt/workflows/,最后是内置工作流。

内置工作流 · nrslib-takt-deep-analysis

README 提供了一个内置工作流表格。默认工作流被描述为标准的开发工作流,采用测试优先的方式,包含多视角的并行同行评审(架构、AI 反模式、编码、语义、契约生命周期、健壮性)、裁决和收敛修复循环。前端和后端工作流分别针对前端和后端开发。双工作流结合了前端和后端。takt-default 是用于开发 TAKT 本身的工作流。前端维护和后端维护工作流被描述为严格的多阶段审查,带有循环监视器,后端维护还有双主管签署。*-mini 系列(default-mini、frontend-mini、backend-mini、dual-mini)被描述为轻量级变体,省略了 write_tests。

命令 · nrslib-takt-deep-analysis

README 列出了关键命令。不带参数的 takt 会启动对话以完善需求并执行或排队任务。takt exec 启动即时执行模式,代理包括 Assistant、Worker、Review 和 Replanning,带有循环检测。takt add 通过 AI 对话完善任务并排队(也支持 GitHub Issues)。takt run 执行所有待处理任务。takt watch 监视任务队列并自动执行待处理任务。takt list 管理任务分支(合并、重试、重新排队、强制失败、指示、删除)。takt #N 使用 GitHub Issue 作为初始输入。takt eject 复制内置工作流/方面以进行自定义。takt workflow init 创建一个新的工作流脚手架。takt workflow doctor 验证工作流定义。takt repertoire add 从 GitHub 安装一个曲目包。TAKT 还提供了两个客户端集成入口点:takt-acp 作为 Agent Client Protocol 代理通过 stdio JSON-RPC 运行,takt-mcp 作为 stdio MCP 服务器运行。

配置 · nrslib-takt-deep-analysis

最小配置示例位于 ~/.takt/config.yaml,并设置 provider、model 和 language。README 列出了 provider:claude、claude-sdk、claude-terminal、codex、opencode、cursor、copilot、kiro 和 mock。三个 provider(claude-sdk、codex、opencode)通过 TypeScript SDK 运行,只需要 Node.js。其他 provider 需要外部 CLI,例如 Claude Code、GitHub Copilot CLI、Cursor Agent 和 Kiro CLI。API 密钥可以通过环境变量提供,例如 TAKT_ANTHROPIC_API_KEY、TAKT_OPENAI_API_KEY 和 TAKT_OPENCODE_API_KEY。README 还详细介绍了 auto_routing 配置,允许在每个工作流步骤中选择 provider/model,并带有候选池和规则。

执行与跟踪 · nrslib-takt-deep-analysis

队列任务在隔离的工作树中执行。运行元数据、会话、跟踪、报告和其他运行工件存储在 .takt/runs/<run>/ 下的普通文件中。一个使用 Finding Contract 的工作流会惰性创建 .takt/runs/<run>/finding-contract.sqlite。自动路由决策本地记录为 .takt/events/ 中的 NDJSON,README 声明 TAKT 不会上传路由决策。本地记录默认启用,可以通过 telemetry.routing_decisions 进行配置,并可以使用 takt telemetry status|enable|disable 进行查看或更改。

安装、许可与验证 · nrslib-takt-deep-analysis

README 给出了安装命令 npm install -g takt,也给出了 Nix flakes 的安装方式:nix run github:nrslib/takt 和 nix profile install github:nrslib/takt。Nix 包只安装 TAKT CLI;外部 CLI provider、git 和 gh/glab 需要单独安装。TAKT 需要 Node.js >=24.15.0。该仓库采用 MIT 许可证;许可证文本授予使用、复制、修改、合并、发布、分发、再许可和出售软件副本的权利,并声明软件按"原样"提供,不提供任何明示或暗示的保证,包括适销性、特定用途适用性和非侵权性。它没有说明支持或安全态势。该仓库的说明是"TAKT Agent Koordination Topology - Define how AI agents coordinate, where humans intervene, and what gets recorded , in YAML"。

nrslib-takt-deep-analysis 的 README 也提供了具體的使用脈絡。應把命令中的參數、依賴版本、設定鍵與輸出格式逐項對照,尤其要留意文件明確標出的限制、平台差異和仍在變動的部分。若測試結果與 README 描述不同,應以實際版本的錯誤訊息和產出內容記錄差異,不能把推測寫成專案承諾。

驗證時可在含有 .takt/config.yaml 的測試專案執行 takt workflow doctor,再用 takt exec 觀察 plan、implement、review 是否依 YAML 規則轉換;同時檢查 .takt/runs/<run>/ 與 .takt/events/ 是否留下預期工件。這些觀察能釐清 provider、權限模式和紀錄位置是否符合 nrslib/takt 的文件描述。\n\n對採用者而言,takt 的價值在流程可讀性,不在替代理解工作內容。YAML 中的 initial_step、max_steps、edit 與 required_permission_mode 會直接影響代理能否修改工作樹,因此權限審查應放在執行前。使用 takt add 排隊後,再以 takt list 查看分支狀態,能把任務生命週期和實際檔案變更分開觀察。若工作流使用 Finding Contract,還要確認 .takt/runs/<run>/finding-contract.sqlite 是否被建立,以及 review 產出的 finding 是否能驅動回到 implement。README 未承諾每個 provider 都有相同能力,claude-sdk、codex、opencode 與外部 CLI 的依賴差異必須列入部署清單。\n\n對採用者而言,takt 的價值在流程可讀性,不在替代理解工作內容。YAML 中的 initial_step、max_steps、edit 與 required_permission_mode 會直接影響代理能否修改工作樹,因此權限審查應放在執行前。使用 takt add 排隊後,再以 takt list 查看分支狀態,能把任務生命週期和實際檔案變更分開觀察。若工作流使用 Finding Contract,還要確認 .takt/runs/<run>/finding-contract.sqlite 是否被建立,以及 review 產出的 finding 是否能驅動回到 implement。README 未承諾每個 provider 都有相同能力,claude-sdk、codex、opencode 與外部 CLI 的依賴差異必須列入部署清單。對照 takt workflow init 產生的目錄,再執行 takt workflow doctor,能看出自訂步驟是否被正確載入;不要把內建工作流表格推定成所有環境的預設設定。\n\n對採用者而言,takt 的價值在流程可讀性,不在替代理解工作內容。YAML 中的 initial_step、max_steps、edit 與 required_permission_mode 會直接影響代理能否修改工作樹,因此權限審查應放在執行前。使用 takt add 排隊後,再以 takt list 查看分支狀態,能把任務生命週期和實際檔案變更分開觀察。若工作流使用 Finding Contract,還要確認 .takt/runs/<run>/finding-contract.sqlite 是否被建立,以及 review 產出的 finding 是否能驅動回到 implement。README 未承諾每個 provider 都有相同能力,claude-sdk、codex、opencode 與外部 CLI 的依賴差異必須列入部署清單。對照 takt workflow init 產生的目錄,再執行 takt workflow doctor,能看出自訂步驟是否被正確載入;不要把內建工作流表格推定成所有環境的預設設定。\n\n對採用者而言,takt 的價值在流程可讀性,不在替代理解工作內容。YAML 中的 initial_step、max_steps、edit 與 required_permission_mode 會直接影響代理能否修改工作樹,因此權限審查應放在執行前。使用 takt add 排隊後,再以 takt list 查看分支狀態,能把任務生命週期和實際檔案變更分開觀察。若工作流使用 Finding Contract,還要確認 .takt/runs/<run>/finding-contract.sqlite 是否被建立,以及 review 產出的 finding 是否能驅動回到 implement。README 未承諾每個 provider 都有相同能力,claude-sdk、codex、opencode 與外部 CLI 的依賴差異必須列入部署清單。對照 takt workflow init 產生的目錄,再執行 takt workflow doctor,能看出自訂步驟是否被正確載入;不要把內建工作流表格推定成所有環境的預設設定。

編輯結論

适合需要TAKT Agent Koordination Topology - Define how AI agents coordinate, where humans intervene, and what gets recorded, in YAML.并愿意按 README 建立试运行记录的开发者或维护者;不适合把仓库描述直接当成兼容性或生产保证的团队。先按项目命令完成最小流程,再观察README 给出的安装入口包括 npm install -g takt 和 Nix 命令,运行环境要求 Node.js 至少 24.15.0。provider 可选 claude、codex、ope,确认输入、输出和失败信息都与预期一致后再扩大使用范围。 本專案核對項目1應依 README 的實際入口和版本標籤保存輸出,並以專案名稱、命令或檔案路徑標記,避免把未說明的行為當成保證。

官方來源

  1. Official README
  2. Project repository
社群筆記

社群筆記