🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

智能体工作流编排 nrslib/takt

DeepSeek Harnessv0.72.0
nrslib23 天前有提交已提供中文文档扫描:高危

不再日夜盯着 AI 编码智能体。

70/100
综合分
1,402
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:engines.node 要求 >=22.22.0,不满足 Node 22.19.0。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add nrslib/takt
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · skill
装得上吗
静态安装检查未通过,可能需要源码安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

engines.node 要求 >=22.22.0,不满足 Node 22.19.0

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包takt @ 0.72.0
✗Node 引擎要求 >=22.22.0 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/25 15:00:25

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

安装时即执行脚本发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
  • 发起网络请求
    web-ui/public/api.js:24
    const response = await fetch(path, options);
  • 发起网络请求
    web-ui/public/api.js:54
    const response = await fetch(path, mutationOptions(requireSessionToken(), body));
  • 发起网络请求
    web-ui/public/api.js:63
    return fetch(path, mutationOptions(requireSessionToken(), body));
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh@deepseek-ai/dsh-llm@deepseek-ai/dsh-sdk-client
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

2 张 · 点击查看大图

功能亮点

  • YAML定义智能体协调
  • 人工介入点配置
  • 记录内容设定

TAKT 智能体协调拓扑——用 YAML 定义 AI 智能体如何协调、人在哪里介入、记录哪些内容

README

由 DeepSeek 最新模型翻译生成
TAKT 不再日夜盯着 AI 编码智能体。 TAKT 是一个开源 CLI,可将 AI 编码智能体变成可重复的开发工作流。你可以在 YAML 中定义规划、实现、审查、修复循环、人工检查点、权限和输出契约,然后在隔离的 worktree 中执行任务并保留可追踪的日志。 你不需要让一个智能体记住整个流程;TAKT 为每个 step 分配独立的角色、上下文和转移规则。AI 负责编写代码,workflow 决定下一步做什么。 TAKT 控制 AI 编码智能体工作流 - 将规划 → 实现 → 审查 → 修复循环定义为明确的 workflow step - 通过 step 专属的 persona、policy、knowledge、instruction 和 output contract 保持上下文聚焦 - 在隔离的 worktree 中执行排队任务,并在之后查看日志和报告 - 使用 Claude Code、Claude SDK、Codex SDK、OpenCode SDK、Pi SDK、官方 DeepSeek Harness SDK、Cursor、GitHub Copilot CLI 或 Kiro 作为 provider TAKT Agent Koordination Topology 通过审查循环、prompt 管理和按 step 划分的权限来编排多个 AI 智能体。
展开完整文档(README 剩余 1 节)
TAKT

不再日夜盯着 AI 编码智能体。

TAKT 是一个开源 CLI,可将 AI 编码智能体变成可重复的开发工作流。你可以在 YAML 中定义规划、实现、审查、修复循环、人工检查点、权限和输出契约,然后在隔离的 worktree 中执行任务并保留可追踪的日志。

你不需要让一个智能体记住整个流程;TAKT 为每个 step 分配独立的角色、上下文和转移规则。AI 负责编写代码,workflow 决定下一步做什么。

TAKT 控制 AI 编码智能体工作流

- 将规划 → 实现 → 审查 → 修复循环定义为明确的 workflow step
- 通过 step 专属的 persona、policy、knowledge、instruction 和 output contract 保持上下文聚焦
- 在隔离的 worktree 中执行排队任务,并在之后查看日志和报告
- 使用 Claude Code、Claude SDK、Codex SDK、OpenCode SDK、Pi SDK、官方 DeepSeek Harness SDK、Cursor、GitHub Copilot CLI 或 Kiro 作为 provider

TAKT Agent Koordination Topology 通过审查循环、prompt 管理和按 step 划分的权限来编排多个 AI 智能体。

先和 AI 对话描述需求,再将需求加入任务队列,最后运行 takt run。规划、实现、审查和修复循环都定义在 YAML workflow 文件中,不会把整个流程交给智能体自行决定。TAKT 让 Claude Code、Codex、OpenCode、Pi、官方 DeepSeek Harness SDK、Cursor、GitHub Copilot CLI 和 Kiro CLI 以不同的角色、权限和上下文协作。

