用Claude Code CLI的headless模式(-p --input-format stream-json)配合Gateway、PreToolUse审批和OS级沙箱,实现跨终端持久运行、无人值守的AI编程智能体,并附完整参考实现。
claude-crew 展示了如何以无头模式运行 Claude Code(-p --input-format stream-json),使其成为一个持久化的 Agent,具备 Gateway、PreToolUse 审批和 OS 级沙箱,实现生产级别的自主运行能力。
AWS 发布了 Kiro Crew,这是一个多 Agent 编排器,能够在多次对话中保持 AI 编码 Agent 的存活,并提供记忆、调度和安全能力。一位开发者看到了这条公告,感到困惑,然后做了最务实的事:用 Claude Code CLI 作为执行引擎,重新构建了一遍。
其成果 claude-crew 是一个可工作的参考架构,适合任何希望 Claude Code 会话在关闭终端后依然存活、从多个界面访问、且能安全地无人值守运行的人。
你已经在用 Claude Code 进行交互式会话了。但如果可以:
让一个 Agent 整夜运行来处理定时任务?
在另一个应用中通过仪表盘查看它的状态?
信任它在你不看的情况下运行 shell 命令?
claude-crew 证明了这些用你已经拥有的工具就能实现。核心思路:以无头模式运行 Claude Code,配合 claude -p --input-format stream-json,你就能获得一个可编程接口,对接的正是你交互式使用的同一个 Agent。
以下是让它工作的架构:

基础很简单。以非交互方式运行 Claude Code:
claude -p --input-format stream-json "your prompt here"
这会给你一个 JSON 流,你可以解析、管道传输和程序化控制。同样的 Agent,只是没有了交互式 UI。
Gateway 进程将不同界面(CLI、仪表盘)复用到底层同一个会话上。你不需要 Slack 或 Telegram——从一个 CLI 和一个通过 Server-Sent Events 服务的简单 Web 仪表盘开始即可。
Kiro Crew 有持久化记忆。在 claude-crew 中,这是一个"课程"文件——将偏好和项目历史注入新会话。在 Claude Code 中,你可以通过一个 CLAUDE.md 文件实现同样的效果,该文件会自动加载到每个会话中。
开发者最大的教训:安全是最难的部分。一个长时间运行的、无人值守执行 shell 命令的 Agent 需要三层防护:
第一层:PreToolUse 门控
在任何工具调用执行前,一个 hook 脚本会对其评估。这个工具允许吗?这个文件路径在受保护目录内吗?这个 shell 命令是否符合黑名单?使用 Claude Code 的 PreToolUse hook:
{
"hooks": [
{
"matcher": "ToolUse",
"hooks": [
{
"type": "pre",
"command": "your-policy-script.sh"
}
]
}
]
}
第二层:OS 级沙箱
字符串层面的规则可以被绕过。在 sandbox-exec(macOS)或 bubblewrap(Linux)中运行实际的 claude 进程。即使规则被绕过,内核也会拒绝写入。
第三层:签名审计日志
门控运行在沙箱内,所以不能信任它来签署自己的日志条目。相反,门控将未签名的条目追加到一个 spool 中。沙箱外的一个独立进程将该 spool 排出,并将其签署到哈希链式日志中。这使得篡改可被检测到。
无头模式没有交互式提示。当 Agent 想运行一个敏感命令时,门控将待审批请求写入磁盘并阻塞,轮询直到有人点击允许或拒绝——或者超时后自动拒绝。
你可能不需要完整的编排器。但你可以借鉴这些模式:

用 hooks 设置护栏 — Claude Code 的 hook 系统让你在工具使用发生前对其进行门控。
给你的 Agent 加沙箱 — 不要只信任规则,要在 OS 层面强制执行。
记录一切 — 如果你在运行无人值守的 Agent,你需要可证明的、防篡改的日志。
Kiro Crew 令人印象深刻,但真正的价值在于这个模式:持久化、多界面、安全的 Agent 编排。你今天就可以用 Claude Code 构建这个。从无头模式开始,添加一个 Gateway,永远不要跳过安全层。

claude-crew 的源代码在 GitHub 上,以 Kiro Crew 的仓库作为设计参考。如果你读了它,你会理解两个系统——并且可能会发现自己 Agent 工作流中的几个 bug。
[2024 年 8 月 7 日更新,经由 devto_claudecode]
claude-crew 背后的同一开发者现在详细介绍了生产部署:ClinTrialFinder,一个他在接受癌症治疗期间独立构建的临床试验匹配 Web 应用。该系统运行约 30 个药物页面和数十个疾病特异性试验图谱,其中有一个被真实患者使用的匹配器。他的关键架构选择:每个任务都作为纯 HTML 文件存在于 git 仓库中(目前 500+ 个),由 Agent 进行版本控制和 grep 搜索,有一个专用的"CEO"Claude Code 会话通过 update-active-sprint skill 处理优先级排序。隐私得到强制执行——服务器日志在 14 天内清除 IP,符合应用声明的策略 [per dev.to]。
最初发表于 gentic.news