部署 AI 编程代理 SDD 实战指南:从单机 Claude Code 到多智能体规范驱动开发
发布日期:2026-07-03 | 分类:AI 开发方法论 | 难度:进阶
简介
2025-2026 年,AI 编程代理(AI Coding Agent)已经从「单打独斗」进化到「多智能体协作」阶段。Claude Code、Codex CLI、Cursor 等工具让开发者能快速生成代码,但当项目规模变大、需求变复杂时,单纯靠对话式编程(Vibe Coding)会出现三个致命问题:
- 意图漂移:聊着聊着,AI 不知道你要做什么了
- 上下文溢出:代码量大到 AI 记不住前因后果
- 缺乏规范:改了什么、为什么改,全靠聊天记录
规范驱动开发(Spec-Driven Development, SDD)正是解决这些问题的方案。而本文将更进一步——讲解如何部署和管理一个由 SDD 驱动的多机 AI 编程代理集群,让不同机器上的不同 Agent 按照统一规范协同工作。
你将学到
- 🖥️ 如何搭建多机 AI 编程代理基础设施(Hermes Agent + Claude Code + Codex)
- 📋 如何在团队中落地 SDD 工作流(OpenSpec 框架)
- 🔄 如何让多个 Agent 按统一规范并行工作
- 🛠️ 实际生产环境的部署和运维经验
- 🚨 常见坑和解决方案
适用读者
- 已经使用过 Claude Code 或 Codex,想提升协作效率的开发者
- 管理多台开发机(Linux/Mac/Windows),想统一调度 AI Agent 的技术负责人
- 对 SDD 有基本了解,想在生产环境落地的人
前置要求
| 资源 | 说明 |
|---|---|
| 一台 Linux 服务器 | 作为中央调度器(建议 Ubuntu 22.04+/Debian 12+) |
| 至少一台远程开发机 | Mac(macOS 14+)和/或 Windows(10/11 22H2+) |
| Hermes Agent | 安装在中央调度机上 |
| Claude Code | 安装在远程开发机上(npm install -g @anthropic-ai/claude-code) |
| OpenSpec CLI | 可选,但推荐安装 |
| SSH 密钥 | 中央调度机免密登录到所有远程开发机 |
| 基本的命令行和容器知识 | — |
一、架构总览
1.1 为什么需要多机部署?
单机 Claude Code 已经很强,但实际开发中常常遇到:
1 | 场景 A:数据库应用开发 |
多机部署不是炫技,而是真实需求驱动的架构选择。
1.2 推荐架构
1 | ┌──────────────────────┐ |
核心原则:
- 中央调度器不写代码——它只负责任务分发、规范管理、进度监控
- 远程代理写代码——Claude Code 在各自的机器上执行
- 规范驱动一切——没有 spec,不动一行代码
二、部署中央调度器
2.1 安装 Hermes Agent
在 Linux 服务器上安装 Hermes Agent:
1 | # 使用安装脚本(推荐) |
验证安装:
1 | hermes --version |
2.2 配置远程开发机连接
Mac 开发机
1 | # 在 Mac 上开启远程登录 |
在中央调度机上配置 SSH 免密登录:
1 | # 生成本机 SSH 密钥(如已有则跳过) |
Windows 开发机
Windows 推荐使用 OpenSSH Server + PowerShell:
1 | # 在 Windows 上安装 OpenSSH Server(管理员 PowerShell) |
中央调度机测试连接:
1 | ssh user@windows-ip "claude --version" |
⚠️ Windows 注意事项:Claude Code 在 Windows 上默认用 CMD,但中文支持不如 PowerShell。建议在项目配置中指定
"shell": "powershell"。
2.3 配置项目清单
Hermes Agent 通过 ~/.hermes/projects.json 管理所有项目。一个典型配置:
1 | { |
这样配置后,只需说「在 dbview 项目中执行:xxx」,Hermes 就会自动 SSH 到 Windows、启动或复用 psmux 会话、把命令发给 Claude Code。
三、SDD 规范体系搭建
3.1 选择 SDD 框架
目前主流的 SDD 框架对比如下:
| 框架 | 特点 | 适用场景 | 社区活跃度 |
|---|---|---|---|
| OpenSpec | 轻量级、文件结构清晰、OPSX 命令 | 已有代码库 + 增量开发 | ⭐⭐⭐⭐⭐ |
| Spec Kit (GitHub) | GitHub 深度集成、Issue/Spec 联动 | GitHub 原生团队 | ⭐⭐⭐⭐ |
| BMAD | 面向大型项目、含架构决策记录 | 企业级复杂项目 | ⭐⭐⭐ |
| cc-sdd | Claude Code 原生、最小化适配 | 单项目快速上手 | ⭐⭐⭐ |
本文以 OpenSpec 为例,因为它最轻量、工具链最成熟,且与 Claude Code 配合最好。
3.2 初始化项目
在远程项目目录中初始化 OpenSpec:
1 | # SSH 到远程开发机 |
这会生成:
1 | project/ |
3.3 配置 CLAUDE.md
为了让 Claude Code 自动遵循 SDD 工作流,在项目根目录创建 CLAUDE.md:
1 | # 项目规范 |
配置了这个文件后,Claude Code 每次启动都会自动加载它,从而内化 SDD 工作流。
四、SDD 驱动的多 Agent 工作流
这是本文的核心——如何通过中央调度器,让多个 AI Agent 按照统一规范并行工作。
4.1 整体流程
1 | ┌──────────────────────────────────────────────────────┐ |
4.2 Step 1:创建 OpenSpec 变更
在中央调度器上,通过 Hermes 创建 OpenSpec 变更计划:
1 | # 发送任务到远程开发机 |
远程的 Claude Code 会生成所有规范文件。Hermes 自动监控进度并在完成后通知。之后人类审核这些规范文件,确认后再进入实现阶段。
4.3 Step 2:批量审批文件创建
Claude Code 在创建多个文件时会逐个询问,正确的处理方式是:
1 | # 在远程开发机上向 tmux 发送选型指令 |
在 Hermes 中,这可以通过 cron 脚本自动处理。
4.4 Step 3:分拆任务并行执行
OpenSpec 的 tasks.md 按优先级和依赖关系排列任务。Hermes 可以将其拆分为独立任务,分发给不同机器:
1 | tasks.md 示例: |
在 Hermes 中执行:
1 | # Agent A 处理核心功能 |
4.5 Step 4:监控执行进度
AI 编程代理可能需要长时间运行(几十分钟到几小时)。使用 Hermes Cron 进行自动监控:
1 | # 创建监控任务,每 5 分钟检查一次进度 |
监控脚本示例:
1 |
|
4.6 Step 5:审查、提交与归档
任务完成后:
1 | # 1. 检查 git 状态 |
五、远程会话管理
5.1 Mac 开发机(tmux)
1 | # 新建会话 |
重要原则: 始终优先复用已有会话,而不是每次都新建。同一项目只应该有一个 Claude Code 会话。Hermes Agent 的项目配置已经内置了会话复用逻辑。
5.2 Windows 开发机(psmux)
Windows 上推荐使用 psmux(PowerShell 版的 tmux 替代):
1 | # 新建会话 |
5.3 远程会话最佳实践
| 实践 | 说明 |
|---|---|
| 会话命名规范 | 用项目名命名:dbview、valin-salary |
| 避免多会话并行 | 同一项目不同任务不要开两个 Claude Code 会话——上下文会互相污染。串行执行或改用独立分支 |
| 定时检查可用性 | 跨天任务可能导致远程会话丢失。启动新任务前先检查会话状态 |
| 输出清空 | 长时间运行的 Claude Code 会累积大量输出,定期 capture 最新内容即可 |
六、自动化与运维
6.1 项目执行自动化
通过 Hermes 的项目配置,将「项目 + 设备 + 工具」绑定,只需一句话就能调度:
1 | { |
使用方式:
1 | 在 Hermes 对话中: |
6.2 定时任务与自愈
Hermes Cron 可以设置任务完成后的自删除,避免监控脚本堆积:
1 | # 一次性监控任务(执行 12 次后自动删除) |
监控脚本的 self-destruct 模式:
1 |
|
6.3 子代理模式(Subagent Delegation)
Hermes Agent 支持子代理模式(delegate_task),适合将大型 OpenSpec 计划拆分为多个子任务并行执行:
1 | 父 Agent(Hermes) |
子代理各自运行在独立的上下文中,互不干扰,最终结果合并回父会话。
七、常见问题
Q1:Claude Code 在远程会话中卡住不动了怎么办?
现象: 发送命令后长时间无响应(显示 “Shimmying…” 或 “Germinating…”)
原因: LLM 在思考或等待工具执行。这通常是正常行为,不是卡死。
处理:
- 检查输出:
tmux capture-pane -t session -p | tail -10 - 如果显示的任务最后一行有更新时间,说明还在工作
- 超过 20 分钟无更新,再考虑重启
Q2:多机并行开发如何处理代码冲突?
方案一:Git Worktree 隔离
每个 Agent 在独立的 worktree 中工作,各自有独立的工作区和分支。
1 | git worktree add ../dbview-agent-a feature/export |
方案二:按模块分拆
利用 OpenSpec 的 tasks.md 天然按功能模块分拆,Agent A 改前端、Agent B 改后端,几乎没有冲突。
Q3:Claude Code 批量创建文件时一直询问确认?
在远程 tmux 会话中:
1 | Claude Code: "Do you want to create file X?" |
解决方案:在第一个文件询问时自动选择选项 2:
1 | tmux send-keys -t project-name "2" Enter |
这个操作可以通过 cron 监控脚本自动化:检测到 “allow all edits” 关键词时自动发 2。
Q4:Claude Code 提示”Context window full”怎么办?
这是 Claude Code 的常见限制。解决方案:
- 减短执行窗口:将 OpenSpec tasks.md 的任务拆分得更细,单次实现 2-3 个任务
- 使用
/compact命令:Claude Code 内置的上下文压缩功能 - 重启会话:提交代码后,重启 Claude Code 会话清空上下文
Q5:Windows 上 Claude Code 中文乱码?
确保在项目配置中指定使用 PowerShell 而不是 CMD:
1 | { |
同时在远程开发机上检查:
1 | # 确认 PowerShell 的编码 |
Q6:远程 SSH 连接经常断开怎么办?
1 | # 在中央调度机的 ~/.ssh/config 中配置 |
Q7:Hermes Cron 监控任务执行成功但没收到通知?
检查两个地方:
1 | # 1. 验证 cron 任务状态 |
常见原因:微信/QQ 等平台接口限流导致的送达失败。如果是这种情况,手动检查任务状态即可。
Q8:多个 Agent 同时写同一个文件怎么办?
永远不要让两个 Agent 同时写同一个文件。 这是黄金法则。如果 OpenSpec 的 tasks.md 显示两个任务有重叠文件,必须串行执行或重新分拆:
1 | ❌ 错误:Agent A 改 userService.ts,Agent B 也在改 userService.ts |
八、进阶阅读
- OpenSpec 基础概念与 OPSX 工作流 — SDD 入门必读
- OpenSpec 实战指南:从规范到代码的完整工作流 — OPSX 实操案例
- Hermes Agent 多机编排实战 — 多机代理调度
- tmux AI 编程会话管理高级实战 — 远程会话管理
- Claude Code Skills 使用教程 — AI Agent 技能定制
- Spec-Driven Development in 2026 — SDD 2026 全景
总结
本文从实战出发,完整讲解了如何部署一个由 SDD 规范驱动的多机 AI 编程代理集群:
| 阶段 | 关键操作 | 工具 |
|---|---|---|
| 基础设施 | 安装 Hermes Agent、配置 SSH、设置远程项目 | SSH、tmux、psmux |
| 规范体系 | 初始化 OpenSpec、配置 CLAUDE.md | OpenSpec CLI |
| 执行流程 | 创建 proposal → 审核 → 拆任务 → 分配 Agent | OPSX 命令 |
| 监控运维 | Cron 监控、批处理审批、自动清理 | Hermes Cron |
| 归档总结 | 提交代码、更新 spec、归档变更 | Git、OPSX archive |
核心思想只有一句话:先写规范,再写代码;中央调度,多机执行。 在 AI 编程代理越来越普及的今天,这不是一个「是否要做」的问题,而是「什么时候做」的问题。
本文基于 Hermes Agent + OpenSpec 的实际生产部署经验编写。 部署日期:2026-07-03 | 环境:Ubuntu 24.04 + macOS + Windows 11