Docs
Refer friends. Keep the rewards coming!Your friend can unlock up to 10M tokens · earn up to 30% revenue share.
+500K TokensGenerate link

编程智能体实战 (Archive)

Archived original-language source from the legacy CrabClaw docs. This page is intentionally not machine-translated.

本教程将带你体验 Open Coder 编程子智能体的完整自主编程流程——从一句话委托需求,到自主规划、可视化终端监控、三层自动审批、心跳汇报,最终交付成果。

前置条件

  • Crab Claw 已安装并完成初始配置
  • 至少配置了一个模型提供商(推荐 Claude Sonnet 或 GPT-4)
  • 有一个 Go/Node/Python 项目可供操作

第一步:启用自主模式

编辑 ~/.crabclaw/crabclaw.json,开启自主编程模式:

json
{
  "subAgents": {
    "openCoder": {
      "autonomousMode": true
    }
  }
}
{
  "subAgents": {
    "openCoder": {
      "autonomousMode": true
    }
  }
}

重启 Gateway 使配置生效:

bash
crabclaw gateway stop && crabclaw gateway start
crabclaw gateway stop && crabclaw gateway start

第二步:委托编程任务

在聊天中用自然语言描述需求:

shell
> 帮我把 internal/auth 模块从 session-based 重构为 JWT,要求向后兼容旧接口
> 帮我把 internal/auth 模块从 session-based 重构为 JWT,要求向后兼容旧接口

系统自动执行:

  1. 意图分析 → 识别为 task_write 级编程任务
  2. 匹配蓝图 → 选择 coder 蓝图模板
  3. 创建子智能体spawn_coder_agent 启动独立 LLM 会话
  4. 弹出可视化终端 → 自动打开 Bubble Tea TUI 监控窗口

第三步:观察自主规划

Open Coder 启动后会先分析项目,然后提交执行计划:

shell
[可视化终端]
┌─ 计划面板 ──────────────────────────────────┐
 Plan v1 (initial) — 等待审批                 │

 1. 分析 internal/auth 现有代码结构
 2. 创建 jwt.go JWT 签发/验证模块
 3. 重构 middleware.go 双模式兼容
 4. 更新 handler.go 迁移 session JWT
 5. 添加 auth_test.go 单元测试
 6. 运行 go test ./internal/auth/...

 状态: L1 规则引擎 自动批准
└──────────────────────────────────────────────┘
[可视化终端]
┌─ 计划面板 ──────────────────────────────────┐
 Plan v1 (initial) — 等待审批                 │

 1. 分析 internal/auth 现有代码结构
 2. 创建 jwt.go JWT 签发/验证模块
 3. 重构 middleware.go 双模式兼容
 4. 更新 handler.go 迁移 session JWT
 5. 添加 auth_test.go 单元测试
 6. 运行 go test ./internal/auth/...

 状态: L1 规则引擎 自动批准
└──────────────────────────────────────────────┘

三层决策过程

  • L1 规则引擎:文件读写、代码编辑、测试运行 → 自动批准(<1ms)
  • 如果计划包含 npm install 等边界操作 → L2 LLM 评估(1-3s)
  • 如果包含 rm -rf 等危险操作 → L3 人类确认(终端/消息频道弹窗)

第四步:监控执行进度

Open Coder 在执行过程中通过心跳实时汇报:

shell
[可视化终端]
┌─ 进度面板 ──────────────────────────────────┐
 ████████░░░░░░░░ 50%  Step 3/6

 Step 1: 分析代码结构 (12 files scanned)   │
 Step 2: 创建 jwt.go (NewToken, Validate)  │
 🔄 Step 3: 重构 middleware.go
    心跳: "正在处理双模式兼容逻辑,session     │
│    检测优先,JWT fallback..."
 Step 4-6: 待执行
└──────────────────────────────────────────────┘

