将 Agent 部署到本地环境可能一切顺利,但交付给客户时却面临诸多挑战:客户机器上的 OpenClaw 路径不同、workspace 配置无法直接迁移、Feishu 机器人配置后无法正常工作、多 Agent 配置合并容易出错。针对这些痛点,我开发了一个专门用于 OpenClaw Agent 交付的打包 Skill。
这个 Skill 已经支持单 Agent 打包、多 Agent 打包、默认瘦身、可选携带 memory、Windows 自动安装、目标 OpenClaw 自动合并配置、Feishu 迁移后的配对流程指引等功能,既适合内部迁移,也适合外发脱敏包。
为什么需要这个交付 Skill
这个 Skill 并非为了"创新"而做,而是被真实的交付需求逼出来的。典型场景如下:
- C 盘是一套已经跑通的 OpenClaw 环境
- D 盘安装了最新版本 OpenClaw
- 需要将 C 盘的一个或多个 Agent 迁移到 D 盘测试
- 最终目标不是"自己能迁移",而是"客户拿到安装包也能装"
苏米注:这个需求非常真实。我在实际项目中也遇到过类似问题——开发环境一切正常,但交付到客户环境就各种问题。能够把交付流程产品化,这个思路值得学习。
核心挑战:配置合并的边界
直接复制整个 openclaw.json 到目标环境风险极大:
- 可能覆盖目标环境原有的可用配置
- 可能带入旧字段或不兼容字段
- 可能影响目标环境中已存在的其他 Agent
- 多 Agent 场景下更容易互相污染
正确的思路不是"整份替换",而是精确合并。最终收敛为只迁移这些关键内容:
agents.list中目标 Agent 的条目bindings配置channels.*.accounts.*账号配置- 每个 Agent 的
workspace - 每个 Agent 的
models.json - 每个 Agent 的
auth-profiles.json(如果有)
这个边界非常重要,也是这个打包 Skill 能够稳定工作的核心。
交付 Skill 的核心功能
这个 Skill 的本质是:把"开发机上的 Agent"变成"客户可安装的交付包"。它做的不是简单压缩,而是完整的交付准备。
负责打包的内容
- 指定 Agent 的配置片段
- 指定 Agent 的 workspace
- 运行所需的模型配置
- 可选的 auth 配置
- 安装脚本和检查脚本
- README 文档
- 客户设置模板
默认瘦身策略
默认不会打包以下无关内容:
sessions会话数据.openclaw内部目录node_modules依赖包- 缓存文件和日志
- 大图片和大产物
- 其他运行时垃圾
实践经验:默认瘦身策略非常关键。交付包越"胖",维护成本越高——客户下载慢、隐私泄漏风险高、出问题时排查困难。这个设计决策值得借鉴。
交付目标:客户自助安装
交付的目标不是让技术人员"研究一下再手动装",而是尽量做到:
- 客户解压安装包
- 阅读 README 文档
- 运行
CHECK.ps1检查环境 - 运行
INSTALL.ps1安装 - 如 Feishu 首次提示 access not configured,执行一次 pairing 授权
- 完成安装
打包三原则
这部分是我认为最值得分享的,因为它决定了整个方案是否可长期维护。
原则一:默认瘦身
默认只打包必要内容,不要为了"省事"把整个 workspace 全搬进去。真正交付时,越胖越难维护:
- 客户拿到的包更大,下载慢
- 内容更杂,难以理解
- 隐私泄漏风险更高
- 出问题时排查更慢
现在的默认策略是:memory 不默认打包,只有显式加参数才带 memory。这样就把"工作资料"和"记忆沉淀"分开了。
原则二:Memory 可选
有的 Agent,记忆很重要;有的 Agent,记忆反而是噪音。所以最终设计为:
- 默认不打包 memory
- 需要时添加
--include-memory参数
这样的设计更适合交付场景。
原则三:只合并必要字段
不碰未知的顶层结构,不迁移老字段,不整份覆盖配置。只迁移经过验证的必要字段,确保配置合并的安全性和可预测性。
苏米注:这三个原则体现了工程思维——默认安全、按需扩展、边界清晰。这不仅是打包策略,更是所有交付型工具应该遵循的设计哲学。
使用场景
这个 Skill 适合以下场景:
- 内部迁移:从开发环境迁移到测试/生产环境
- 客户交付:打包 Agent 交付给最终客户
- 团队协作:团队成员之间共享 Agent 配置
- 版本管理:备份和恢复 Agent 配置
技术实现要点
实现这个 Skill 的关键技术点包括:
- 配置解析:准确解析
openclaw.json的 JSON 结构 - 精确合并:只合并指定字段,不影响其他配置
- 依赖检查:自动检查目标环境的依赖是否满足
- 错误处理:提供清晰的错误提示和恢复指引
- 文档生成:自动生成 README 和安装指引
总结与启示
从"自己能跑"到"客户能装",这中间的距离往往被低估。这个交付 Skill 的价值在于:
- 标准化:把交付流程标准化,减少人为失误
- 自动化:自动化检查和安装,降低技术门槛
- 可维护:清晰的边界和原则,便于长期维护
- 可扩展:支持单 Agent 和多 Agent,适应不同场景
最佳实践:如果你也在做类似的交付工作,建议参考这三个原则——默认瘦身、Memory 可选、只合并必要字段。这会让你的交付流程更加稳定可靠。
项目地址:https://github.com/kekohu426/openclaw-agent-packager/