如何在OpenClaw中调用OpenCode完成开发任务?
摘要:title: AI工具实践日记(二):在 OpenClaw 中调用 OpenCode 进行开发任务 date: 2026-02-12 12:00:00 +0800 categories: [AI工具, 开发实践, 树莓派]
引言:AI 开发需要"指挥中心"
上一篇日记讲了如何在树莓派上搭建 OpenClaw。这篇来说说真正用 OpenClaw 干活的体验。
直接用 Claude、GPT 或 OpenCode 写代码有个问题:对话散落在各个窗口,进度没法追踪,结果也不好管理。
OpenClaw 解决的就是这个问题——它像一个"指挥中心",让你能:
启动 AI 编程任务(后台运行,不阻塞)
实时监控进度(随时查看输出)
自动处理错误(卡住时自动恢复或报警)
统一管理上下文(workspace、memory、技能)
这篇日记记录了我用 OpenClaw + OpenSpec + OpenCode 组合开发任务看板的真实过程。
为什么要用 OpenSpec:规范先于代码
AI 编程的痛点
用 AI 写代码很方便,但有个致命问题:需求只存在于聊天记录里。
想象这个场景:
你跟 Claude 说:"帮我加个标签功能"
AI 写好了代码
一周后你想改这个功能,但找不到当时的对话
你重新描述需求,但描述得不完全一样
AI 写的代码和之前不兼容
结果:代码一团糟,还得自己重写。
OpenSpec 是什么
OpenSpec 是一个规范驱动开发(Spec-Driven Development)框架。
它的核心理念:先写规范,再写代码。
所有需求、设计、任务都写成文档,放在 openspec/ 目录下。AI 按照规范文档执行,而不是根据聊天内容猜测。
OpenSpec 目录结构
openspec/
├── specs/ # 系统行为的源头(当前状态)
│ └── <domain>/
│ └── spec.md # 系统规格文档
├── changes/ # 提议的变更(每个功能一个文件夹)
│ └── <功能名>/
│ ├── proposal.md # 为什么要做(意图和范围)
│ ├── design.md # 怎么做(技术方案)
│ ├── tasks.md # 任务清单 ⭐ 最关键
│ └── specs/ # 变更的具体规格
└── config.yaml # 项目配置
使用 OpenSpec 的必要性
1. 需求可追溯
方式
需求在哪里
一个月后还能找到吗
直接聊天
聊天记录
❌ 找不到了
OpenSpec
changes/功能名/proposal.md
✅ 永远在文件里
2. 设计可复用
设计文档 design.md 记录了技术方案。下次遇到类似功能,可以直接参考。
3. 任务可拆分
tasks.md 把复杂功能拆成可执行的小任务。AI 按清单逐个完成,不会遗漏。
4. 进度可监控
每个任务完成后,AI 输出 [DONE] 任务X.X。你可以实时知道:
完成了多少任务
还剩多少任务
有没有卡住
5. 变更有历史
# 查看所有变更
$ ls openspec/changes/
add-archive-feature/ # 归档功能
add-task-tags/ # 标签功能
migrate-to-sqlite/ # 数据库迁移
# 每个变更都有完整的提案、设计、任务记录
不用 OpenSpec 的后果
我做过对比实验:
项目
使用 OpenSpec
不使用 OpenSpec
标签功能
6个任务,10分钟,一次成功
反复沟通,30分钟,代码混乱
数据库迁移
24个任务拆成2个变更,5分钟
直接说"迁移到SQLite",卡住
可维护性
3个月后仍能看懂设计
1周后忘记当时怎么想的
结论:OpenSpec 是 AI 编程的"基础设施",不用它就是在裸奔。
