agent-fleet/openspec/changes/agent-fleet-platform/tasks.md
Zer4tul aabd52ed52 init: OpenSpec project scaffolding with proposal, design, specs, tasks
- 7 capabilities: agent-registry, task-router, receipt-protocol,
  forgejo-integration, matrix-chatops, agent-adapter, orchestrator-core
- Tech stack: Rust + axum + zigbuild (single binary)
- Forgejo as task source of truth
- Matrix as real-time ChatOps layer
- Adapter pattern for multi-agent type support
2026-05-11 14:37:43 +08:00

4.7 KiB
Raw Blame History

1. 项目脚手架与基础设施

  • 1.1 初始化 Node.js 项目package.json、tsconfig.json、ESLint、Vitest
  • 1.2 搭建项目目录结构src/core、src/adapters、src/integrations、src/api
  • 1.3 部署 Forgejo 实例WSL2 或 Docker创建初始 repo 和 webhook token
  • 1.4 配置 Matrix bot 账号(复用现有 @jeeves:0x08.org 或新建专用 bot
  • 1.5 编写 config.toml schema 和示例配置文件

2. Orchestrator Core

  • 2.1 实现数据模型Agent、Task、Receipt、Artifact、TaskEvent 类型定义
  • 2.2 实现 Event StoreSQLite append-only event log写入和查询接口
  • 2.3 实现 Task 状态机created → assigned → running → completed/failed/agent_lost/cancelled
  • 2.4 实现全局任务队列:按优先级排序,支持入队/出队/重新入队
  • 2.5 实现任务超时检测:定时扫描 running 任务,超时标记为 failed
  • 2.6 实现重试策略:可配置 max_retries + 退避间隔,自动重试 transient failure
  • 2.7 编写 Orchestrator Core 单元测试

3. Agent Registry

  • 3.1 实现 POST /api/v1/agents/registerAgent 注册,支持重复注册更新
  • 3.2 实现 POST /api/v1/agents/heartbeat:心跳更新,记录 last_heartbeat_at
  • 3.3 实现 POST /api/v1/agents/deregister:注销,重新入队该 Agent 的 running 任务
  • 3.4 实现 GET /api/v1/agents:查询 Agent 列表,支持 capability 和 status 过滤
  • 3.5 实现心跳超时检测后台定时扫描3 次超时标记 offline触发 agent_lost
  • 3.6 编写 Agent Registry 单元测试

4. Forgejo Integration

  • 4.1 实现 Forgejo API clientIssue CRUD、Comment、Label、PR、Webhook 验证
  • 4.2 实现 POST /api/v1/webhooks/forgejo:接收 Forgejo webhook验证签名解析事件
  • 4.3 实现 Issue → Task 转换:解析 label 推断 type/priority创建 Task 对象
  • 4.4 实现 Task 状态 → Issue label 同步status:todo/doing/doneassignee 更新
  • 4.5 实现 Receipt → Issue comment 回写:结构化 commentemoji + summary + artifact links
  • 4.6 实现 Reconciliation对账定期轮询 Forgejo Issue弥补 webhook 丢失
  • 4.7 编写 Forgejo Integration 单元测试和集成测试

5. Matrix ChatOps

  • 5.1 实现 Matrix bot 连接:使用 matrix-bot-sdk连接 0x08.org homeserver
  • 5.2 实现 /fleet status slash command展示所有 Agent 状态
  • 5.3 实现 /assign <agent> <issue> slash command手动分配任务
  • 5.4 实现 /retry <issue> slash command重新入队失败任务
  • 5.5 实现通知推送task assigned、completed、failed、agent offline 等事件推送到协同房间
  • 5.6 实现 per-agent thread每个 Agent 的执行日志发到独立 thread/topic
  • 5.7 编写 Matrix ChatOps 单元测试

6. Receipt Protocol

  • 6.1 实现 POST /api/v1/receipts:接收 Agent 提交的 receipt
  • 6.2 实现 receipt validation验证 PR 是否存在Forgejo API 查询、commit 是否包含修改
  • 6.3 实现 no-trust 检查:任务只在 receipt 验证通过后才变更为 completed
  • 6.4 编写 Receipt Protocol 单元测试

7. Agent Adapter Interface

  • 7.1 定义 adapter interface TypeScript 类型register/heartbeat/execute/submit_receipt/deregister
  • 7.2 实现 adapter 配置加载:从 config.toml 读取各 Agent 实例的 adapter 类型和参数
  • 7.3 实现 adapter health checkCLI 检查、API 可达性检查
  • 7.4 实现 adapter runner管理 adapter 生命周期(启动、心跳、停止)

8. Claude Code Adapter第一个具体实现

  • 8.1 实现 Claude Code adapterspawn claude -p --output-format json,注入 task prompt
  • 8.2 解析 Claude Code JSON 输出为 receipt提取 PR、文件修改、summary
  • 8.3 实现 workspace 管理:为每个任务创建/复用 git worktree
  • 8.4 编写 Claude Code adapter 集成测试

9. Codex CLI Adapter第二个具体实现

  • 9.1 实现 Codex adapterspawn codex exec --json,注入 task prompt
  • 9.2 解析 Codex JSON 输出为 receipt
  • 9.3 实现 Codex session resume可选
  • 9.4 编写 Codex adapter 集成测试

10. 端到端验证

  • 10.1 部署完整系统Forgejo + Orchestrator + Matrix bot + 1 个 Claude Code Agent
  • 10.2 端到端测试:创建 Issue → webhook → 任务创建 → Agent 分配 → 执行 → Receipt → Issue comment → Matrix 通知
  • 10.3 端到端测试Agent 离线 → 心跳超时 → 任务 agent_lost → 重新入队
  • 10.4 端到端测试:任务超时 → 自动 failed → Matrix 通知
  • 10.5 编写运维文档:部署、配置、排障