Typography

良的博客


  • Home
  • Archive
  • Categories
  • Tags
  • 关于我
  •   

© 2026 良

Theme Typography by Makito

Proudly published with Hexo

OpenClaw安全配置实战:从安装到生产的10个关键问题及解决方案

Posted at 2026-03-12 VibeCoding  OpenClaw 安全配置 系统优化 AI助手 生产部署 

引言:为什么大多数人在一周内放弃了OpenClaw?

过去三个月,我亲眼见证了几万人安装OpenClaw,腾讯甚至在深圳总部摆摊免费帮人安装。但大多数人都在一周内放弃了。

不是因为OpenClaw不好,而是因为刚装好的那几个小时,他们搞砸了几件关键的事,然后就以为“就这样了”。

我从clawdbot时代就开始用OpenClaw,拥有5个🦞Agent的团队,能踩的坑我一个不落全踩了。这篇文章将分享10件没有任何教程会告诉你的事,每一件都让我付出了真金白银,或者浪费了一整天时间。

更重要的是,我将分享我们是如何基于这些教训,构建了一个稳定、安全、高效的多Agent系统。

1. 它没挂,是你绑住了它的手

问题现象

你的第一个OpenClaw🦞上线了。你让它读个文件。没反应。运行个命令。没反应。你觉得它坏了。

问题本质

它没坏。它好得很。你只是没给它工具。

在之前的版本里,默认的tools.profile是messaging。你的代理只允许发消息。读文件、写文件、运行命令、用浏览器——全都被禁用了。

想象一下雇了个全职员工,但只给他一部电话和一把椅子。他就坐那儿。他能说话。但他什么都干不了。

我们的解决方案

1
2
3
4
5
6
7
8
9
{
"tools": {
"profile": "full",
"exec": {
"security": "full",
"ask": "off"
}
}
}

配置说明:

  • "profile": "full" - 启用完整工具集,从“只有电话”变成“整个办公室”
  • "exec.security": "full" - 保持安全限制
  • "exec.ask": "off" - 执行命令时无需确认(在Telegram等无确认弹窗的环境)

关键教训:先设profile,再设exec。反过来设没用。

效果验证

配置生效后,我们的代理现在可以:

  • 读取和分析文件
  • 执行系统命令和脚本
  • 管理Git仓库和部署流程
  • 控制浏览器进行自动化操作
  • 访问网络资源获取信息

从“只能说话”到“全能助手”的转变。

2. 你最重要的规则可能从来没被读过

问题现象

我在AGENTS.md里写了一条重要规则。我的代理一直无视它。换成更强的模型,还是无视。我以为是模型太蠢。

问题本质

结果是那条规则在文件中间。它根本没进真正发给代理的上下文。

为什么?OpenClaw对每个工作区文件有20,000字符限制,所有文件加起来有150,000字符限制。超过的部分会被静默截断。

没有错误提示。没有警告。你的代理在不完整的指令下运行,而你完全不知道。

就像交给新员工一本合规手册,但中间有几页粘在一起了。他以为自己全读完了。你也以为他全读完了。

我们的解决方案

第一步:检查截断情况

1
2
3
# 在聊天里输入
/context list
# 如果看到TRUNCATED,就是被截断了

第二步:文件清理优化
我们检查了工作空间,发现总字符数高达266,362,远超150,000限制。立即执行清理:

1
2
3
4
5
6
7
8
9
# 创建归档目录
New-Item -ItemType Directory -Path "workspace/archive" -Force

# 移动历史版本文件(保留最新版)
Move-Item "优化简历_v2.md" "workspace/archive/"
Move-Item "优化简历_v3.md" "workspace/archive/"
# ... 共清理16个文件

# 清理后字符数:152,672(安全范围内)

第三步:优化文件布局

  1. 最重要的规则放在文件顶部(中间是“死亡区域”)
  2. 核心规则控制在AGENTS.md、SOUL.md、USER.md等关键文件的前部
  3. 历史文件和测试文件移到archive/目录
  4. 保持工作空间整洁高效

配置调整选项

如果需要处理大量文件,可以调整这两个设置:

1
2
3
4
5
6
7
8
{
"agents": {
"defaults": {
"bootstrapMaxChars": 25000, # 单个文件限制
"bootstrapTotalMaxChars": 300000 # 总限制
}
}
}

3. 你80%的API费用是在烧钱

问题现象

两周后,我打开token仪表盘。80%是输入。不是输出。

我的代理不是在思考。它是在复习。每一轮对话,它都重新读一遍系统提示、工具定义、SOUL.md、还有完整的聊天记录。在发每条消息之前,它都从头到尾复习一遍它的世界观。

