写在最前:KIMI AGENT 环境为Linux,SKILL中众多命令在WIN/MAC环境下无法运行,如需移植至WIN/MAC环境,需修改SKILL文件或添加前置prompt,均需消耗大量Token。所以建议移植到Linux环境运行的Agent
昨晚干了件挺有意思的事——把 Kimi Agent(Moonshot AI)运行环境里的 269
个 Skill,原封不动接到了我自己的 Agent 服务器上。
docx 生成、PPT
制作、全栈应用构建、财报分析、简历优化……这些能力,现在本地 Agent
也能直接调用。
写篇记录。
背景
Kimi Agent 和 OpenClaw 都是让 AI
调用外部工具做事的框架,但思路不太一样。Kimi 的 Skill 库非常丰富——生成
Word 文档、做 Excel 表格、写网页应用、处理 PDF、做
PPT,甚至发小红书笔记,都有现成的 Skill。
每个 Skill 本质上是一个自包含的目录:一个 SKILL.md(YAML
frontmatter + Markdown
指令)定义接口,加上脚本、模板或二进制引擎实现功能。它们原本是跑在 Kimi
的 Linux
沙箱里的,但设计上是无状态、无外部依赖的——这意味着理论上可以拆出来,放在任何支持同样接口的
Agent 框架里跑。
我试了一下,确实可以。
注意:这些 Skill 是 Kimi / Moonshot AI
的知识产权,本文仅讨论技术迁移方法,不涉及 Skill 内容的分发或商用。
核心问题
硬编码路径
Kimi 的 Skill 内部写死了 /mnt/agents/output/ 和
/mnt/agents/upload/。这是 Kimi
沙箱里的标准目录,但我的服务器上没有。
方案是复刻目录结构,不改文件:
sudo mkdir -p /mnt/agents/output /mnt/agents/upload
sudo chown -R $USER:$USER /mnt/agents
为了手机端也能直接访问输出文件,我把 /mnt/agents/output
软链接到了 workspace 目录下。Skill
以为写到了沙箱路径,实际上文件出现在我能看到的地方。
二进制兼容性
docx Skill 里有一个 .so 文件,只能跑在 CPython
3.12 + x86_64 + glibc 上。如果你的环境是 conda 或 pyenv 装的
3.13,这个引擎直接报错。
还有一个 74MB 的预编译二进制 Xlsx,需要
chmod +x。docx 的验证器是 .NET 8 写的,需要装
dotnet-sdk-8.0。
node_modules 缺失
压缩包里不含
node_modules(预期行为)。webapp-building、backend-building 这类 Skill
的模板里有 package.json,需要自行 npm install
重建。我数了一下,19 个 Skill 需要装,总共约 1600 个包,1.3GB。
部署流程
解压
Kimi 的 Skill 库分了 4 个卷,每个卷是一个 .docx
文件——docx 本质上就是 ZIP。改后缀解压:
mkdir skills1 && cd skills1
unzip ../skills卷1-xlsx完整资源.docx
解压后归并到统一目录:
kimi-runtime/
├── skills/ # 269 个内置 Skill
│ ├── docx/
│ ├── xlsx/
│ ├── webapp-building/
│ └── ...
└── plugins-note.md # MCP 插件不可用说明
注册到 Agent 框架
把 kimi-runtime/skills/ 加到 Agent 的 skill 扫描路径。以
OpenClaw 为例,编辑 openclaw.json:
"skills": {
"load": {
"extraDirs": [
"/path/to/kimi-runtime/skills"
]
}
}
Agent 会自动扫描所有目录下的 SKILL.md,按 frontmatter
里的 description 做任务匹配。保持 frontmatter
原样即可被正确触发。
装依赖
系统依赖:
# 基础
sudo apt install -y python3.12 nodejs npm chromium-browser
# .NET 8(docx 验证器)
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 8.0 --install-dir /usr/share/dotnet
# 中文字体
sudo apt install -y fonts-noto-cjk fonts-noto-cjk-extra
Python 包:
pip3 install --break-system-packages \
numpy scipy sympy matplotlib pillow opencv-python-headless \
openpyxl python-docx pdfplumber
npm 依赖:
for dir in $(find kimi-runtime/skills -name "package.json" \
-not -path "*/node_modules/*"); do
cd $(dirname "$dir")
npm install
done
测试
| 测试项 | 结果 |
|---|---|
| docx 生成(OpenXML + 中文) | ✅ |
| xlsx 工具运行 | ✅ |
| webapp npm install + build | ✅ |
| Chromium 无头截图 | ✅ |
| dotnet 版本 | 8.0.423 ✅ |
踩坑笔记
snap Chromium 的沙箱限制
snap 装的 chromium 不能直接写 /mnt/agents/output,会被
AppArmor 拒绝。workaround 是先截图到 /tmp,再复制过去。
npm install 内存不足
webapp-building 模板的依赖树很大,npm install 时出现过
Exit handler never called,加了
NODE_OPTIONS="--max-old-space-size=4096" 后解决。
同名 Skill 冲突
我原来的环境里已经有
docx、pdf、xlsx 三个
Skill,和新版本同名。删旧版,保留新版的完整版(带了引擎二进制和 .so
文件)。
现在能干什么
部署完成后,多了 243 个可用的 Skill。挑几个有意思的:
kimi-slides— 生成 PPTwebapp-building/backend-building— 一键生成 React + tRPC
全栈项目chart-gen/chart-image—
从 JSON 数据生成图表cv-tailor— 简历优化financial-report-reader—
财报三表分析photo-magazine— 杂志级排版edge-tts— 文字转语音smart-web-scraper— 网页抓取
大部分开箱即用,少数需要配置账号密钥(如
r2-upload、email-manager)。
写在最后
这件事的本质是:能力不应该被锁定在某个平台里。
Kimi 的 Skill 设计得很好——每个 Skill
自包含、有清晰的接口定义、不依赖外部状态。这让它可以被拆出来,放在任何支持同样接口的框架里跑。
只要 Agent 框架能扫描 SKILL.md 的 frontmatter,按
description 做任务路由,这些 Skill
就能工作。接口是开放的,迁移成本主要是环境适配,不是代码重写。
如果你也在自建 Agent,可以试试看。
部署环境:Ubuntu 24.04 LTS / Python 3.12.3 / Node v24.15.0 /
OpenClaw 2026.4.14