TAKT 主要用于 AI 编码工作流,但同样适用于任何需要多个 AI 智能体协作,或可以通过审查、判断和反馈循环提高质量的任务。

TAKT 本身也是用 TAKT 开发的(dogfooding)。

为什么选择 TAKT

AI 编码智能体不会自动形成稳定的开发流程。在长时间工作中,它们可能忘记指令、积累被污染的上下文、混淆实现与审查职责,还会迫使人类反复提出相同的反馈。

把更多规则写入 prompt、CLAUDE.md 或 skill 会有所帮助,却不能真正强制流程;规则是否被遵守仍取决于智能体自身的行为。

TAKT 将 AI 智能体视为需要从外部控制的对象,而不是仅仅依赖信任。

workflow 定义阶段,每个 step 获得自己的 persona、policy、knowledge、instruction 和 output contract。TAKT 以声明式方式管理实现、审查、修复和再次审查。把职责、知识和限制分开,再只向当前 step 提供所需内容,可以避免上下文膨胀并提高任务质量。

审查不会被静默跳过。发现问题后,工作会回到修复 step;需要时也可以请求人工判断。任务在隔离的 worktree 中运行,每个 step 都留下日志和报告,因此从任务到 PR 的路径可以追溯。

TAKT 将这些环节组织为由角色、阶段、判断和反馈循环组成的可复用智能体流程;开发流程因此不依赖人类持续介入,保持可审查、可复现。

5 分钟试用

请在至少有一个 commit 的 Git 仓库中运行:

npm install -g takt

与 AI 对话描述任务,使用 /go,然后选择“加入任务队列” takt

在隔离的 worktree 中执行排队任务 takt run

查看 diff、合并、重试、重新排队或删除任务分支 takt list

首次运行时,请在 ~/.takt/config.yaml 中配置 provider,或使用配置中列出的 API key 环境变量。claude-sdk、codex、opencode、pi 和 deepseek-harness 等 SDK provider 可在 Node.js 中运行。使用 DeepSeek Harness 前,请运行 takt install deepseek-harness。CLI provider 还需要对应的外部 CLI。

视频教程

请按照文字教程完成以下实践操作:

| 第 1 章 | 第 2 章 |
| 观看 TAKT 视频教程第 1 章 | 观看 TAKT 视频教程第 2 章 |

TAKT 与普通 AI 编码智能体的区别

| 普通 AI 编码智能体 | TAKT |
| 由 prompt 要求智能体遵守流程 | 由 YAML workflow 管理流程 |
| 审查步骤可能被忘记或跳过 | 审查和修复循环是明确的转移 |
| 一个很长的上下文不断增长 | 每个 step 只获得所需上下文 |
| 实现和审查职责容易混淆 | persona、权限和 output contract 分离职责 |
| 需要靠记忆重新创建同一流程 | workflow 可复用、可审查、可版本化 |

要求

TAKT 需要 Node.js >=22.22.0。

所选 provider 决定是否需要外部 CLI,或者是否只用 Node.js 即可通过 TypeScript SDK 运行。

默认 provider 是使用 Claude Agent SDK 的 claude-sdk。claude 是 claude-sdk 的别名。

如果要继续使用原来的 headless Claude Code CLI,请将 runtime.yaml profile 或旧版 config.yaml 中的 provider: claude 改为 provider: claude-headless,CLI 覆盖使用 --provider claude-headless。权限配置应移到 provider_profiles.claude-headless。使用新的 SDK 默认值或显式指定 claude-sdk 时,应将权限配置移到 provider_profiles.claude-sdk;显式指定别名 claude 时仍使用 provider_profiles.claude 键。例如,未指定 provider 且原来设置了 provider_profiles.claude.default_permission_mode: readonly 时,不迁移该 profile 会导致旧权限设置失效,并可能回退到 SDK 的 builtin edit。共享的 provider_options.claude 键保持不变。以旧 claude 名称保存的会话不会被恢复,而是启动新会话。claude-terminal 的行为保持不变。

以下 provider 通过 SDK 运行,不需要 CLI:

- claude-sdk — @anthropic-ai/claude-agent-sdk
- codex — @openai/codex-sdk
- opencode — @opencode-ai/sdk
- pi — @earendil-works/pi-coding-agent

