DB编码器
自主AI编码代理 --持续扫描代码库,计划改进,自动执行和审查代码更改。
______________________________________________________________________
概述
DB Coder是一个完全自主的AI编码系统,通过 大脑决定→ \[分析M/L/XL\]→ 工人执行→ 硬验证→ 代码审查→ 大脑决策→ 反映 循环。它使用只读的“大脑”会话进行决策,使用基于RuntimeAdapter的worker进行执行,并使用自动选择的交叉审阅者进行质量门控。每个阶段都可以通过以下方式独立选择其运行时间和模型 routing 配置。
核心能力
- 自主巡逻 --全脑决定→ \[分析M/L/XL\]→ 工人执行→ 硬验证→ 代码审查→ 大脑决策→ 反映循环,通过Web UI启动/停止
- 多运行时架构 --RuntimeAdapter接口,具有可插拔实现(ClaudeSdkRuntime、CodexSdkRuntime、CodexCliRuntime);每个阶段都可以通过以下方式独立配置
routing - 大脑驱动的决策 --大脑输出自由形式
directive直接发送给工人(无需模板重组)resource_request对于预算/超时,verification_plan,以及strategy_note - 硬验证 --TypeScript错误计数与基线比较可防止合并降级代码
- 自然进化 --大脑通过写课来反思(经验);CLAUDE.md由单独的周期性维护
claudeMdMaintenance阶段,无数字评分 - Web用户界面 --实时任务监控、日志流、成本跟踪、巡逻控制
- Git安全 --所有更改均已隔离
db-coder/*分支,在合并到main之前进行验证
建筑
┌──────────────────────────────────────────────────────────────┐
│ MainLoop Orchestrator │
│ brainDecide → [analyze M/L/XL] → workerExecute → hardVerify │
│ → codeReview → brainReviewDecision → [fix loop] → merge │
├──────────────────────────────────────────────────────────────┤
│ RuntimeAdapter Layer │
│ ┌─────────────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ ClaudeSdkRuntime │ │ CodexSdkRuntime│ │ CodexCliRuntime │ │
│ │ (Agent SDK) │ │ (@openai/codex)│ │ (codex exec) │ │
│ └─────────────────┘ └───────────────┘ └──────────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ Phase Routing (routing config) │
│ brain / plan / execute / review / reflect / scan │
│ Each phase → independent runtime + model selection │
├──────────────────────────────────────────────────────────────┤
│ CLAUDE.md + claude-mem TaskStore (PostgreSQL) │
│ (rules / experience) (tasks / logs / costs) │
├──────────────────────────────────────────────────────────────┤
│ HTTP Server (:18801) │
│ REST API + Web SPA + SSE Streaming │
└──────────────────────────────────────────────────────────────┘项目结构
src/
├── index.ts # CLI entry (commander)
├── core/
│ ├── MainLoop.ts # Orchestration loop
│ ├── phases/ # BrainPhase, WorkerPhase, ReviewPhase, MaintenancePhase
│ ├── PersonaLoader.ts # Persona loading + worker prompt building
│ ├── CycleEventBus.ts # Typed event bus for cycle lifecycle
│ ├── ModeManager.ts # PatrolManager (patrol start/stop)
│ ├── TaskQueue.ts # Task queue from DB
│ ├── guards/ # BudgetGuard, ConcurrencyGuard, EmptyDiffGuard, etc.
│ ├── observers/ # CycleMetricsCollector, NotificationObserver, etc.
│ └── strategies/ # DynamicPriority, FailureLearning, TaskQuality
├── runtime/
│ ├── RuntimeAdapter.ts # Interface + capabilities + RunOptions / RunResult
│ ├── ClaudeSdkRuntime.ts # Claude Code Agent SDK wrapper
│ ├── CodexSdkRuntime.ts # @openai/codex-sdk Thread API wrapper
│ ├── CodexCliRuntime.ts # Codex CLI subprocess wrapper
│ └── runtimeFactory.ts # Config → runtime instance registry
├── bridges/
│ ├── ClaudeCodeSession.ts # Claude Code Agent SDK query() wrapper
│ ├── sdkMessageCollector.ts # SDK stream event collection + error synthesis
│ ├── buildSdkOptions.ts # SDK options builder
│ ├── hooks.ts # Programmatic PreToolUse/PostToolUse hooks
│ ├── pluginDiscovery.ts # Auto-discover plugins from ~/.claude/plugins/cache
│ ├── ReviewTypes.ts # ReviewResult / ReviewIssue interfaces
│ └── CodexBridge.ts # Codex CLI subprocess (used by CodexCliRuntime)
├── memory/
│ ├── TaskStore.ts # PostgreSQL: tasks / logs / costs / plans / personas
│ ├── GlobalMemory.ts # PostgreSQL: global memory (legacy, phasing out)
│ └── ProjectMemory.ts # claude-mem HTTP client
├── server/
│ ├── Server.ts # HTTP server (API + static files + security headers)
│ ├── routes.ts # REST API routes
│ └── rateLimit.ts # Rate limiting
├── config/
│ ├── Config.ts # Config loading (global + project-level)
│ └── types.ts # Config types (PhaseRouting, RoutingConfig, etc.)
├── utils/ # Git, cost tracking, process, logging, validation, etc.
└── web/ # SPA frontend (HTML/CSS/JS + marked.js)快速开始
先决条件
- Node.js>=22
- PostgreSQL(通过Docker推荐)
- 克劳德代码CLI (全球安装)
- Codex 命令行界面 (可选,用于跨模型审查)
安装
# Clone repository
git clone https://github.com/freshman-db/DB-Coder.git
cd DB-Coder
# Install dependencies
npm install
# Start PostgreSQL (Docker)
docker run -d --name dev-postgres \
-e POSTGRES_USER=db -e POSTGRES_PASSWORD=db -e POSTGRES_DB=db_coder \
-p 5432:5432 postgres:16
# Enable pg_trgm extension
docker exec -i dev-postgres psql -U db -d db_coder -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
# Build
npm run build配置
全局配置: ~/.db-coder/config.json
{
"routing": {
"brain": { "runtime": "claude-sdk", "model": "claude-opus-4-6" },
"plan": { "runtime": "claude-sdk", "model": "claude-opus-4-6" },
"execute": { "runtime": "claude-sdk", "model": "claude-opus-4-6" },
"review": { "runtime": "codex-cli", "model": "gpt-5.3-codex" },
"reflect": { "runtime": "claude-sdk", "model": "claude-opus-4-6" },
"scan": { "runtime": "claude-sdk", "model": "claude-opus-4-6" }
},
"claude": { "maxTaskBudget": 10.0, "maxTurns": 200 },
"codex": { "tokenPricing": { "inputPerMillion": 1.75, "cachedInputPerMillion": 0.175, "outputPerMillion": 14 } },
"budget": { "maxPerTask": 20.0, "maxPerDay": 300.0 },
"memory": {
"pgConnectionString": "postgresql://db:db@localhost:5432/db_coder"
},
"server": { "port": 18801, "host": "127.0.0.1" }
}运行时别名: "claude" 正常化为 "claude-sdk", "codex" 到 "codex-sdk" (使用CLI回退)。
项目级覆盖: /.db-coder.json
开始
# Run as service (relative paths are resolved automatically)
node dist/index.js serve --project .
# Or with absolute path
db-coder serve --project /path/to/your/project
# Production: use the supervisor script for auto-restart
nohup bash supervisor.sh > logs/nohup.out 2>&1 &打开 http://127.0.0.1:18801 在浏览器中。API令牌显示在启动日志中,或在中找到 ~/.db-coder/config.json.
命令行命令
db-coder serve -p
# Start service
db-coder status # Show status
db-coder add "description" # Add a task
db-coder queue # Show task queue
db-coder scan [--deep] # Trigger scan
db-coder logs -f # Follow logs
db-coder cost # Show costs
db-coder pause / resume # Pause / ResumeWeb用户界面
- 仪表盘 --系统状态、巡逻控制、快速行动
- 巡逻 --通过顶栏按钮启动/停止;实时状态显示(扫描、执行、查看等)
- 任务清单 --使用分页查看、筛选和管理任务
- 日志 --带级别过滤的实时SSE日志流
- 设置 --项目信息、系统状态、成本跟踪
API
服务器运行在 http://127.0.0.1:18801。所有API都需要承载令牌身份验证。
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /api/status | 服务状态 |
| 得到 | /api/status/stream | SSE实时状态 |
| 得到 | /api/metrics | 运营指标 |
| 获取/发布 | /api/tasks | 列出/创建任务 |
| 得到 | /api/tasks/:id | 任务详细信息 |
| 得到 | /api/tasks/pending-review | 待审核任务 |
| 职位 | /api/tasks/:id/approve | 批准任务 |
| 职位 | /api/tasks/:id/skip | 跳过任务 |
| 职位 | /api/control/pause | 暂停循环 |
| 职位 | /api/control/resume | 恢复循环 |
| 职位 | /api/control/scan | 触发扫描 |
| 职位 | /api/patrol/start | 开始巡逻 |
| 职位 | /api/patrol/stop | 停止巡逻 |
| 得到 | /api/logs?follow=true | SSE日志流 |
| 得到 | /api/cost | 成本明细 |
| 得到 | /api/cycle/metrics | 循环性能指标 |
| 得到 | /api/cycle/entries | 循环历史记录条目 |
| 得到 | /api/personas | 列出人物角色 |
| PUT | /api/personas/:name | 更新角色内容 |
| 得到 | /api/plans | 列出计划草案 |
| 职位 | /api/plans/:id/approve | 批准计划 |
| 职位 | /api/plans/:id/reject | 拒绝计划 |
运作原理
脑驱动+运行时适配器模式
编排器(MainLoop)驱动大脑会话、基于RuntimeAdapter的工作器和跨运行时审阅器。每个阶段通过以下方式选择其运行时间和模型 routing 配置。
- 大脑决策 (只读)——Brain使用自己的工具自由探索代码库,输出结构化的
directive(工人的自由形式指令),resource_request(预算/超时),verification_plan,以及strategy_note.没有模板重组——指令按原样传递给工人。
- 分析阶段 (仅限M/L/XL任务)--Worker执行只读代码分析→ 跨运行时审阅者检查提案→ 大脑综合并批准/拒绝该计划。S任务跳过此阶段。
- 工人执行 (通过RuntimeAdapter)--使用中配置的运行时在隔离的Git分支上执行任务
routing.execute工人直接接受大脑的指令,辅以项目规则和验证计划。
- 硬验证 --跑步
tsc并将误差计数与基线进行比较。新错误会触发修复周期。
- 代码审查 (跨运行时)--Review使用以下运行时
routing.review,这应该不同于routing.execute以避免自我验证偏见。
- 大脑决策 --Brain分析审查结果并做出五方面的决定: 修复 (送工人修理), 忽略 (尽管有问题,但合并), 块 (停止), 重写 (新方法),或 分裂 (合并部分任务+创建后续任务)。
- 脑反射 --大脑输出多段
reflection,strategy_update,retrieval_lesson,可选orchestrator_feedback.将经验教训保存给克劳德纪念馆以备将来参考(确实如此 不 编辑CLAUDE.md;由单独的周期性事件处理claudeMdMaintenance阶段)。
自然进化
该系统不是通过数字评分(在v1中被证明是无效的),而是通过以下方式进化:
- CLAUDE.md维护:周期性
claudeMdMaintenance阶段审核并根据实际代码更新CLAUDE.md,保持规则准确简洁 - 克劳德·梅姆写道:大脑反思将课程保存为语义体验,在未来的决策中通过相关性检索
- Git历史记录:
git log CLAUDE.md显示了完整的进化时间线
技术栈
| 组件 | 技术 |
|---|---|
| 语言 | TypeScript/Node.js(ESM) |
| 运行时层 | 运行时适配器接口(ClaudeSdkRuntime、CodexSdkRuntime、CodexCliRuntime) |
| Brain | Claude代码代理SDK(只读,结构化输出) |
| 工人 | 可通过以下方式按阶段配置 routing.execute |
| 审阅者 | 可通过以下方式按阶段配置 routing.review (默认情况下为跨运行时) |
| 数据库 | PostgreSQL+ pg_trgm 通过 postgres (门票) |
| 经验 | CLAUDE.md+CLAUDE-mem HTTP API |
| Web UI | 普通HTML/CSS/JS SPA+marked.JS |
| HTTP服务器 | Node.js http 模块 |
许可证
麻省理工学院
