用途
Monitor Tool 用于把后台进程的事件流式传入对话。它启动一个后台监视器(watcher),监视器在后台运行,每个事件都会作为新的对话消息立即送达,Claude 随即对事件做出反应——不需要轮询循环,也不需要用 sleep 保持回合开启。对话保持开启,事件异步到达,Claude 逐个处理并决定是否采取行动。
该工具自 v2.1.98 起可用。
主要能力
与传统的 Bash 轮询方式相比,Monitor Tool 的差异在于:
- Bash(sleep 循环、轮询):使用
while true; do check_ci_status; sleep 30; done这类循环反复检查。 - Monitor tool:Claude 启动一个监视器,监视器在后台运行,每个事件产生一条新消息,Claude 立即做出反应。
常见使用场景
- 跟踪日志文件:例如“在后台跟踪 server.log,一旦出现 5xx 就告诉我”。Claude 在 server.log 上启动监视器,每条新日志行作为对话消息到达;当匹配到 5xx 模式时,Claude 立即反应——描述错误、建议修复或自动应用修复。
- 监视 PR 上的 CI:例如“监视我当前分支上的 CI,出现失败就修复”。Claude 监视 CI 状态,当某项检查失败时,读取失败输出、编写修复并推送。
- 自动修复开发服务器崩溃:例如“在后台启动开发服务器,监视崩溃,崩溃时重启并修复”。Claude 启动服务器、监视其输出,出现崩溃时读取 traceback、修补代码并重启。
- 训练运行进度:例如“启动训练,并在每个 epoch 汇总进度,同时不让会话空闲”。Claude 监视训练输出,并在事件到达时发送 epoch 汇总。
使用方式
/loop 自适应节奏
/loop 现在支持自适应节奏:如果省略间隔,Claude 会根据正在等待的内容选择下一次 tick 的时机。当 Monitor 工具可用时,Claude 会优先使用它而不是轮询。
例如:
/loop check CI on my PR
Claude 将会:
- 使用 Monitor 工具监视 CI(而不是用 sleep 轮询)
- 结果一到达就立即反应
- 仅在无法使用 Monitor 时才安排下一次检查
显式间隔(仍然有效):
/loop --interval 60 run the dependency audit
动态方式(推荐):
/loop check CI on my PR
将 Monitor 与 PreToolUse 钩子配对
如果希望限制 Monitor 可以监视的内容(例如仅限内部主机),可使用如下配置:
{
"hooks": {
"PreToolUse": [{
"hooks": [{
"if": "Monitor(*)",
"type": "command",
"command": ".claude/hooks/monitor-allowlist.sh"
}]
}]
}
}
对应的允许列表脚本示例:
#!/usr/bin/env bash
# monitor-allowlist.sh — only allow monitoring local files and localhost
set -euo pipefail
INPUT=$(cat)
TARGET=$(echo "$INPUT" | jq -r '.tool_input.target // ""')
case "$TARGET" in
*.log|localhost:*|/tmp/*)
echo '{"decision": "approve"}'
;;
*)
jq -n --arg t "$TARGET" '{"decision":"block","reason":("Monitor target not allowed: "+$t)}'
;;
esac
工具选择:Monitor vs Bash 循环 vs ScheduleWakeup
| 场景 | 最佳工具 |
|---|---|
| 实时响应日志事件 | Monitor tool |
| 等待已知时长的进程(如 8 分钟构建) | ScheduleWakeup(约 270s,保持在缓存中) |
| 每分钟轮询 REST 端点 | Monitor tool(包装在监视脚本中) |
| 长时间空闲的后台检查(>30 分钟) | ScheduleWakeup(1200s+) |
| 按需的一次性进程检查 | Bash |
适用平台与限制
可用环境:
- CLI(v2.1.98+)
- 桌面应用
不可用环境:
- -p(print/pipe)无头模式
关于收费、价格、具体平台支持范围等更多信息,资料中暂未提供。