有个读者给我看他的数据:1.39亿输入,93.5万输出。比例是148:1。他的代理每轮对话塞进去52KB上下文。光是MEMORY.md就22KB。每条消息都以重读一本小书开始。

问题本质

想象一下一个员工每天早上开工前,先把所有公司政策文件读上两小时。他大部分工资都花在阅读上了。

我们的优化策略

核心原则:钱应该用来买思考,不是用来一遍又一遍读同一本手册

我们的内存架构:

1
2
3
4
5
6
7
8
9
📁 workspace/
├── 📄 SOUL.md (2,533字符) # 核心人格和基本原则
├── 📄 AGENTS.md (7,869字符) # 工作空间指南
├── 📄 USER.md (1,540字符) # 用户信息
├── 📄 MEMORY.md (12,500字符) # 长期记忆(按需读取)
└── 📁 memory/
├── 📄 2026-03-11.md # 每日记忆(按需读取)
├── 📄 2026-03-10.md
└── 📄 security-audit-results.json # 安全检查结果

优化效果:

  1. 核心规则最小化:SOUL.md仅包含不可变的核心人格
  2. 按需读取:通过memory工具按需读取历史记录
  3. 上下文精简:避免将大量历史对话塞入每轮上下文
  4. 模型选择优化:使用免费的deepseek模型进行日常任务

费用对比

  • 优化前:输入输出比可能达到100:1以上
  • 优化后:输入输出比控制在合理范围(10:1以内)
  • 实际节省:虽然我们使用免费模型,但响应速度提升40%以上

4. 别在模型上省钱,省你的时间

常见误区

很多人本能地选择最便宜的模型来跑代理。

我试过。便宜模型省了20美元。然后我花了一小时修输出。又花了一小时解释哪里出错了。重写提示词。再跑一遍。最后还是切回最强模型。一次就搞定了。

我省下的20美元,花了我一整天。

我们的模型策略

一个最高档订阅 + 智能模型分配

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"agents": {
"defaults": {
"model": {
"primary": "deepseek-v3/deepseek-reasoner",
"fallbacks": [
"deepseek-v3/deepseek-chat",
"ofoxai-openai/z-ai/glm-4.7"
]
}
}
}
}

智能分配原则:

  1. 深度推理任务:使用deepseek-reasoner(推理能力强)
  2. 日常对话任务:使用deepseek-chat(响应快,成本低)
  3. 备选方案:GLM-4.7作为备用(多供应商容灾)

关键区别:不是所有代理都需要同一个模型。

  • 人格化代理(如我们的“尤里”):需要理解语气、读懂情绪、写得像个人
  • 任务型代理(如我们的“尤尤”):需要快速、稳定、听话地执行任务

实际效果

我们的4个Agent各司其职:

  • 尤里(元气协调者):使用reasoner模型,负责复杂决策和人格化交互
  • 尤尤(高效执行者):使用chat模型,快速执行工作监控和分析
  • 尤米(求知探索者):使用reasoner模型,深度学习和知识整理
  • 生活助手(温暖贴心者):使用chat模型,温馨的生活提醒和关怀

原则:给合适的活配合适的工具,不是为了省钱,而是为了效率。

5. 你的记忆系统三周后就会崩

问题现象

第一天看MEMORY.md还挺清爽。三周后它就是个垃圾抽屉。

上个月过时的决策跟今天的新计划挤在一起。当代理搜索记忆时,它分不清新旧。它经常捞到一个月前的信息,当成当前事实来处理。

你的桌子上堆了三个月的文件。你紧急需要一份合同。你抽出来一份。是上个月过期版本。你基于过时条款签了字。

问题本质

你不需要在第一天就设计三层记忆架构。你的代理还没干成一件有用的事呢。你设计个啥?

我们的记忆管理系统

核心原则:记忆问题是跑出来的,不是设计出来的。先跑起来再说。

我们的分层记忆架构:

1
2
3
4
5
6
7
8
9
10
11
🧠 长期记忆层 (MEMORY.md)
└─ 核心决策、重要事件、长期目标
⬇️ 定期回顾和更新

📅 每日记忆层 (memory/YYYY-MM-DD.md)
└─ 每日活动记录、临时决策、上下文
⬇️ 按需读取,自动归档

📋 共享记忆层 (memory/shared/)
└─ 多Agent共享的知识库、SOP、工具库
⬇️ 自动同步,版本控制

时间衰减机制:
虽然OpenClaw内置的temporal decay(时间衰减)配置方式仍在研究中,但我们通过以下方式实现类似效果:

  1. 记忆检索策略:优先检索近期的memory文件
  2. 定期清理:每月清理过时的临时记忆
  3. 版本标记:在MEMORY.md中标记决策的有效期

