内容
# 裁判
适用于与AI编码代理一起构建的团队的共享上下文。
实时:[reinshq.vercel.app](https://reinshq.vercel.app) · 安装钩子:`npx reins-hook install`
## 它是什么
当团队使用AI代理编码时,每个人的代理都独立工作。没有人可以轻松地看到队友的代理正在做什么,因此人们会重复工作,在不知道的情况下编辑相同的文件,并依赖临时会议和一天内就会过时的`context.md`。
Reins监控每个代理正在做什么,将其总结成简短的个人和团队状态,并使该状态在两个地方可用:管理员可以阅读的仪表盘和任何队友的代理可以查询的MCP服务器。
这是一个小型项目,为0G Zero Cup而建。捕获、提炼和检索今天都已实现。
## 它是如何工作的
```
Claude Code 钩子 -> reins 服务器 -> 提炼(分类、提取、协调、汇总)
|
|-- 仪表盘(Next.js,通过SSE实时更新)
|-- MCP服务器(reins_context,reins_pull_context,...)
```
每个队友的Claude Code中的钩子都会将他们的提示和代理回合发布到reins服务器。服务器会将每个事件通过一个短管道,并保持每个个人和项目当前的状态。仪表盘通过SSE流式传输更新,MCP服务器允许任何代理以纯markdown格式拉取相同状态。
## 提炼管道
每个传入事件都会经过几个步骤处理,以便尽早消除大部分噪音:
1. **分类** (快速模型)将事件分为噪音、次要或主要。低价值事件在此停止。
2. **提取** 拉取结构化事实:意图、操作、触摸文件、决策、阻塞、后续步骤。
3. **协调** 通过调用更新状态的工具将这些事实合并到个人的当前状态:`set_headline`、`set_goal`、`set_status`、`add_timeline`、`add_pending`、`resolve_pending`、`set_working_on`。
4. **汇总** (防抖)为领导者总结整个团队:简短状态、目标对齐、冲突(两个人在同一个文件中)和风险。
如果没有配置推理后端,Reins仍然会捕获原始事件,但不会提炼它们。
## 0G 的位置
- **推理在 0G Compute 上运行。** 上述整个管道调用 0G Private Computer 路由器,它与 OpenAI 兼容。
- **快照存储在 0G Storage 上。** 每个上下文快照都写入 0G Storage,并通过其 Merkle 根哈希寻址,因此共享上下文可以从任何地方(不仅限于此服务器的数据库)拉取和验证。MCP `reins_pull_context` 工具仅使用哈希重建快照,无需本地状态,这是普通数据库无法实现的。
## 今天有效的内容
该管道围绕使用编码代理的团队构建。当前有效的内容是:
- 通过一个钩子核心捕获多个编码代理:Claude Code,以及适用于 Codex、OpenCode 和 Aider 的适配器,以及适用于可以通过 shell 命令运行的任何代理的通用适配器。每个事件都归因于产生它的代理,因此使用混合工具的团队共享一个上下文。
- 在 0G Compute 上提炼:分类、提取、协调和防抖团队汇总。
- 每个人的当前状态(标题、目标、工作内容、最近时间线、待处理项)。
- 团队汇总,供领导者参考:摘要、目标对齐、文件冲突和风险。
- 自动创建的交接和@提及,当两个代理触摸同一个文件或一个代理被另一个代理的工作阻塞时。
- 通过 SSE 实现实时仪表盘,通过 MCP 服务器,任何队友的代理都可以读取或写入共享上下文。
- 自动代理监视可抢占的工作并通过 MCP 和 HTTP 编写路径认领和解决它,因此无需人员输入即可拾取项目。
- 智能检索:MCP 上下文工具可以作用于成员或查询,并修剪到令牌预算,以便代理仅拉取与其任务相关的内容。
- 0G Storage 上的可验证、可移植的快照,包括 `reins_pull_context` 从哈希重建上下文,以及跨实例同步(`reins_sync_push` / `reins_sync_pull`),因此两个实例通过传递单个根哈希共享上下文,无需共享服务器。
- 0G Chain上的可选锚定:每个快照根哈希都可以作为防篡改、公开审计的交易提交。
- 可选的Slack和Discord摘要,供希望浏览的管理员使用。
- 仪表盘上的管理员令牌管理(列表和撤销),以及多租户身份验证(工作区和令牌)。
## 路线图
- 更多代理适配器。目前已有适用于Claude Code、Codex、OpenCode和Aider的适配器;pi、Hermes和Koda通过通用适配器和MCP注释路径连接,目前将获得一流适配器。
- 无需人工干预的子代理。目前,自动代理认领和解决工作;下一步是捕获来自父代理分出的子代理的内容,以便在深度循环中更新上下文。
- 基于嵌入的检索。目前,通过词汇重叠对作用域进行排名;使用嵌入进行语义召回。
- 更丰富的链上来源。目前,锚定写入见证交易;一个小合约可以索引工作区快照哈希的完整历史。
## 快速入门
```bash
npm run install:all
# 1) 配置推理(在 0G Compute 上运行,通过 0G Private Computer 路由器)
cp server/.env.example server/.env
# 设置 REINS_LLM_PROVIDER=0g-router, OG_ROUTER_API_KEY, REINS_LLM_MODEL, OG_STORAGE=on
# (或使用 REINS_LLM_PROVIDER=openai 和 REINS_LLM_BASE_URL 来代替任何 OpenAI 兼容的端点)
# 2) 运行服务器 + 仪表盘
npm run dev
# 服务器 在 http://localhost:4319
# 仪表盘 在 http://localhost:4320
# 3) 可选:填充演示板,无需连接代理
npm run seed
```
## 连接代理
一个命令将捕获钩子安装到Claude Code中:
```bash
npx reins-hook install --url http://localhost:4319 --me yourname
# 然后在Claude Code中运行 /hooks 以批准它
```
现在,每个提示和代理回合都会流入Reins。有关标志(`--global`、`--project`、`--key`)以及`status`和`uninstall`命令,请参见[`hooks/README.md`](hooks/README.md)。
## 从代理拉取上下文(MCP)
注册MCP服务器,以便队友的代理可以读取共享上下文:
```json
{ "mcpServers": { "reins": { "command": "npx", "args": ["tsx", "server/src/mcp.ts"], "cwd": "/ABS/PATH/reins" } } }
```
工具:
- `reins_context` 读取项目的当前状态,从 0G Storage 获取并验证。
- `reins_pull_context` 仅使用 0G Storage 根哈希重建快照,无需数据库。
- `reins_projects`、`reins_member`、`reins_pending`、`reins_handoffs` 用于较窄的读取。
- `reins_note`、`reins_claim`、`reins_resolve`、`reins_handoff_ack` 让代理写回。
## 布局
| 路径 | 内容 |
|------|------|
| `server/` | Express 捕获、SSE、REST、SQLite、提炼管道、MCP 服务器 |
| `web/` | Next.js 仪表盘、浅编辑主题、通过 SSE 实现实时更新 |
| `cli/` | `reins-hook`、`npx` 安装程序,捆绑捕获钩子 |
| `hooks/` | 钩子文档(钩子本身位于 `cli/`) |
| `deploy/` | [`DEPLOY.md`](deploy/DEPLOY.md) 和部署脚本 |
## 身份验证和部署
本地开发作为单个开放实例运行(`REINS_AUTH=off`)。对于共享实例,启用多租户身份验证:工作区是租户边界,摄取令牌验证钩子和代理,访问令牌验证仪表盘查看者(httpOnly 会话cookie),管理员令牌颁发或撤销令牌。使用 `npm run admin -- create-workspace "Team"` 进行初始化。
仪表盘部署到 Vercel,服务器及其 SQLite 数据库部署到小型 VM。仪表盘代理 `/api/*` 到后端,以便浏览器保持第一方。参见 [`deploy/DEPLOY.md`](deploy/DEPLOY.md)。
## 配置
所有服务器配置都是环境变量(`server/.env`,参见 `server/.env.example`)。推理在 0G Compute 上运行(`REINS_LLM_PROVIDER=0g-router` 搭配 `OG_ROUTER_API_KEY`),快照存储在 0G Storage 上(`OG_STORAGE=on`)。要使用不同的推理后端,请设置 `REINS_LLM_PROVIDER=openai` 搭配 `REINS_LLM_BASE_URL` 和任何 OpenAI 兼容的端点。