mcpField
A
AgentTakt

AgentTakt

本地服务
github.comAI 与智能体15 周前更新

关于 AgentTakt

AgentTakt 是 MCP 服务和终端 TUI,用于让人审查 AI Agent 提交的任务计划。计划以节点图呈现,可编辑节点、依赖关系和参数,再批准或拒绝并将结果返回 Agent。

主要功能

  1. 01在终端以节点图展示计划
  2. 02移动、添加和删除节点
  3. 03编辑参数与依赖关系
  4. 04批准或拒绝计划并返回结果
  5. 05通过验证和环路检测

适用场景

  1. 01执行重构前审查 Agent 计划
  2. 02调整计划步骤及其依赖关系
  3. 03在只读模式查看 Agent 计划
  4. 04拒绝计划并附上原因

MCP 相关

MCP 服务接收 Agent 提交的计划,并通过 `request_approval` 或 `show_plan` 将其交给 TUI 展示。批准、编辑或拒绝后的结果会返回给 Agent。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ryoohshima-agenttakt": {
"command": "uvx",
"args": [
"agenttakt"
]
}
}
}
启动命令uvx agenttakt

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiagenttakt0.2.2

工具

2

收录的工具列表 · 更新于 3 周前

参数类型必填说明
planobject是
summaryany否

详细介绍

AgentTakt — 在终端中使用 ComfyUI 风格的可视化节点编辑器,审查、编辑并批准 AI Agent 的任务计划。

PyPI - 版本 PyPI - Python 版本 许可证:MIT

AgentTakt 演示:拖动节点、绘制依赖边并批准

AgentTakt 是一个 MCP(Model Context Protocol)服务和 TUI 工具。当 AI Agent(例如 Claude Code 这样的“执行器”)通过 MCP 发送任务执行计划时,AgentTakt 会在终端中将其呈现为节点图。你可以使用鼠标和键盘进行审查——移动、添加和删除节点,绘制依赖边,编辑参数——然后批准,编辑后的计划 JSON 就会返回给执行器执行。

Claude Code (Executor)
   │ stdio (MCP)                        your other terminal
   ▼                                           │
[agenttakt serve] ── Unix domain socket ──▶ [agenttakt (TUI)]
 MCP server                               review / edit / approve

功能

  • 原生终端体验——无需 Web UI;所有操作都在终端中进行
  • 可视化节点编辑器——圆角节点、依赖边和按类型着色,由 Textual 提供支持
  • 以鼠标操作为主的编辑方式——拖动节点以移动,通过端口绘制边(橡皮筋效果),点击以选择并删除
  • 安全的审批流程——入口处会进行循环检测(保证 DAG)和其他验证,并返回错误,以便 Agent 自行修正

要求

  • Python 3.10+(推荐:uv)
  • 支持鼠标事件报告的终端模拟器(iTerm2、WezTerm、kitty、Ghostty 等)

安装

如果你有 uv,则无需安装。 uvx agenttakt 会按需获取并运行 AgentTakt,下面的 .mcp.json 示例也会以相同方式启动 MCP 服务。

如果你没有 uv,请安装一次 AgentTakt:

brew install ryoohshima/tap/agenttakt    # Homebrew
pipx install agenttakt                   # pipx

即使使用 uv,安装也便于日常使用——你需要手动启动 TUI,因此直接运行 agenttakt 比每次输入 uvx agenttakt 更方便:

uv tool install agenttakt
Agent 插件

此仓库是一个 Agent Plugins 1.0.0 软件包。在兼容的客户端中,将仓库根目录作为插件目录加载:

AgentTakt/
├── plugin.json     # Portable plugin manifest
├── mcp.json        # MCP server configuration
└── LICENSE

该插件要求 PATH 中包含 uvx,并会从 PyPI 运行已发布的 agenttakt 软件包。uv 缓存存储在由客户端管理的 PLUGIN_DATA 目录中。使用这些工具前,请先单独运行 uvx agenttakt 启动 TUI。 对于 request_approval,请在客户端中配置足够长的工具超时时间(例如 30 分钟);可移植的 MCP 格式没有 timeout 字段。

开发用的 .mcp.json 是单独的客户端原生配置,用于运行本地检出版本。server.json 提供 MCP Registry 所需的元数据。

快速开始

AgentTakt 由两个进程组成:MCP 服务由 Claude Code 为你启动,TUI 则需要你在单独的终端中自行启动。TUI 用于显示计划,因此请在要求执行器批准之前启动它。

