Peter Steinberger 开发 OpenClaw 的工作流程及 Agent 编码秘诀分析
通过 2026 年 git 提交历史记录,分析 Peter Steinberger (steipete) 开发 OpenClaw 的工作流程及 Agent 编码秘诀。
关键洞察总结
AI 是放大器,不是替代品
AI 的作用:
- ✅ 做人类不想做的重复工作(去重、重构)
- ✅ 快速覆盖大量代码(3天1400次提交)
- ✅ 标准化和系统化(按模板提交)
人类的作用:
- ✅ 创造性工作(新功能)
- ✅ 质量把关(代码审查)
- ✅ 决策和发布(版本管理)
可借鉴的经验
| 经验 | 说明 |
|---|---|
| 人机分工 | 人类做 creative,AI 做 repetitive |
| 明确周期 | 人类开发期 → AI 重构期 → 人类收尾期 |
| 标准化 | AI 喜欢模板,建立标准流程 |
| 小步快跑 | 每个阶段有明确目标,快速迭代 |
一、提交统计概览
总提交数: 8443 次提交在两个月内
峰值日产量:
- 2026-02-22: 578 次提交
- 2026-02-15: 478 次提交
- 2026-02-16: 472 次提交
提交类型分布:
fix: 1557 (26%)
test: 815 (14%)
docs: 857 (14%)
refactor: 308 (5%)
feat: 363 (6%)
chore: 352 (6%)
style: 134 (2%)
build: 21 (0.3%)
二、工作流程核心模式
1️⃣ “Land #PR” 工作流
steipete 开发了一套独特的 PR 合并方式:
早期模式(1月):
Merge pull request #108 from author/branch
演进模式(2月底):
fix(telegram): land #31067 first-chunk voice-fallback reply refs (@xdanger)
fix(signal): land #31138 syncMessage presence filtering (@Sid-Qin)
特点:
- 不再使用 GitHub 的标准合并提交
- 把 PR 内容”着陆”(land)为单个提交
- 保留原作者署名
(@author) - 在提交消息中明确 PR 编号
#31067
2️⃣ 原子化提交粒度
steipete 的提交被拆分为极小的原子单元:
| 提交示例 | 改动规模 | 说明 |
|---|---|---|
fix: prefer explicit hook mappings |
1 行修改 | 极简修复 |
refactor: share queued JSONL file writer |
单模块重构 | 单一职责 |
docs: add missing message channels |
5 行文档 | 文档更新 |
feat: add Signal provider support |
1368 行 | 大功能也单独提交 |
模式: 每个提交只做一件事,且完整可运行。
3️⃣ 24小时全天候编码
从 2026-02-22 的提交时间分布看:
00:00-01:00 53 提交
07:00-08:00 39
08:00-09:00 47
09:00-10:00 29
10:00-11:00 51
11:00-12:00 71 ← 早高峰
12:00-13:00 53
13:00-14:00 48
14:00-15:00 19
15:00-16:00 21
16:00-17:00 6
17:00-18:00 4 ← 短暂休息
18:00-19:00 44
19:00-20:00 72 ← 晚高峰
20:00-21:00 33
21:00-22:00 15
22:00-23:00 45
23:00-00:00 73 ← 夜高峰
结论: 几乎全天候有提交,这是多 Agent 并行工作的铁证。
三、Agent 编码的核心秘诀
秘诀 1: 技能系统 (Skills)
项目内置了 coding-agent 技能:
skills/coding-agent/SKILL.md
├── 使用 bash + pty:true 运行 Codex/Claude Code
├── --full-auto 模式用于自动构建
├── background 模式用于长时间运行任务
├── process 工具用于监控和交互
└── PTY 是必需的!
工作模式:
# 启动后台 Agent
bash pty:true workdir:~/project background:true \
command:"codex exec --full-auto 'Build feature X'"
# 监控进度
process action:log sessionId:XXX
# 发送输入
process action:submit sessionId:XXX data:"yes"
秘诀 2: OpenProse VM - 多 Agent 编排语言
在 extensions/open-prose/ 中有一个完整的多 Agent 编排系统:
核心思想: “LLMs are simulators — when given a detailed system description, they don’t just describe it, they simulate it.”
OpenProse 能力:
.prose文件定义 Agent 工作流- 支持并行执行 (
parallel) - 支持顺序执行 (
sequence) - 内置 37+ 个示例工作流
- 3 种状态管理模式: filesystem, in-context, sqlite
示例工作流:
examples/
├── 28-gas-town.prose # 多 Agent 编排
├── 29-captains-chair.prose # 持久化编排器
├── 33-pr-review-autofix.prose # PR 自动修复
├── 36-bug-hunter.prose # Bug 猎人
└── 37-the-forge.prose # 从零构建浏览器
秘诀 3: “小盒子” (Little Box) 模式
来自 coding-agent 技能的关键洞察:
“workdir matters”: Agent wakes up in a focused directory, doesn’t wander off reading unrelated files.
应用:
- 每个 Agent 有独立的
workdir - 不读无关文件(避免”读灵魂文档”)
- 使用
git worktree进行 PR 评审 - 永远不在主项目目录 checkout 分支
秘诀 4: 并行 Agent 大军
从提交模式可以看出大规模并行:
证据:
- 同一分钟内有多个提交
- 提交来自不同的”关注领域”(security, discord, telegram, docs, refactor 同时进行)
- 2月22日 24 小时内 578 次提交 = 平均每 2.5 分钟 1 次提交
策略 (来自 OpenProse 示例):
# Deploy the army - one Codex per PR!
parallel "Review PR #86" do
session "review-86" { ... }
end
parallel "Review PR #87" do
session "review-87" { ... }
end
秘诀 5: 重构=提取+共享模式
steipete 的 refactor 提交揭示了一个系统化的重构方法:
模式序列:
refactor: share X helper- 提取共享助手refactor: dedupe Y flow- 消除重复流程refactor: centralize Z- 中心化管理refactor: unify W- 统一接口refactor: split A and B- 拆分关注点
2月17日的例子(30分钟内完成):
refactor(shared): reuse chat content extractor
refactor: replace memory manager prototype mixing
refactor(test): share heartbeat sandbox fixtures
refactor(test): share embedded runner overflow mocks
refactor: reuse sandbox path expansion
refactor: reuse runtime requires evaluation
refactor: centralize plugin allowlist mutation
refactor: dedupe process-scoped lock maps
... 等等
秘诀 6: AI 透明度文化
从 CONTRIBUTING.md 可以看出他们对 AI 的态度:
## AI/Vibe-Coded PRs Welcome! 🤖
Built with Codex, Claude, or other AI tools? **Awesome - just mark it!**
Please include in your PR:
- [ ] Mark as AI-assisted in the PR title
- [ ] Note degree of testing
- [ ] Include prompts/session logs if possible
- [ ] Confirm you understand what the code does
AI PRs are first-class citizens here. We just want transparency.
Co-authored-by 模式: 早期提交有:
Co-authored-by: Clawd <clawdbot@gmail.com>
四、工具链与基础设施
| 工具 | 用途 |
|---|---|
| Codex | 主要编码 Agent (GPT-5.2-codex) |
| Claude Code | 代码审查和复杂任务 |
| Pi | 轻量级任务,支持多 provider |
| OpenProse VM | 多 Agent 编排 |
| bash + pty:true | Agent 运行时(必需 PTY!) |
| process tool | 后台会话监控 |
| git worktree | 并行 PR 处理 |
五、关键洞察总结
steipete 的工作流秘诀:
- 原子化提交 - 每个提交一件事,可独立运行
- “Land #PR” - PR 作为单个提交着陆,保留原作者
- 多 Agent 并行 - 使用 OpenProse 编排多个 Codex/Claude
- 小盒子原则 - 每个 Agent 有独立 workdir,不读无关文件
- 重构=提取共享 - 系统化地 deduplicate 和 centralize
- AI 透明度 - 明确标记 AI 辅助的工作
- 全天候运行 - Agent 24小时工作,峰值在深夜和清晨
为什么这有效:
- 可审计性: 每个小提交都有明确目的
- 可回滚性: 出错容易 revert 单个提交
- 并行化: 多个 Agent 可同时工作在不同部分
- 知识保留: 提交历史就是完整的开发日志
- 社区协作: “land #PR” 模式让贡献者获得荣誉
这就是 steipete 如何在两个月内完成 8443 次提交的秘密!
2026 年提交统计命令
git log --author="steipete" --since="2026-01-01" --until="2026-03-02" --pretty=format:"%ad" --date=short | sort | uniq -c | sort -k2
75 2026-01-01
127 2026-01-02
174 2026-01-03
122 2026-01-04
136 2026-01-05
177 2026-01-06
172 2026-01-07
272 2026-01-08
349 2026-01-09
252 2026-01-10
158 2026-01-11
283 2026-01-12
156 2026-01-13
63 2026-01-14
202 2026-01-15
164 2026-01-16
256 2026-01-17
262 2026-01-18
77 2026-01-19
170 2026-01-20
181 2026-01-21
161 2026-01-22
144 2026-01-23
162 2026-01-24
92 2026-01-25
36 2026-01-26
29 2026-01-27
9 2026-01-28
5 2026-01-29
20 2026-01-30
19 2026-01-31
21 2026-02-01
32 2026-02-02
26 2026-02-03
9 2026-02-04
7 2026-02-05
22 2026-02-06
7 2026-02-07
15 2026-02-09
1 2026-02-10
2 2026-02-11
6 2026-02-12
117 2026-02-13
450 2026-02-14
478 2026-02-15
472 2026-02-16
64 2026-02-17
304 2026-02-18
233 2026-02-19
361 2026-02-21
578 2026-02-22
111 2026-02-23
171 2026-02-24
73 2026-02-25
214 2026-02-26
9 2026-02-27
27 2026-03-01
128 2026-03-02