MadoHub Docs

Agent 路由

通过智能转换,在 AI Agent 之间自动传递输出。

Agent 路由是 MadoHub 的核心功能。当一个 Agent 完成任务后,MadoHub 可以自动提取结果,将其转换为可执行的提示词,并传递给另一个 Agent。

工作原理

  1. 触发 — 已连接的源图块根据配置的触发类型(空闲检测、完成检测、关键词匹配或持续模式)触发。
  2. 提取 — MadoHub 读取 Agent 的最后一次响应。对于 Claude Code,使用 JSONL 会话文件进行干净提取。对于其他 Agent,直接读取终端输出。
  3. 转换 — 提取的输出被转换为目标 Agent 的提示词。可以使用 AI 驱动的改写、模板包装或原始透传。
  4. 投递 — 转换后的提示词以模拟人类输入的延迟(每行 50–80ms)逐行输入到目标终端,然后使用 Agent 对应的回车序列提交。

JSONL 会话解析

对于 Claude Code,MadoHub 通过读取会话日志文件来提取干净的响应:

  1. 找到终端对应的 tmux pane,然后广度优先遍历进程树(ps -eo pid=,ppid=,comm=),找到第一个命令名包含 claude/codex/amp/opencode 的后代进程——该 PID 即为 Agent 进程。
  2. 读取 ~/.claude/sessions/{PID}.json(以 Agent 的 PID 而非 session id 为键),提取其中的 sessionId 字段。
  3. 遍历 ~/.claude/projects/ 下的每个子目录,查找名为 {sessionId}.jsonl 的文件——即为对应的会话记录。
  4. 解析 JSONL 并提取最后一条助手消息。

这比原始终端抓取能获得更干净的内容,避免了 ANSI 转义码和格式化伪影。

另外,cwd_to_project_dir() 会将图块的工作目录映射为项目目录:先将 / 替换为 -,如果没有精确匹配,则回退到子字符串搜索。

触发类型

类型行为
on-idle等待完成关键词匹配(IDLE_DELAY_MS),然后等待 8 秒静默。默认且最可靠。
on-complete与 on-idle 处理方式完全相同:等待同样的完成关键词匹配,再等待同样的 8 秒静默延迟后才触发。
on-keyword输出中匹配自定义正则表达式时触发。
always持续流式传输所有新的终端输出。

转换类型

类型说明
ai-routing使用 AI 模型为目标 Agent 生成上下文感知的提示词。需要在设置中配置 API 密钥。支持自定义模板。
prompt-wrap将输出包装在用户提供的模板中。变量:{output}、{round}、{maxRounds}、{source}。
full-output原样发送终端输出的最后 30 行。
raw发送终端输出的最后 10 行。
summary发送 AI 生成的输出摘要。

路由分发默认使用 madoagent 路径(也可选择 legacy、shadow)。

内容投递

MadoHub 以每行 50–80ms 的延迟逐行将内容输入到目标终端,模拟人类输入。回车键行为因 Agent 而异:

  • Claude Code、Codex、Amp、OpenCode:双回车(\r\r)提交。Codex 为 800ms 预延迟、两次按键间隔 200ms;其余 Agent 为 500ms 预延迟。
  • Shell:单个换行符(\n)提交。

循环保护

路由连接具有内置保护机制,防止无限循环:

设置默认值范围说明
maxRounds51–20自动停用前的最大路由循环次数。
cooldownMs3s1–30s触发之间的最小延迟。
stopKeyword—任意字符串检测到指定关键词时停止路由(例如 "LGTM")。

示例工作流

终端 1(Claude Code)               终端 2(Claude Code)
┌──────────────────────┐    →    ┌──────────────────────┐
│ "重构 auth 模块"      │         │ 接收到:              │
│                       │         │ "审查 src/auth/ 中    │
│ ✓ 完成 — 3 个文件     │         │  的重构代码..."       │
└──────────────────────┘         └──────────────────────┘

Agent 1 重构代码。完成后,MadoHub 读取 JSONL 响应,使用 AI 路由生成包含具体文件和变更的审查提示词,并将其投递给 Agent 2。

On this page