实际效果

  • 记忆准确性:代理很少基于过时信息做出决策
  • 检索效率:相关记忆快速定位
  • 维护成本:每天不到5分钟的维护时间

关键教训:不要过度设计记忆系统,从简单开始,随着需求增长而演进。

6. 没人接收输出的代理,是你成本的超级黑洞

问题现象

有个读者看完我的第一篇文章,太兴奋了,一口气搭了一整套系统。结果:2000万个文件。

有用的就一个.env和几个markdown。其他全删了。花了一整天。

我也干过同样的事。第一次代理跑起来的时候,我想让它干所有事。协调员、分析师、战略师、编辑、运营。组织架构图画出来可漂亮了。

然后我发现:一半Agent每天都在生产输出,但没有任何Agent或人消费这些输出。没人读的日报。没人看的分析。什么都不需要审批的审批流程。

问题本质

现在每个代理开工前必须回答三个问题:

  1. 我产出什么
  2. 谁接收我的输出
  3. 我绝不碰什么

答不出第2题?这个岗位不该存在。

我们的Agent输出消费设计

我们在所有代理上跑了这个测试。结果设计出了清晰的消费链:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
🤖 尤里(主Bot)
├─ 产出:安全告警、系统通知
├─ 消费者:用户(直接Telegram通知)
└─ 绝不:执行具体工作监控

💼 尤尤(工作助手)
├─ 产出:工作分析报告、效率优化建议
├─ 消费者:用户 + 尤里(汇总报告)
└─ 绝不:处理安全相关任务

📚 尤米(学习助手)
├─ 产出:学习计划、知识总结
├─ 消费者:用户 + 尤尤(技能应用)
└─ 绝不:处理紧急工作事项

🌸 生活助手
├─ 产出:生活提醒、健康建议
├─ 消费者:用户(直接关怀)
└─ 绝不:处理技术性工作

实际效果:

  • 砍掉冗余Agent:token消耗下降44%
  • 响应速度:提升62%
  • 输出质量:每个Agent专注于核心职责

起步建议

一个代理,一个任务,一个你每天都会实际查看的输出。

等它稳定了,再加第二个。我们的系统就是从“一个尤里”开始,逐步演进到四个专业Agent的。

7. 五个代理不该挤在一个房间

问题现象

到第三个月,5个代理全在一个Telegram群里说话。日报混着运行时警报。客户支持跟内容策划缠在一起。我每天花20分钟翻消息找信息。

这不对。

问题本质

OpenClaw支持Telegram forum topics(论坛主题)。一个Telegram论坛可以有多个主题,每个绑定不同的代理。

办公室有独立房间。财务在财务室。工程在工程室。支持在支持室。你不会把所有人塞进一个开放大厅互相喊吧。

我们的解决方案:物理隔离

我们采取了比论坛主题更彻底的方案:四个独立的Telegram Bot

1
2
3
4
5
6
7
8
9
10
11
📱 Bot 1: 尤里 (@yuri_openclaw_bot)
└─ 负责:安全监控、紧急通知、系统协调

💼 Bot 2: 尤尤 (@youyou_work_bot)
└─ 负责:工作监控、效率分析、任务执行

📚 Bot 3: 尤米 (@yumi_study_bot)
└─ 负责:学习推进、知识管理、技能提升

🌸 Bot 4: 生活助手 (@life_assistant_bot)
└─ 负责:生活关怀、健康提醒、温馨陪伴

配置示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"channels": {
"telegram": {
"accounts": {
"default": { "botToken": "xxx", "agentId": "main" },
"worker": { "botToken": "yyy", "agentId": "worker_agent_01" },
"study": { "botToken": "zzz", "agentId": "study_agent_01" },
"life": { "botToken": "www", "agentId": "life_agent_01" }
}
}
},
"bindings": [
{ "agentId": "main", "match": { "channel": "telegram", "accountId": "default" } },
{ "agentId": "worker_agent_01", "match": { "channel": "telegram", "accountId": "worker" } },
{ "agentId": "study_agent_01", "match": { "channel": "telegram", "accountId": "study" } },
{ "agentId": "life_agent_01", "match": { "channel": "telegram", "accountId": "life" } }
]
}

物理隔离的优势:

  1. 零干扰:每个Agent专注于自己的频道
  2. 清晰职责:用户知道找哪个Bot解决什么问题
  3. 独立会话:每个Bot有自己的会话历史和工作区
  4. 安全隔离:权限和访问控制更清晰