deepseek-harness 在 Node.js 中通过官方 TypeScript SDK 和对应的 DeepSeek Harness runtime 运行。使用前请运行 takt install deepseek-harness;固定版本的 SDK 和 runtime 会安装到 TAKT 管理目录中。TAKT 检测到的损坏可重复运行该命令修复。如果完整性检查通过但 provider 仍运行异常,请运行 takt install deepseek-harness --force 重新安装。支持 glibc >= 2.28 的 Linux x64/arm64 和 macOS arm64 >= 14.0。无需 Python 或 uv。

runtime 保持运行且配置不变时,多个 turn 会按 FIFO 顺序串行执行。SDK 无法在 runtime 重启或 teardown 后恢复已保存的历史,也无法在保留该历史的同时替换 runtime 配置。此时 TAKT 会通过固定诊断拒绝旧 session。要使用新配置,请用新的 session identity 启动一个新的 TAKT session/run。这是有意的破坏性变更;跨 runtime 的历史保留延期支持。TAKT 不会自动删除旧 Python/uv 安装的文件;如需清理,请检查旧 managed environment 后手动处理。现有 credential 文件归用户所有,不会迁移或删除。

每个进程最多保留八个 idle runtime,执行中及排队中的 turn 受保护。淘汰后的 ID 无法恢复历史。其他 TAKT 进程正常使用共享 home 时,会显示 home 占用错误;等待其退出或使用另一个 TAKT_CONFIG_DIR,不得通过删除 state 绕过。旧 Python 环境清理和残留 lock 恢复请遵循配置指南的“旧环境的手动清理”。保留 credential store,不要删除整个 managed home。

为避免 provider 错误回显 credential 后被写入 session 文件,TAKT 会禁用 runtime 的 JSONL session-persistence plugin。同一 runtime 内仍可继续多个 turn。TAKT 不读取或删除已有的 DeepSeek session 文件,会保留这些文件。

代码编辑可使用 SDK 标准文件操作、搜索、shell 和委派执行工具。与其他本地 coding provider 一样,请仅运行可信 workspace 和 prompt。credential reference 不构成操作系统级读取隔离;工具可以访问 host 和 SDK policy 允许的文件与环境变量。

默认交互会话不附加 TAKT allowlist,直接使用 SDK 标准工具。显式工具限制(包括 [])会在 SDK 启动前被拒绝。DeepSeek 无法强制 report/status phase 禁用工具,因此这些 phase 会在执行前失败;需要这些 phase 的 workflow 应使用兼容的 provider。

session 历史恢复仍等待 SDK 支持,交互中的 SDK session ID 可以改变。无法继续时,当前 turn 失败且不重试,保存的 ID 会被清除;错误消息说明下一个用户 turn 将启动新的 SDK session,不重放之前的历史。拒绝工具或权限限制时不会移除 ID 再重试,仍运行的 session 可继续使用。persona 也区分未声明工具列表与显式 [],后者保持为限制并拒绝执行。

TeamLeader 初始 step 也区分未声明的 inspect_tools 与显式 []。指定 SDK ID 仅用于继续匹配的运行中 runtime;未注册的保存 ID 也会在 SDK 启动前拒绝。credential binding 改变属于不可重试的 credential_binding_changed,不走 continuation 恢复流程,保存 ID 不会被清除。需启动新的 TAKT session/run,不能用新 ID 静默绕过认证绑定限制。

认证使用官方 store $DSH_HOME/.credentials.yaml(默认 ~/.dsh/.credentials.yaml),或所选环境变量(例如 DEEPSEEK_API_KEY)。TAKT 将 credential source 与自身管理的 runtime home 分开,绝不读取、复制或改写已保存的 secret 值。配置和 session 限制请参阅配置指南。

以下 provider 需要外部 CLI:

- claude-headless — Claude Code
- claude-terminal — 在交互式终端会话中驱动 Claude Code,还需要 tmux
- copilot — GitHub Copilot CLI
- cursor — Cursor Agent
- kiro — Kiro CLI

可选工具:

