面向开源与企业研发团队的可审计仓库自治维护 AgentTeam
将 GitHub Issue 与失败 CI 安全推进到携带可验证执行证明的 Pull Request, 并完整保留 Agent、Skill、工具、审批、回滚点与经验证据。
| 5 不同职能 Agent |
11 Streamable HTTP MCP 工具 |
27/27 控制面可靠性测试 |
0 未审批自动合并 |
RepoPilot 建立在 AgentTeams
v1.2.2之上,面向 GOAI「新智基座 · Agent Infra」赛道设计。默认策略为pull_request_only:Agent 可以创建分支、提交和 Pull Request,但不能自动合并、 删除分支、修改权限或密钥。
在线 Demo 无需模型服务或管理员账号。默认回放
repopilot-testbed#3的真实交付:失败基线稳定复现并发竞态,RepoPilot 通过Types + Store + Processor + Tests + Docs五文件补丁修复,GitHub Actions 通过后创建PR #4。 PR 保持开放,合并权仍由人类持有。
GitHub Issue / Failed CI
│
▼
Repo Lead 分诊与拆解
│
▼
Locator 根因定位 ──► Fixer 最小修复 ──► Verifier 独立验证
│
人工审批 ◄── 高风险门禁 ◄─────┤
│
▼
Archivist 沉淀 Runbook
每个关键阶段都会把决策、工具调用、Git 引用、CI 结果和审批事件写入 PostgreSQL 追加式 SHA-256 证据链,并通过 OpenTelemetry Trace 与证据控制台支持回放。
RepoPilot 的差异化不只是“自动生成 PR”,而是让每个 PR 携带一份机器可核验的 Proof Bundle:
Run 身份 + AgentTeams Step 时间线 + Skill 版本
+ 工具与决策 Evidence + Git / CI 引用
+ 审批历史 + SHA-256 链根 + 确定性质量门禁
curl http://127.0.0.1:3000/api/v1/runs/<run-id>/proof \
--output artifacts/proof-bundle.json
pnpm build
pnpm evaluate artifacts/proof-bundle.json artifacts/evaluation-report.jsonProof Score 衡量证明完整性,不把控制面测试冒充模型修复质量;补丁正确性仍由公开 测试床、独立 Verifier 与 GitHub Checks 判定。
完成 Runbook 归档后,Archivist 调用 repopilot_publish_proof_comment,将脱敏后的
评分、Agent/Skill 执行结果和 SHA-256 链根幂等发布到对应 PR。重复执行会更新同一条
评论,因此 Proof 真正随 PR 交付,而不是只存在于控制面 API。
| 问题 | RepoPilot 的处理方式 | 可验证证据 |
|---|---|---|
| Issue 分诊依赖人工 | Repo Lead 统一分类、风险判断和 DAG 拆解 | 任务计划、Matrix 事件、Run 状态 |
| 自动修复容易直接猜答案 | Locator 与 Fixer 职责分离,先复现和证明根因 | 复现命令、代码位置、影响面、补丁 |
| 修复者自行验证存在偏差 | Verifier 独立运行 before/after 测试与 GitHub Checks | 测试结果、Check Runs、残余风险 |
| 高风险动作缺少控制 | 合并等动作要求带版本号的一次性人工审批 | 审批人、意见、版本、消费时间 |
| 经验无法复用 | Archivist 查重、脱敏并写入 Runbook | 来源 Run、证据链、检索结果 |
| Agent | 职责 | 自主边界 |
|---|---|---|
| Repo Lead | 分诊、风险判断、DAG 拆解、任务委派 | 不修改代码;高风险动作必须发起审批 |
| Locator | 复现、代码/符号定位、影响面分析 | 仅读取和实验,不修改仓库 |
| Fixer | 最小补丁、回归测试、分支、提交、PR | 停在 Pull Request,不合并、不强推 |
| Verifier | 独立复现、测试、CI 和残余风险验证 | 不修改补丁,不把绿灯视为合并授权 |
| Archivist | Runbook 查重、脱敏、结构化和沉淀 | 不修改仓库或 GitHub 状态 |
Agent Identity 完整定义位于
deploy/agentteams/repopilot-team.yaml,
Skill 契约位于 skills/。
AgentTeams 原生协作
使用官方
agentteams.io/v1beta1 Worker/Team CRD、Team Leader、
Matrix 房间、共享任务状态与 MinIO 工作区,而不是自建多 Agent 模拟器。
Skill 与 MCP 工程化
提供 5 个 Apache-2.0 自定义 Skill 与统一版本化 Manifest;控制面暴露 11 个 Streamable HTTP MCP 工具,覆盖 Agent Step、Evidence、审批、Runbook、Issue、PR、 Checks、PR Proof Comment 和受控合并。
不可变执行证据
Evidence 使用 canonical JSON 与 SHA-256 哈希链;数据库触发器拒绝更新和删除。 控制台会重新验证完整链路并展示
CHAIN VERIFIED。
生产级安全边界
包含 GitHub 仓库 allowlist、Webhook HMAC 验签、delivery 并发幂等、显式状态机、 审批乐观锁和审批一次性消费。
RAG 与可观测
PostgreSQL 提供 Runbook 全文检索并预留 pgvector;可选接入阿里云官方
alibabacloud-agentloop-experience Skill。OpenTelemetry 通过 OTLP
输出 HTTP、Agent Skill、MCP 与端到端 Run Trace 和 Metrics。
flowchart LR
GH[GitHub Issue / Failed CI] --> CP[RepoPilot Control Plane]
CP --> DB[(PostgreSQL + pgvector)]
CP --> MX[Matrix Admin → Manager DM]
MX --> M[AgentTeams Manager]
M --> TL[Repo Lead]
TL --> L[Locator]
TL --> F[Fixer]
TL --> V[Verifier]
TL --> A[Archivist]
L & F & V & A --> MCP[RepoPilot MCP via Higress]
MCP --> GHAPI[GitHub REST API]
MCP --> DB
DB --> UI[Evidence Console]
CP --> OTEL[OTLP / AgentLoop / LoongSuite]
更多设计细节见 docs/architecture.md。
RepoPilot/
├── apps/
│ ├── control-plane/ # Fastify REST / Webhook / MCP / 审批 / 证据账本
│ └── console/ # 飞行记录器风格 React 证据控制台
├── packages/contracts/ # Zod Schema、共享类型和显式状态机
├── deploy/agentteams/ # AgentTeams v1.2.2 Worker / Team 清单
├── skills/ # 5 个可复用 RepoPilot Skills
├── evaluation/ # Proof Bundle 协议与复赛 Benchmark
├── scripts/ # Skill 校验、可靠性基线与离线评测
├── competition/ # 初赛简介、评审映射和提交清单
├── docs/ # 架构、安全、部署和 Demo 文档
├── API.md # REST / Webhook / MCP 出入参
├── Method.md # 外部 SDK、HTTP Method 与调用契约
└── docker-compose.yml # PostgreSQL 16 + pgvector
- Node.js
20+ - pnpm
9+ - Docker Desktop / Docker Engine
模型凭证不是构建、测试或本地控制面运行的前置条件。
git clone https://github.com/wellkilo/RepoPilot.git
cd RepoPilot
cp .env.example .env
docker compose up -d postgres
pnpm install --registry=https://registry.npmjs.org
pnpm build
pnpm --filter @repopilot/control-plane start访问控制台:
http://127.0.0.1:3000
也可以使用一键初始化:
./init.shcurl -X POST http://127.0.0.1:3000/api/v1/runs \
-H 'Content-Type: application/json' \
-d '{
"source": {
"type": "github_issue",
"repository": "wellkilo/repopilot-testbed",
"issueNumber": 1
},
"executionPolicy": "pull_request_only"
}'需要读取 GitHub Issue 时,在本机 .env 配置 GITHUB_TOKEN。如果没有配置
AgentTeams Matrix,Run 会停在 awaiting_dispatch,不会用 Mock Agent 伪造执行结果。
真实五 Agent 推理需要一个 OpenAI 兼容模型端点,可以使用:
- 阿里云百炼等托管服务;
- 其他 OpenAI 兼容 API;
- 本地 Ollama 等兼容端点。
模型密钥只交给 AgentTeams/Higress,不进入 RepoPilot 源码、数据库或部署清单。
部署说明:
测试床包含一个确定性并发缺陷:相同 GitHub delivery 的两个请求可同时穿透
find / save 窗口,创建两个 task 并执行两次 dispatch。RepoPilot 将
create-or-reuse 收口到 DeliveryTaskStore.getOrCreate,使相同 delivery
共享一个 in-flight Promise,并补充顺序重试和不同 delivery 的负对照。
PR 保持开放,便于审查且未触发自动合并。
pnpm typecheck
pnpm benchmark:reliability
pnpm skills:validate
pnpm lint
pnpm format:check
pnpm build当前控制面可靠性基线为 27/27。测试覆盖状态机、Webhook 验签、证据哈希、数据库
不可变触发器、delivery 并发幂等、审批版本与一次性消费、Agent Skill Step 生命周期、
Proof Bundle 评分、HTTP 冲突语义及控制台标签。CI 生成结构化 JSON 报告。
| 默认允许 | 必须人工审批 |
|---|---|
| 读取 Issue / CI、创建分支与提交、推送非保护分支、创建 Pull Request、读取 Checks、 记录 evidence | 合并 Pull Request、删除分支、破坏性回滚、修改权限、修改密钥、执行其他高风险工具 |
详细威胁模型与生产加固项见 docs/security.md。
| 文档 | 内容 |
|---|---|
API.md |
REST、Webhook 和 MCP Schema |
Method.md |
AgentTeams、Matrix、GitHub、PostgreSQL 和 OTel 方法契约 |
docs/architecture.md |
架构、状态机和部署剖面 |
docs/security.md |
权限、审批、凭证和 evidence 完整性 |
docs/deployment.md |
本地、AgentTeams、Webhook 和可观测部署 |
docs/demo.md |
比赛 Demo 流程与失败分支 |
evaluation/README.md |
评测分层、Proof Bundle 和复赛 Benchmark |
docs/semifinal-readiness.md |
复赛要求、评分差距和工程优先级 |
competition/ |
初赛简介、评审映射和提交清单 |
- 未配置模型服务时,不能完成真实 AgentTeams 推理;构建、测试、控制面和测试床不受影响。
- Runbook 默认使用 PostgreSQL 全文检索;
vector(1536)已为语义召回预留。 - AgentLoop Recall 是可选能力,没有凭证时自动降级到本地 Runbook。
- 控制台审批身份当前通过受信反向代理 Header 演示;生产环境必须接入 OIDC/SSO。
RepoPilot · Make repository automation observable, reviewable and reversible.
Apache-2.0