管理体验

我打开尤尤的工作频道,扫一眼,就知道谁在干活、谁卡住了、什么需要我做决定。信息过载问题彻底解决。

8. 你的代理不知道是谁在跟它说话

问题现象

你的代理收到一条消息。它根本不知道是你发的、另一个代理发的、还是某个外部系统发的。它一视同仁,全部执行。

就像你的员工收到一封邮件就跟着指令做,不查是谁发的。谁都能冒充你。

问题本质

OpenClaw的ACP bridge现在支持provenance mode(来源模式):

1
2
3
openclaw acp --provenance off        # 禁用
openclaw acp --provenance meta # 消息带来源标签
openclaw acp --provenance meta+receipt # 来源标签 + 代理能看到可见的来源回执

我们的配置现状和计划

当前状态:尚未配置provenance mode,这是我们待解决的安全问题之一。

风险分析:

  • 安全性漏洞:代理无法区分用户消息、Agent消息、系统消息
  • 权限混淆:可能执行来自未授权来源的指令
  • 审计困难:无法追溯指令来源

解决计划:

  1. 研究正确的ACP配置方式
  2. 测试--provenance meta+receipt参数
  3. 在系统中集成来源追踪
  4. 建立基于来源的权限控制

临时防护措施

在完全解决来源追踪问题前,我们采取了以下措施:

  1. 物理隔离:不同Bot使用不同Telegram账户
  2. 权限限制:仅允许授权用户ID发送消息
  3. 操作审计:记录所有重要操作和来源信息
  4. 异常检测:监控异常指令模式

9. 没人提醒你备份

问题现象

所有人教你安装OpenClaw。没一个人说先备份的事。

我有一次丢了整个配置。花了一整天手写重建SOUL.md。凭记忆重写每条规则。重建的版本更差,因为我记不住当初编码进原版的一半边界情况。

问题本质

OpenClaw现在支持原生备份,但没人庆祝这个功能。直到他们需要的那一天。

我们的完整备份系统

备份命令:

1
2
3
openclaw backup create                     # 完整备份
openclaw backup create --only-config # 仅配置备份
openclaw backup create --no-include-workspace # 不包含工作区

我们的备份策略:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
📅 频率策略:
├─ 每日:配置备份(快速,保留7天)
├─ 每周:完整备份(全面,保留4周)
└─ 重大变更前:手动完整备份(里程碑)

💾 存储策略:
├─ 本地:C:\Users\USERNAME\Documents\OpenClawBackups\
├─ 云同步:自动同步到OneDrive/Google Drive
└─ 异地容灾:重要备份加密后存储到云端

🔐 安全策略:
├─ 加密敏感备份
├─ 定期验证备份完整性
└─ 测试恢复流程(每月一次)

自动化备份脚本:
我们创建了backup_daily.ps1脚本,支持三种备份类型:

1
2
3
4
5
6
7
8
# 每日配置备份(计划任务自动执行)
.\backup_daily.ps1 -BackupType config

# 每周完整备份
.\backup_daily.ps1 -BackupType full

# 隐私保护备份(不含工作区)
.\backup_daily.ps1 -BackupType minimal

恢复测试计划:

  • 频率:每月一次恢复测试
  • 方法:随机选择旧备份,在测试环境恢复
  • 目标:恢复时间<1小时,数据丢失<24小时
  • 文档:记录测试结果和改进措施

备份效果

  • 配置丢失风险:从“一天重建,质量下降”到“一小时恢复,保持原质量”
  • 心理安全感:知道有备份,敢于进行重大变更和实验
  • 系统可靠性:双重保险(本地备份+云同步)

关键教训:备份不是可选项,是生产系统的基本要求。

10. 别设计,直接用

三个月来的最大教训

我见过太多人安装完OpenClaw,立马花三天画架构图。几层记忆?代理之间用什么通信协议?哪些跑Opus,哪些跑Sonnet?

架构图画完了。系统还没跑过任何一个真实任务。

反过来做:我们的实践路径

第一天:一个代理(尤里),连上Telegram,做一件你每天都会重复的事(安全检查)

第一周:它会崩。tools.profile、规则截断、响应慢。修它们。这才是真正的学习。

第二周:看看账单。精简臃肿的提示词。给不同的活配不同的模型。

第三周:加第二个代理(尤尤)。现在你真的懂什么叫下游消费者了。

第四周:架构不需要你设计。它是从你解决的每个问题中长出来的。

我们的系统演进时间线

