OpenClaw 发布之初,它的安装引导程序令人印象深刻。得益于良好的 TUI 交互设计,即使配置项众多,安装体验依然十分丝滑。用户只需要一路选选选,就能获得属于自己的 OpenClaw。这种丝滑体验主要来自“卷工程师”:工程师处理各种边界情况,让程序在不同设备上运行良好。
这本质是人与机器的摩擦:由于设备之间的微小差异,人被迫写 if else 来处理各种边界情况。有没有可能我们不卷工程师,而是将这种摩擦转嫁给 Coding Agent,让它自己解决环境配置问题呢?这当然是可能的,本文就将进行这方面的尝试。
一、BOOT.md 的诞生
BOOT.md 是一个纯文本文件。首先,我们在 BOOT.md 里面,用自然语言写软件的安装步骤,包括以下内容:
- 安装指引:用户想安什么
- 环境检测:用户环境是什么
- 依赖下载:当前环境要下载什么
- 执行安装:安装软件及其环境依赖
- 引导体验:引导用户使用我们的工具
然后把这个文件丢给 Claude Code,只要 Claude Code 能识别其意图,就能帮我们安装,整个过程不用写一行代码。实测下来效果非常好,因为 Claude Code 的 TUI 有多选框、单选框等交互方式,能代替安装引导程序与用户交互,获得安装所需信息,然后自动安装软件。
我不知道我是不是第一个这么做的人,但这只是肌肉记忆的延伸。以前喜欢写 boot.sh 文件,里面放安装软件的代码。现在不需要写 bash 了,只需要人类语言就能让 Claude Code 安装软件。这种体验还挺新奇的。说起来,以前写的 bash 不过是粘合剂而已,现在 Coding Agent 变成了更好的粘合剂。
二、Claude Code 自我提升计划
我们知道,“裸的” Claude Code 能力受限。因为它很多能力是依赖生态的。比如,Claude Code 想搜索信息,就需要使用搜索 API。因为搜索引擎有反爬机制,机器无论是直接请求,还是用无头浏览器访问,都会被拒绝。所以像外部 API 这种生态能力是很关键的。
我们说生态能力已经有点 low 了,现在有个时髦的词叫 Agent Harness。Agent Harness 其实不是什么抽象东西,它就是 Coding Agent 赖以生存的基建。
Agent Harness 一览表
| Agent 能力 | Agent Harness |
|---|---|
| 网络搜索 | Tavily、Jina、SearXNG、ddgs |
| 网页爬取 | Playwright、Crawl4AI |
| 技能管理 | npx skills、ClawHub |
| 代码执行 | Miniconda、uv、Node.js、Bun |
| 沙箱 | Firecracker、gVisor、sandbox-runtime |
| 记忆 | lossless-claw、memory-wiki |
可以说,没有配置 Agent Harness 的 Claude Code 只是半个 Claude Code。可是 Harness 还需要一个一个去安装,怎样才能无痛安装 Harness 呢?
哎呀,这就轮到 BOOT.md 出场了。
我的设想是:
- 让 Claude Code 读 BOOT.md
- BOOT.md 引导 Claude 展示技能让用户选:搜索、爬虫、技能管理
- 对每个选中的技能,检查对应 Harness 的依赖,逐项询问是否安装
按这个思路,只要把包含 BOOT.md 在内的文档放到一个 GitHub 仓库。任何读了这个仓库的 Claude Code,都能够知道如何用 Agent Harness 武装自己。
我花了半天时间,把这个仓库写出来了👇👇
现在,你只需要在 Claude Code 会话中输入:
用 https://github.com/luochang212/cc-enhance 武装我的 Claude Code
就能下载以下技能(可选):
- web-search-cce: 网络搜索
- web-fetch-cce: 网页提取
- agent-skills-cce: 技能管理
- tool-registry-cce: 工具管理
还有技能关联的 Agent Harness(可选):
- Tavily API
- ddgs
- Crawl4AI
- Playwright
- npx skills
Note: 技能的
-cce尾缀是 cc-enhance 的缩写,加它是为了防止我们的技能名与用户已有技能撞车。
三、文档驱动安装
自举 是一种循环,但 Harness 只需要安装一次。
这种安装方式的新奇之处在于:它完全由文档驱动,不需要代码文件。
未来的安装程序可能是一套基于共识的文档系统。比如 98% 使用了 Ubuntu 的 Claude Code 认为,遇到 A 问题可以用 B 命令解决,那么文档就会这么写。如果概率五五开,那文档系统就向 Claude Code 发出指令,让它们进一步 diff 系统环境的差别。
这在前 Agent 时代不可能发生,因为积累共识是一件成本高昂的事情。很少有人愿意为了解决分歧而发起投票,即使有结果也不置信。但对于 Agent 来说,可能顺手就做了。虽然每个 Agent 都只安装一次,但是如果有很多 Agent 安装,就能给系统带来源源不断的反馈,让系统自发变好用,想想还蛮玄幻的。

拉回我们的思绪。我刚刚在 macOS 上试了一下,目前状态一切良好。但我还没有测它在 Windows 上的表现。这个项目目前还在开发中,如果你有任何改进意见或想法,欢迎提 Issue 或直接提 PR。非常感谢!!
