2026/04/23 · 开发记录
开发 Runnel 的一些记录
记录我把 Runnel 从一个自动化想法推进成可运行工具时遇到的取舍:CLI 边界、日志结构、提示词版本和失败恢复。
Vibe CodingRunnelAI 编程

开发 Runnel 的一些记录
Runnel 最早只是一个很小的脚本:读取任务描述,拆成几个可执行步骤,然后把每一步交给模型和本地工具完成。真正开始用起来之后,我发现最难的不是把功能写出来,而是把边界收紧。

第一阶段:先让流程跑通
我把第一个版本限制在三个能力里:
- 从 Markdown 任务文件读取目标、输入和输出约束。
- 把任务拆成短步骤,每一步都保留日志。
- 遇到失败时停止,而不是继续猜。
这样做牺牲了一些自动化程度,但能让我快速看到失败发生在哪里。
日志比结果更重要
早期我只关心最终输出,后来发现真正有价值的是过程日志。一个任务失败时,日志至少要回答三件事:
| 问题 | 需要记录什么 |
|---|---|
| 为什么失败 | 命令、退出码、错误摘要 |
| 失败前做了什么 | 输入、模型回复、文件变更 |
| 能否重试 | 当前状态和下一步建议 |
对自动化工具来说,可恢复性比一次成功更重要。
一个小片段
type StepResult = {
ok: boolean;
summary: string;
changedFiles: string[];
};
后续我会继续把 Runnel 当作个人工作流实验场:先保证每一步可解释,再考虑更强的自治能力。