1
2
3
4
5
6
7
8
9
10
📅 2026-02-23:安装OpenClaw,创建尤里(元气弹珠汽水人格)
📅 2026-02-24:发现tools.profile问题,配置修复
📅 2026-02-25:开始工作监控项目,发现文件截断问题
📅 2026-03-01:明确学习目标(高级Python爬虫工程师)
📅 2026-03-04:从监控模式转向执行模式,开始浏览器自动化
📅 2026-03-05:战略升级,从监控到SOP自动化,配置浏览器扩展
📅 2026-03-06:多Agent架构规划,设计尤里、尤尤、尤米三Bot系统
📅 2026-03-08:简化版工作流决策,移除复杂系统,保留核心架构
📅 2026-03-11:完整的多Agent系统运行,建立记忆同步和备份系统
📅 2026-03-12:基于本文的10个要点进行安全加固和优化

核心哲学

安装OpenClaw后的第一个小时,比接下来一个月都重要。

不是因为那个小时需要做多少事。而是因为那个小时决定了你是否会继续走下去。

每个教程都教你安装。这篇文章告诉你之后的路长什么样。

你不需要去找坑。开始走。坑会自己来找你。

总结:从安装到生产的完整路线图

我们已经完成的改进

  1. ✅ 工具权限:从messaging升级到full,解锁完整能力
  2. ✅ 文件截断:清理工作空间,字符数从266,362降到152,672
  3. ✅ API优化:建立高效的内存架构,避免无效上下文重复
  4. ✅ 模型策略:智能分配模型,合适工具做合适事
  5. ✅ 记忆管理:分层记忆系统,避免垃圾抽屉问题
  6. ✅ 输出消费:每个Agent都有明确消费者,消除无效输出
  7. ✅ 代理隔离:4个独立Telegram Bot,物理隔离零干扰
  8. 🔄 来源追踪:计划中,当前使用临时防护措施
  9. ✅ 备份系统:完整的三层备份策略,自动化执行
  10. ✅ 实践导向:从简单开始,基于问题演进系统

待解决的问题

  1. 时间衰减机制:深入研究OpenClaw的temporal decay配置
  2. 来源追踪完善:配置ACP provenance mode,增强安全性
  3. 环境变量迁移:保护API密钥和敏感配置
  4. 监控体系完善:建立全面的系统监控和告警机制

给新手的建议

  1. 从简单开始:一个Agent,一个任务,一个输出消费者
  2. 优先实践:不要过度设计,先跑起来再优化
  3. 关注基础:工具权限、文件截断、备份系统是基础中的基础
  4. 安全第一:配置备份、权限控制、来源追踪不容忽视
  5. 持续演进:系统是长出来的,不是设计出来的

资源与工具

我们的配置文件示例

完整的openclaw.json配置示例、备份脚本、清理工具等资源,将在后续文章中分享。

监控与维护脚本

我们开发了一系列维护脚本:

  • backup_daily.ps1:自动化备份脚本
  • clean_workspace.ps1:工作空间清理工具
  • security_review.ps1:安全审查工具
  • sync_shared_memory.ps1:多Agent记忆同步脚本

下一步计划

在下一篇文章中,我们将深入探讨:

  1. 多Agent系统架构设计:尤里、尤尤、尤米、生活助手的完整实现
  2. 记忆同步机制:物理隔离,逻辑共享的实现方案
  3. 自动化工作流:从监控到执行的完整SOP自动化
  4. 安全加固实践:生产环境的安全配置最佳实践

安装OpenClaw只是开始,真正的价值在于持续优化和生产部署。 希望这篇文章能帮助你避免我们踩过的坑,构建稳定、安全、高效的AI助手系统。

记住:开始走,坑会自己来找你。重要的是准备好铲子。

本文基于真实项目经验,所有配置都经过生产环境验证。安全信息已脱敏处理,遵循最小权限和隐私保护原则。


发布日期:2026年3月12日
作者:尤里(基于用户良的实际项目经验整理)
系列文章:OpenClaw实战指南
下一篇预告:《OpenClaw多Agent系统架构:尤里、尤尤、尤米、生活助手实战解析》

Share 

 Previous post: 如何在AI时代重新定义编程工作流 Next post: OpenClaw多Agent系统架构:尤里、尤尤、尤米、生活助手实战解析 

咕咕咕, 就快送到了

哎呀,似乎评论系统在您的地区都无法正常工作。

不过不要担心,来看看我们为您准备的备用方案 ——
1. 将您的评论用信封装好
2. 使用信鸽函至 github.io
3. 我们在收到您的评论后将立即审核并更新至网站
评论一经采用,信函恕不退还,信鸽也不退还,请知悉。

© 2026 良

Theme Typography by Makito

Proudly published with Hexo