┌─ Terminal A: you ───────────────────┐   ┌─ Terminal B: Claude Code ───────────┐
│ $ uvx agenttakt                     │   │ $ claude                            │
│                                     │   │                                     │
│   ╭─ grep ───╮                      │   │ > Plan the refactor, then ask       │
│   │ pattern  │───╮                  │   │   me to approve it                  │
│   ╰──────────╯   │                  │   │                                     │
│             ╭────▼─────╮            │   │   calls request_approval(plan)      │
│             │   edit   │            │   │   waiting for approval...           │
│             ╰──────────╯            │   │   (blocked until you decide)        │
│                                     │   │                                     │
│   [a] Approve   [r] Reject          │   │                                     │
└─────────────────────────────────────┘   └─────────────────────────────────────┘
             ▲                                                    │
             ╰──────────────── Unix domain socket ────────────────╯

在与 Claude Code 相同的会话中运行 TUI 不起作用。stdio MCP 服务的标准输入和输出专用于协议通信,因此同一进程无法同时驱动全屏终端界面。因此,这两部分会作为独立进程运行,并通过 Unix 域套接字进行通信。

1. 启动 TUI(在独立的终端中)
uvx agenttakt           # if installed: agenttakt (short alias: agt)

空闲界面会显示出来,等待 Executor 提供计划。请保持此终端打开。如果 Executor 调用 request_approval 时没有正在运行的 TUI,该调用会失败并显示:

AgentTakt 编辑器未运行。请让用户在单独的终端中运行“agenttakt”,然后再次调用 request_approval。

启动时,TUI 会在后台检查 PyPI,并在有新版本可用时显示通知。设置 AGENTTAKT_NO_UPDATE_CHECK=1 可禁用检查。

2. 向 Executor 注册 MCP 服务(Claude Code)

将以下内容添加到项目的 .mcp.json 中:

{
  "mcpServers": {
    "agenttakt": {
      "command": "uvx",
      "args": ["agenttakt", "serve"],
      "timeout": 1800000
    }
  }
}

重要

必须显式设置 timeout(毫秒)。 request_approval 工具会阻塞,直到人工完成审核。MCP 进度通知不会延长客户端超时,因此默认超时会在审批完成前中断请求。上面的示例将超时设为 30 分钟(1800000)。这不适用于 show_plan,因为 TUI 收到计划后,该工具会立即返回。

3. 向 Executor 请求审批

当 Executor 调用 MCP 工具 request_approval(plan, summary) 时,计划会以节点图的形式显示在 TUI 中。人工编辑并批准(或拒绝)后,结果会以如下形式返回:

{ "status": "approved", "plan": { "...edited plan..." }, "reason": null }

有关计划 JSON 格式以及每个节点应填写的内容,请参阅 docs/schema.md。

仅显示计划(show_plan)

show_plan(plan, summary) 会在 TUI 中显示计划,但不会等待审批——编辑器收到计划后,该工具会立即返回 {"status": "displayed"}。无论处于何种模式(不只限于计划模式),如果你只想查看 Agent 的规划,都可以使用此工具。计划会以 [view-only] 标题打开;关闭计划不会向 Executor 返回任何内容。

宿主处于计划模式时,Agent 会自然地调用 request_approval,但在计划模式之外,它们不会主动提供计划。要鼓励这种行为,可在项目的 CLAUDE.md(或等效的 Agent 指令文件)中添加类似以下指令:

## AgentTakt

Whenever you formulate a multi-step plan — in any mode, not just plan mode —
submit it with the AgentTakt `show_plan` tool so the human can see it as a
node graph. Use `request_approval` instead when you need the human's approval
before executing.

注意:[view-only] 计划会一直占用编辑器,直到被关闭;之后的 request_approval 会排在它后面等待处理。

调试模式(不使用 MCP 进行试用)
uvx agenttakt open examples/sample_plan.json --out edited.json

从文件加载计划,打开编辑器,并将审批结果写入 --out。

按键绑定

按键操作
a批准计划(确认对话框)
r拒绝计划(需说明原因)
n添加节点
d / Delete删除所选节点/边
u / U撤销 / 重做
方向键将所选节点移动一个单元格(微调)
Escape清除选择
p切换参数面板
?帮助(操作说明以及如何填写 type / data)
q退出

鼠标:拖动节点可移动它;从节点的输出端口(●,右侧边缘)拖出,并在另一节点上松开,可创建一条边。

默认情况下,边会绘制为盲文风格的贝塞尔曲线。如果它们在你的环境中显示效果不佳,可使用 --edges orthogonal 切换为圆角正交线。

文档

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。