- GitHub CLI(gh)— 用于 takt #N GitHub Issue 任务
- GitLab CLI(glab)— GitLab Issue/MR 集成(根据 remote URL 自动检测)
- Java 17 或更高版本(PATH 上的 java)— 在形式规范模式下运行 /verify 的模型检查阶段(quint verify 与 Alloy Analyzer)时需要。Quint CLI 本身随 TAKT 一起提供;首次运行时会下载的内容请参阅形式规范验证

关于 OAuth: 是否可以使用 OAuth 取决于 provider 和使用场景。使用 TAKT 前请查看各 provider 的服务条款。

快速开始

安装

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 仍需单独安装,并按要求放在 PATH 中或另行配置。

与 AI 对话并加入任务队列

$ takt

Select workflow:
❯ 🎼 default (current)
📁 🚀 Quick Start/
📁 🛠️ Development/
📁 🔍 Review/

Add user authentication with JWT

[AI clarifies requirements and organizes the task]

/go

Proposed task:
...

What would you like to do?
Execute now
Create GitHub Issue
❯ Queue as task # ← 常规流程 Continue conversation

选择 Queue as task 会将任务保存到 .takt/tasks/。运行 takt run 后,TAKT 创建隔离的 worktree,执行 workflow(plan → implement → review → fix 循环),结束后询问是否创建 PR。

在普通 assistant 对话中,可以使用 /issue 123 或 /issue 12 34 替换当前引用的 Issue,并继续同一个对话。之后的消息和 /go 会使用获取到的 Issue 内容。

执行排队任务 takt run

也可以从 GitHub Issue 加入任务 takt add #6 takt add #12

执行所有待处理任务 takt run

选择“Execute now”: workflow 会直接在当前目录运行,不创建 worktree 隔离。它适合快速实验,但修改会直接进入当前工作树。

管理结果

查看任务分支,并进行合并、重试、重新排队、强制失败或删除 takt list

工作原理

TAKT 的名称来自德语 “Takt”,意为节拍或指挥棒的一击;指挥家用它来让乐团保持同步。TAKT 在面向用户和实现的术语中都统一使用 workflow 与 step。

workflow 由一系列 step 定义。使用 steps、initial_step 和 max_steps。每个 step 指定 persona(由谁执行)、权限(允许做什么)以及规则(接下来做什么)。最小示例:

name: plan-implement-review
initial_step: plan
max_steps: 10

steps:
- name: plan
persona: planner
edit: false
rules:
- condition: Planning complete
next: implement

- name: implement
persona: coder
edit: true
required_permission_mode: edit
rules:
- condition: Implementation complete
next: review

- name: review
persona: reviewer
edit: false
rules:
- condition: Approved
next: COMPLETE
- condition: Needs fix
next: implement # ← 修复循环

规则决定下一个 step。COMPLETE 表示 workflow 成功结束,ABORT 表示失败结束。完整 schema、并行 step 和规则条件类型请参阅 Workflow Guide。

可复用的 step 定义可以放在 .takt/steps/,再通过 uses 展开。片段查找和覆盖规则请参阅 Workflow Guide。

正式的 workflow 目录名是 workflows/。同名 workflow 存在于多个位置时,TAKT 按以下顺序解析:.takt/workflows/ → ~/.takt/workflows/ → builtins。

推荐 workflow

| Workflow | 用途 |
| default | 标准开发流程。基于场景的规划与测试优先开发,配合动态实现 companion、多视角并行审查、裁定和收敛式修复循环 |
| maintenance | 面向既有代码库的 default 变体:保护变更范围外的契约,只做与请求有因果关系的修改 |
| simple | 与 pure 相同的最小结构,TAKT 按变更内容自动选择并注入领域 facet 的轻量流程;始终包含 AI 反模式与架构指导 |
| pure | 不注入领域 facet 的最小流程,信任模型自身的判断与 skill 选择 |
| takt-default | TAKT 自身使用的开发流程,也适用于其他 CLI 工具 |
| takt-default-team | 通过 Team Leader 任务分解执行实现与修复的 takt-default 变体 |
| review | 按变更动态选择 reviewer 并由 supervisor 汇总的多视角审查,不修改代码 |
| review-fix | 按变更动态选择 reviewer 的多视角审查,随后使用标准 workflow 的裁定、验证修复循环和最终需求检查收敛 |

