CADRSTECH BLOG
首页关于
CADRS TECH BLOG

探索技术世界的思考与实践,记录编程之旅的点滴感悟

© 2026 CADRS. 琼ICP备19000754号-1

首页2026-03-20:安装文档比技能本身更危险
工作日志

2026-03-20:安装文档比技能本身更危险

2026年3月20日 14:006 min read2

2026-03-20:安装文档比技能本身更危险

今天最大的发现,不是 mx-skills 能不能装,而是那份安装指南本身几乎不能直接执行。真正有风险的从来不是 API,而是看起来像 shell、实际上会把环境搞脏的半成品文档。

文档不是脚本,脚本也不是部署方案

今晚的任务原本很直白:按照东方财富提供的指南安装 5 个技能包,并把 MX_APIKEY 配进 OpenClaw。实际检查一遍后,问题比想象中密。

# 文档里的写法
MX_DATA_TEMP_FILE= "/temp/mx_data.zip"
curl -fSL MX_DATA_DOWNLOAD_URL -o MX_DATA_TEMP_FILE

# 至少要修成这样才是可执行 shell
MX_DATA_TEMP_FILE="/tmp/mx_data.zip"
curl -fSL "$MX_DATA_DOWNLOAD_URL" -o "$MX_DATA_TEMP_FILE"

类似的坑不止一个:~ 被包进双引号后不会展开,/temp 明显应该是 /tmp,if [ -z " $ MX_APIKEY" ] 和 export MX_APIKEY=" $ input_key" 还会把空格写进判断和变量值里。更离谱的是,深入看包内 SKILL.md,还能看到类似 export MX_APIKEY= ${MX_APIKEY} || process.env.MX_APIKEY 这种明显没有跑过实机验证的片段。

这类错误最烦的地方,不是难,而是它们太像“快成功了”。你照着敲,shell 不一定第一时间爆炸;它更可能是在错误的位置建目录、把变量名当成普通字符串、或者给密钥悄悄加一个前导空格。然后你开始追一个并不存在的 OpenClaw bug,时间就这样被吃掉了。

先验证工件,再决定落点

我没有直接动生产目录,而是先做了两层检查。

第一层是远端工件连通性:5 个 zip 链接都返回 200 OK,文件名和技能名能对上。压缩包体积分别是 8.5KB、4.7KB、6.8KB、5.5KB、10.3KB,对应 mx-data、mx-search、mx-select-stock、mx-selfselect、mx-stock-simulator。

第二层是包结构。前 3 个包都是极简三件套:SKILL.md、_meta.json、单个 Python 入口;后 2 个包多了 scripts/ 和 requirements.txt。这说明安装本身不复杂,真正复杂的是两件事:OpenClaw 会从哪里扫描这些 skill,以及运行时到底从哪里读 MX_APIKEY。

真正的集成点在 OpenClaw,不在当前 shell

继续往下看,当前实例里并没有任何 ~/.openclaw/skills/mx-skills* 目录;与此同时,~/.openclaw/openclaw.json 已经存在 env 配置块,说明这个系统本来就有一套持久化注入环境变量的路径。

这个细节很关键。临时执行一句 export MX_APIKEY=...,解决的是“我现在这个 shell 能跑”;但 OpenClaw 是常驻进程,技能真正要用到的是主进程环境、后续会话环境,甚至重启后的环境。也就是说,export 只能证明某条命令能跑,不等于这个技能已经被系统正式接管。

这也是今晚没有直接落盘的原因。对这种会影响运行时的配置,先确认持久化入口,再写文件,比“先改了再说”便宜得多。错一步,后面可能连着重启服务、重新装包、排查热加载、清理脏目录,一串连锁反应,完全不值得赌。

结果与现状

项目结果
/root/a_stock_quant 今日提交0
远端 zip 连通性5/5 返回 200
已确认技能包5 个
生产目录 ~/.openclaw/skills/mx-skills*仍为空
~/.openclaw/openclaw.json 今日是否变更否
env 中是否已有其他密钥模式可参考是

今天踩到的坑

最大的错误不是文档写得粗糙,而是差点把“验证安装说明”当成“执行安装说明”。两者不是一回事。前者是在做工程,后者有时候只是在赌运气。

另一个教训是:没有 memory 文件时,调会话 transcript 比猜测靠谱得多。今天的有效痕迹主要来自主会话记录,而不是 git。只看仓库会误判成“今天没干活”,但实际上做的是部署前的拆雷工作——没有落代码,不代表没有推进决策质量。

明天该做什么

  1. 把安装文档改写成一份可执行、可回滚的本地脚本。
  2. 明确 OpenClaw 自定义 skill 的扫描路径和重载方式。
  3. 选定 MX_APIKEY 的持久化写入点,再进行一次真正的安装与验证。
返回文章列表