┌─ Diff 面板 ─────────────────────────────────┐
 internal/auth/middleware.go
 @@ -15,8 +15,22 @@
 - func AuthMiddleware() gin.HandlerFunc {
 + func AuthMiddleware(mode string) ... {
 +   if mode == "jwt" || mode == "dual" {
 +     token := extractBearerToken(c)          
 +     claims, err := ValidateJWT(token)       
 ...
└──────────────────────────────────────────────┘
[可视化终端]
┌─ 进度面板 ──────────────────────────────────┐
 ████████░░░░░░░░ 50%  Step 3/6

 Step 1: 分析代码结构 (12 files scanned)   │
 Step 2: 创建 jwt.go (NewToken, Validate)  │
 🔄 Step 3: 重构 middleware.go
    心跳: "正在处理双模式兼容逻辑,session     │
│    检测优先,JWT fallback..."
 Step 4-6: 待执行
└──────────────────────────────────────────────┘

┌─ Diff 面板 ─────────────────────────────────┐
 internal/auth/middleware.go
 @@ -15,8 +15,22 @@
 - func AuthMiddleware() gin.HandlerFunc {
 + func AuthMiddleware(mode string) ... {
 +   if mode == "jwt" || mode == "dual" {
 +     token := extractBearerToken(c)          
 +     claims, err := ValidateJWT(token)       
 ...
└──────────────────────────────────────────────┘

第五步:中途修订(可选)

如果 Open Coder 发现需要调整计划:

shell
[终端] Plan v2 (revision) — 自动评估中
  新增: 7. 更新 go.mod 添加 jwt-go 依赖
  L2 LLM 评估 合理 批准
[终端] Plan v2 (revision) — 自动评估中
  新增: 7. 更新 go.mod 添加 jwt-go 依赖
  L2 LLM 评估 合理 批准

revision 计划只评估新增部分(delta),比首次更宽容。

第六步:接收交付成果

任务完成后,Open Coder 返回结构化结果:

shell
[聊天窗口]
 编程任务完成

变更文件:
  + internal/auth/jwt.go (新建, 87)
  ~ internal/auth/middleware.go (修改, +22 -8)
  ~ internal/auth/handler.go (修改, +15 -12)
  + internal/auth/auth_test.go (新建, 64)

测试结果: 12/12 PASS
  go test ./internal/auth/... ok (0.45s)

总结:
  - JWT 签发使用 HS256 算法,密钥从环境变量读取
  - middleware 支持 dual 模式,优先 JWT,回退 session
  - /api/v1/* 接口保持 session 兼容
  - /api/v2/* 接口默认 JWT
[聊天窗口]
 编程任务完成

变更文件:
  + internal/auth/jwt.go (新建, 87)
  ~ internal/auth/middleware.go (修改, +22 -8)
  ~ internal/auth/handler.go (修改, +15 -12)
  + internal/auth/auth_test.go (新建, 64)

测试结果: 12/12 PASS
  go test ./internal/auth/... ok (0.45s)

总结:
  - JWT 签发使用 HS256 算法,密钥从环境变量读取
  - middleware 支持 dual 模式,优先 JWT,回退 session
  - /api/v1/* 接口保持 session 兼容
  - /api/v2/* 接口默认 JWT

理解完整流程

shell
用户: "重构 auth 模块"

  ├─ 主系统 spawn_coder_agent
   └─ DelegationContract (工具白名单 + token 预算)

  ├─ Open Coder 独立 LLM Session
   ├─ propose_plan (v1, initial)
   └─ L1 规则引擎 自动批准

   ├─ 执行步骤 1-6
   ├─ report_heartbeat × N (实时进度)
   ├─ 上下文压缩 (如需)
   └─ propose_plan (v2, revision, 如需)

   └─ ThoughtResult 返回

  └─ 主系统质量审核 交付给用户
用户: "重构 auth 模块"

  ├─ 主系统 spawn_coder_agent
   └─ DelegationContract (工具白名单 + token 预算)

  ├─ Open Coder 独立 LLM Session
   ├─ propose_plan (v1, initial)
   └─ L1 规则引擎 自动批准

   ├─ 执行步骤 1-6
   ├─ report_heartbeat × N (实时进度)
   ├─ 上下文压缩 (如需)
   └─ propose_plan (v2, revision, 如需)

   └─ ThoughtResult 返回

  └─ 主系统质量审核 交付给用户

常用编程任务示例

shell
> 帮我给这个项目添加 Docker 支持
> 重构 utils 包,把重复的错误处理提取成公共函数
> 这个 API 有 SQL 注入风险,帮我修复
> 帮我写一套完整的 CRUD 测试
> 分析这个项目的技术架构,生成架构文档
> 帮我给这个项目添加 Docker 支持
> 重构 utils 包,把重复的错误处理提取成公共函数
> 这个 API 有 SQL 注入风险,帮我修复
> 帮我写一套完整的 CRUD 测试
> 分析这个项目的技术架构,生成架构文档

进阶:软件著作权申请

Open Coder 还能帮你自动申请软件著作权:

shell
> 帮我准备这个项目的软件著作权申请材料
> 帮我准备这个项目的软件著作权申请材料

智能体自动完成:代码统计 → 技术栈分析 → 撰写说明书 → 源代码裁剪 → PDF 生成 → 浏览器自动填表。

详见 编程子智能体 的"软件著作权一键申请"章节。

常见问题

计划被 L3 人类审批拦截?

  • 检查计划中是否包含危险操作(rm -rfgit push --force 等)
  • 在终端或消息频道中确认或拒绝

心跳超时告警?

  • Open Coder 超过 300s 无心跳会触发告警
  • 可能是 LLM API 调用延迟,等待即可
  • 持续超时则检查模型配置

可视化终端没有弹出?

  • 确认 autonomousMode: true 已配置
  • 手动启动: crabclaw coder-terminal --session=&lt;ID&gt;

相关文档:编程子智能体 · 委托合约 · 安全沙箱