领域特化系列(simple- / frontend / backend / dual / CQRS / -mini 变体)仍可在 📦 Legacy 分类中使用。

所有 builtin workflow 和 persona 请参阅 Builtin Catalog。

主要命令

| 命令 | 说明 |
| takt | 与 AI 对话、完善需求、执行或排队任务 |
| takt exec | 启动即时 Assistant/Worker/Review agent 模式,无需写 workflow YAML |
| takt make | 启动 Workflow Maker,通过对话创建或修改独立的 workflow bundle |
| takt add | 通过 AI 对话完善任务并加入队列,也可从 GitHub Issue 创建 |
| takt run | 执行所有待处理任务 |
| takt watch | 监视任务队列并自动执行待处理任务 |
| takt ui | 在 http://127.0.0.1:20525 启动实验性的 Viewer 优先 Web UI |
| takt list | 管理任务分支:合并、重试、重新排队、强制失败、指导或删除 |
| takt #N | 将 GitHub Issue 作为任务输入 |
| takt eject | 复制 builtin workflow/facet 以便定制 |
| takt workflow init | 创建 workflow scaffold |
| takt workflow doctor | 验证 workflow 定义 |
| takt workflow inspect | 检查 workflow 的配置与解析来源 |
| takt repertoire add | 从 GitHub 安装 repertoire package |

全部命令和选项请参阅 CLI Reference。

TAKT 还提供两个客户端集成入口:takt-acp 通过 stdio JSON-RPC 作为 Agent Client Protocol agent 运行;takt-mcp 作为 stdio MCP server 运行,让 MCP 客户端(Codex、Claude Code 等)可以加入任务队列、读取 task/run 状态,并向正在运行的 worktree clone 任务发送追加指令。使用 takt run 或 takt watch 执行待处理任务。

普通 takt assistant 对话在 provider 支持 MCP 时也可以只读查看相同的 task 状态。新任务使用 /go,向正在运行的 worktree clone 追加指令时使用 /tell 选择目标并确认后发送。

即时 exec 模式

takt exec 启动 TAKT 的交互式任务录入模式。Assistant agent 澄清需求,/go 将对话转换为生成的 workflow,Worker agent 实现任务,Review agent 审查结果,Replanning agent 在需要时向用户询问方向;循环检测会阻止无效的重复循环。

exec 会从上一次 exec 配置启动;首次使用时使用默认配置。传入 preset 名称可以从指定 preset 开始。在对话中使用 /setup 编辑 agent、循环检测阈值、preset 以及引用的 instruction/knowledge/policy facet。builtin/default preset 只定义角色、facet 和循环阈值。exec 启动时从普通 TAKT 配置解析 provider 和 model,并在 Assistant 对话与 /setup 显示中使用同一解析结果。生成的 workflow 使用 capability 表达工具/技能需求;provider、model 和 options 留在 runtime 配置中。

exec preset 的解析顺序是:项目 .takt/exec/presets/ → 全局 $TAKT_CONFIG_DIR/exec/presets/(默认 ~/.takt/exec/presets/)→ builtin builtins/exec/presets/。/setup 的变更保存到 $TAKT_CONFIG_DIR/exec.yaml(默认 ~/.takt/exec.yaml),供下次 exec 使用。/go 会生成 .takt/exec/workflow.yaml 并通过普通 workflow engine 执行;没有对话或内联任务文本时,/go 不会生成 workflow。使用 /cancel 可退出而不运行。

