VibeSync + ContextPruner: 多 AI Agent 协同开发的网关 & 上下文编译器
多个 AI Agent(Cursor、Copilot、Codex 等)同时操作同一个仓库时:
- 🔥 文件冲突 — Agent A 改的文件被 Agent B 覆盖
- 🧠 上下文溢出 — 每次都给 AI 喂整个项目,Token 爆炸
- 🔄 状态丢失 — Agent 会话断开后不知道做到哪了
Runtime 就是来解决这些问题的。
Runtime
├── packages/shared # 共享类型定义
├── packages/vibe-sync # VibeSync — 并发 AI 开发网关
│ ├── session/ # 会话生命周期管理
│ ├── worktree/ # git worktree 隔离
│ ├── lock/ # 文件租约锁
│ └── git-proxy/ # git 命令代理
├── packages/context-pruner # ContextPruner — JIT 上下文编译
│ ├── selector/ # 文件相关性评分引擎
│ ├── token-budget/ # Token 预算管理
│ ├── sop-graph/ # SOP 决策图 DSL
│ └── prompt-builder/ # Prompt 组装器
├── packages/cli # CLI 入口 (Commander.js)
├── packages/mcp-server # MCP Server — 供 AI 工具直接调用
└── packages/vscode-extension # VS Code Extension — 在 VS Code 中使用 Runtime MCP
- Node.js 18+
- Git 2.5+
- npm
git clone https://github.com/d8dzmf5mfn/runtime.git
cd runtime
npm install
npm run buildbash bootstrap.sh或者手动:
node packages/cli/dist/index.js --helpgit clone https://github.com/d8dzmf5mfn/runtime.git
cd runtime
npm install
npm run build# 克隆并构建
git clone https://github.com/d8dzmf5mfn/runtime.git
cd runtime
npm install && npm run build
# 信任项目后,Codex 会读取 `.codex/config.toml` 并启动 Runtime MCP# 克隆并构建
git clone https://github.com/d8dzmf5mfn/runtime.git
cd runtime
npm install && npm run build
# 添加 MCP 服务器
claude mcp add --transport stdio runtime --scope project -- \
node packages/mcp-server/dist/index.js如果只使用 MCP 工具,可复用 .mcp.json(Claude Code)或 .codex/config.toml(Codex)。两者都要求先构建 packages/mcp-server/dist/index.js。
Runtime 通过 Model Context Protocol (MCP) 将核心能力暴露给 AI 客户端(Codex、Claude Code、Cursor 等),让 AI 工具直接调用 Runtime 的服务。
项目级配置位于 .codex/config.toml(Codex 仅在信任项目后加载):
[mcp_servers.runtime]
command = "node"
args = ["packages/mcp-server/dist/index.js"]
cwd = "."
required = true{
"mcpServers": {
"runtime": {
"command": "node",
"args": ["${CLAUDE_PROJECT_DIR}/packages/mcp-server/dist/index.js"],
"env": { "VSCODE_WORKSPACE_ROOT": "${CLAUDE_PROJECT_DIR}" }
}
}
}或用 CLI 命令添加:
claude mcp add --transport stdio runtime --scope project -- \
node packages/mcp-server/dist/index.js| 工具 | 功能 | 类别 |
|---|---|---|
vibe_session_info |
查看当前 AI 会话信息 | 会话 |
vibe_session_list |
列出所有活跃会话 | 会话 |
vibe_lock_acquire |
获取文件独占锁(sessionId 可选) | 文件锁 |
vibe_lock_release |
释放文件锁 | 文件锁 |
vibe_lock_list |
查看所有活跃锁 | 文件锁 |
context_select |
分析关联文件 & 排名 | 上下文 |
context_build_prompt |
生成优化 prompt + 规则 | 上下文 |
context_estimate_tokens |
估算 Token 消耗 | 上下文 |
sop_match |
匹配 SOP 编码策略 | 策略 |
项目自带 runtime-mcp skill,安装后 Codex 会自动学会何时调用各工具:
.codex/skills/
├── SKILL.md ← 工具使用指南
├── agents/openai.yaml ← UI 元数据
├── scripts/init-runtime.sh ← 初始化脚本
└── references/sop-dsl.md ← SOP DSL 语法参考
| 命令 | 说明 |
|---|---|
runtime vibe session-start -a <agent> -b <branch> |
启动新 AI 会话,自动创建 worktree |
runtime vibe session-list |
列出所有活跃会话 |
runtime vibe session-stop <id> |
停止并合并会话 |
| 命令 | 说明 |
|---|---|
runtime vibe lock-acquire <file> -s <session> |
获取文件独占锁 |
runtime vibe lock-release <file> |
释放文件锁 |
runtime vibe lock-list |
查看所有文件锁 |
| 命令 | 说明 |
|---|---|
runtime context select <file> |
分析关联文件 & 排名 |
runtime context budget <files...> |
估算 Token 消耗 |
runtime context sop-init |
初始化 .sop-graph/ |
runtime context sop-add <domain> |
添加策略域 |
runtime context sop-list |
列出策略域 |
runtime context prompt <file> |
生成优化 prompt |
| 命令 | 说明 |
|---|---|
runtime status |
系统全景:会话 + 锁 + SOP 域 |
# Agent A 锁定核心文件
runtime vibe lock-acquire src/api/auth.ts -s <session-id-A>
# Agent B 尝试锁定同一文件 — 冲突检测!
runtime vibe lock-acquire src/api/auth.ts -s <session-id-B>
# → Error: File is locked by session <session-id-A>
# 各自获取优化上下文
runtime context prompt src/api/auth.ts -s <session-id-A>
runtime context prompt src/components/button.tsx -s <session-id-B># 编辑前锁定文件
→ vibe_lock_acquire(src/api/auth.ts, session-1)
# 获取相关文件上下文
→ context_select(src/api/auth.ts)
# 检查适用编码策略
→ sop_match(src/api/auth.ts)
# 编辑完成后释放锁
→ vibe_lock_release(src/api/auth.ts)
# .sop-graph/rules.yaml
version: "1.0"
domains:
- domain: payment
rules:
- action: forbid
target: "hard-delete"
reason: "Always use soft-delete"
- action: require
target: "stripe-idempotency"
reason: "Prevent duplicate charges"
- domain: api
rules:
- action: enforce
target: "input-validation"
pattern: "zod|joi|yup"
reason: "All API inputs must be validated"npm install
npm run build
npm test # 41 个测试用例(含插件回归与独立 MCP 启动验证)packages/
├── shared/ # 共享类型
├── vibe-sync/ # VibeSync 核心
├── context-pruner/ # ContextPruner 核心
├── cli/ # CLI 入口
├── mcp-server/ # MCP Server(9 个工具)
└── vscode-extension/ # VS Code Extension(MCP 集成)
- Runtime: Node.js 22+ / TypeScript 5
- Storage: JSON file-based
- CLI: Commander.js + Chalk + Ora
- MCP: @modelcontextprotocol/sdk
- Test: Vitest
- 会话管理 + worktree 隔离
- 文件锁 + 冲突检测
- 文件关联评分引擎
- Token 预算管理
- SOP 策略 DSL
- Prompt 组装
- GitHub Actions CI
- MCP Server + Codex 插件
- Codex Skill(使用指南)
- Claude Code 适配 (.mcp.json)
- VS Code 扩展
- SQLite 持久化
- 可视化 Dashboard
在 Linear 查看完整的 EPIC/Task 分解。