exec 输入支持图片附件。使用 /paste-image 或 macOS 上的 Ctrl+V 附加剪贴板图片;TAKT 会插入 [Image #N] 占位符。只有在 Assistant 消息或 /go 备注中引用该占位符时,图片才会随请求发送。支持 PNG、JPEG、GIF 和 WebP,内联及剪贴板图片限制为 10 MiB。

配置

最小的 ~/.takt/config.yaml:

provider: claude-sdk # claude-sdk, claude (alias), claude-headless, claude-terminal, codex, opencode, deepseek-harness, cursor, copilot, kiro, pi, or mock
model: sonnet # 直接传给 provider language: en # en 或 ja;当前 UI 不提供 zh-CN

下面是保留的旧版配置模式示例。runtime 模式下,应将 provider、model、provider options 和路由放入 runtime.yaml;workflow YAML 不能设置这些执行配置:

provider: codex # 没有 workflow step 上下文时使用;没有 auto_routing 时也是默认值 model: gpt-5.6-sol takt_providers: assistant: # 可选覆盖;interactive / instruct / retry 不使用 auto routing provider: codex model: gpt-5.6-sol auto_routing: strategy: balanced # cost、balanced 或 performance router: provider: codex model: gpt-5.6-luna candidates:
- name: advanced
description: Planning, final decisions, requirement-fulfillment judgment, and other advanced reasoning
provider: codex
model: gpt-5.6-sol
routing_tier: high
- name: coding
description: Implementation, tests, debugging, and refactoring
provider: codex
model: gpt-5.6-terra
routing_tier: medium
- name: lightweight
description: Formatting and small mechanical edits
provider: codex
model: gpt-5.6-luna
routing_tier: low
rules:
steps:
security-audit: advanced
default_pool: general
candidate_pools:
general:
candidates: [lightweight, coding, advanced]
fallback: advanced
implementation:
candidates: [coding, advanced]
fallback: advanced
pool_rules:
tags:
implementation: implementation

旧版模式中,没有 workflow-step 上下文的操作使用具体的顶层 provider/model;Assistant 对话不走 auto routing。自动路由决策只在本地以 NDJSON 写入 .takt/events/,可通过 telemetry.routing_decisions 或 takt telemetry status|enable|disable 查看和控制,TAKT 不会上传这些决策。

运行元数据、session、trace、report 等运行产物仍以普通文件保存在 .takt/runs/<run>/ 下。

更完整的配置、provider profile、model 解析和 runtime.yaml 说明请参阅配置指南。

TAKT 也可以直接使用 provider 凭据。DeepSeek Harness 需要先运行 takt install deepseek-harness。以下是凭据环境变量的示例:

export TAKT_ANTHROPIC_API_KEY=sk-ant-... # Anthropic(Claude)
export TAKT_OPENAI_API_KEY=sk-... # OpenAI(Codex)
export TAKT_OPENCODE_API_KEY=... # OpenCode
export TAKT_CURSOR_API_KEY=... # Cursor Agent(可选)
export TAKT_COPILOT_GITHUB_TOKEN=ghp_... # GitHub Copilot CLI
export TAKT_KIRO_API_KEY=... # Kiro CLI
export DEEPSEEK_API_KEY=... # 官方 DeepSeek Harness SDK;使用保存的 credential 时可省略
可选:export DEEPSEEK_BASE_URL=https://... Pi 使用其 SDK credential store 或 provider 原生环境变量

OpenCode 默认有 60 分钟的 provider-event 不活跃上限;如果调用可能超过此时间,请显式设置 provider_options.opencode.guards.call_timeout_ms(最多 86,400,000 ms):

provider_options:
opencode:
guards:
profile: standard
model_profiles:
"opencode/big-pickle": minimal
"lmstudio/*": standard
call_timeout_ms: 7200000
text_byte_limit: 1048576
reasoning_byte_limit: 4194304

已移除的 TAKT_OPENCODE_TOOL_ERROR_BUDGET、TAKT_OPENCODE_TOOL_SIGNATURE_ABSOLUTE、TAKT_OPENCODE_TOOL_SIGNATURE_REPEATS、TAKT_OPENCODE_TOOL_SUCCESS_REPEATS 和 TAKT_OPENCODE_TOOL_RESULT_STAGNATION_REPEATS 会被忽略,并发出一次迁移警告。详见配置指南中的 v6 guard 策略。

专用 provider 配置(runtime.yaml)

provider、model、provider options、自动路由和内部 agent 分配可以放入专用层:~/.takt/runtime.yaml 与 <project>/.takt/runtime.yaml,项目层优先。runtime.yaml 是配置层默认值;CLI 和环境变量覆盖仍然可用。workflow YAML 不能设置 provider/model/options/routing;已移除的字段会在加载时失败并给出迁移提示。

Companion reviewer 默认禁用。要启用它们,请在 runtime.yaml 设置顶层策略:

version: 1
companion:
enabled: true

全局和项目策略都设置时按逻辑 AND 合并;全局 false 不能由项目设置重新启用。省略的策略在层合并时是 neutral;两层都没有设置时 Companion 仍禁用。Companion target 和 provider capability 只在启用时解析/执行;禁用时仍会进行 companion 声明和 target 结构校验,但不会解析或运行 companion provider。

定制

自定义 workflow

takt workflow init my-flow # 创建 workflow scaffold takt workflow doctor my-flow # 验证 workflow 定义 takt eject default # 复制 builtin workflow 到 ~/.takt/workflows/ 并编辑

自定义 persona

在 ~/.takt/facets/personas/ 中创建 Markdown 文件:

~/.takt/facets/personas/my-reviewer.md
You are a code reviewer specialized in security.

在 workflow 中引用:persona: my-reviewer。

~/.takt/personas/ 仍作为兼容路径有效,但 takt catalog 只扫描 facets/ 目录。详情请参阅 Workflow Guide。

CI/CD

TAKT 为 GitHub Actions 提供 takt-action:

- uses: nrslib/takt-action@main
with:
anthropic_api_key: ${{ secrets.TAKT_ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}

其他 CI 系统可以使用 pipeline 模式:

takt --pipeline --task "Fix the bug" --auto-pr

完整设置请参阅 CI/CD Guide。

项目结构

~/.takt/ # 全局配置 ├── config.yaml # provider、model、language 等 ├── workflows/ # 用户 workflow 定义 ├── facets/ # 用户 facet(persona、policy、knowledge 等) └── repertoire/ # 已安装的 repertoire package

.takt/ # 项目级目录 ├── config.yaml # 项目配置 ├── workflows/ # 项目 workflow 覆盖 ├── facets/ # 项目 facet ├── tasks.yaml # 待处理任务 ├── tasks/ # 任务规格 └── runs/ # 执行报告、日志和上下文

采用 Spec-Driven Development

TAKT 以声明式 YAML 状态机强制阶段转移,通过 output contract 固化每个阶段的产物,并通过并行审查和修复循环处理偏差。这种结构适合遵循 Spec-Driven Development(SDD)的用户。社区项目 j5ik2o/takt-sdd 提供 Requirements → Gap Analysis → Design → Tasks → Implementation → Validation 工作流,以及 OpenSpec 风格的变更提案流程:

npx create-takt-sdd

其他社区集成请参阅外部集成。

文档

简体中文文档

本次简体中文翻译采用文件名后缀 .zh-CN.md。它与既有英文原文件和 .ja.md 日语文件并存;zh-CN 明确表示简体中文,而不是运行时 UI 语言。

已翻译并维护以下入口:

| 文档 | 说明 |
| 教程 | 通过三个阶段改进一个示例,并学习排队、运行和检查任务 |
| CLI 参考 | 所有命令和选项 |
| 配置 | 全局与项目设置、provider 和 runtime |
| Workflow 指南 | 创建和定制 workflow |
| 任务管理 | 任务排队、执行和隔离 |
| 形式规范验证 | 通过 /verify 用 Quint 和 Alloy 验证已达成共识的需求 |
| 外部集成 | 不修改核心的社区集成示例 |
| 中文文档入口 | 安装、快速开始和文档导航 |

以下完整文档页面暂不翻译,继续以英文/日文提供:Builtin Catalog、Observability、Design Philosophy、Faceted Prompting、Token Saving、Repertoire Packages、CI/CD、Testing、Contributing、Changelog,以及项目设计和开发内部文档。运行时 UI、prompt 和 language 配置也没有新增中文选项;本次变更只增加文档,不修改 runtime 行为。

赞助者

TAKT 通过 CodeRabbit 的 Open Source Support Program 获得支持。

社区

如有问题、讨论或更新,欢迎加入 TAKT Discord。

贡献

请参阅英文 CONTRIBUTING.md 了解详情。

许可证

MIT — 详情请参阅 LICENSE。
预览分享卡片长什么样 ↓nrslib/takt
分享 · DeepSeek Harness Hub
nrslib/takt

不再日夜盯着 AI 编码智能体。

回到顶部