实战 09:简易 OpenClaw——安全、部署、运维与最终验收

2026-09-01
26259 分钟
...

1、本篇任务:把 Gateway 当成高权限基础设施上线

OpenClaw 类系统可能读文件、执行命令、控制浏览器、发消息和定时唤醒。安全顺序必须是:先确定谁能说话,再确定能在哪些 Session 活动,最后确定能调用什么工具。Prompt 规则排在这些硬控制之后。

2、信任边界

一个 Gateway 适合一个个人或相互信任团队,不适合作为敌对租户间的强隔离层。敌对用户使用独立 OS 用户、容器/VM、Gateway、凭证和存储。Sandbox 降低工具爆炸半径,但 Gateway 本身仍在宿主运行。

3、网络暴露

默认 loopback;远程优先可信 overlay/TLS 反代;LAN/custom bind 必须认证、真实 firewall 和最小来源。不要无认证监听 0.0.0.0。Control UI 与 Agent 生成的 HTML/widget 不共享高权限 origin,设置 CSP,视为不可信内容。

WebSocket/HTTP 连接限制 body、frame、并发、速率和空闲时间;trusted proxy 只信明确代理 IP,并正确验证 forwarded identity。

4、凭证与身份

渠道 token、模型 key、OAuth refresh token 用密钥管理或权限严格文件加密保存;不进入 prompt、memory、trace、artifact 和错误。支持轮换与撤销。Pairing code 短期一次性,尝试限速;设备/用户 token 绑定 principal 和 scopes,不使用永久共享管理员 token。

5、Tool Blast Radius

按 Session/Agent/Channel 设置 tool profile:messaging 只允许消息与必要 Session 工具;coding 允许 workspace 工具;admin 控制面工具不暴露给普通 Agent。高风险工具 allowlist/ask;路径和网络 egress 限制;外部消息、删除、发布和付款有审批/幂等。

Elevated/host execution 明确显示并默认关闭于共享 Channel。Sandbox mode 可按 all/non-main/session/agent 配置;敏感 Channel 强制 sandbox,backend 不可用时 fail closed。

6、Sandbox 加固

固定镜像、非 root、只读根、最小 mounts、资源/pids/TTL、无 Docker socket、默认无网络。浏览器使用独立网络、限制控制入口和下载;观察页面用短期 token。Artifact 离开 Sandbox 前做类型、恶意内容和密钥扫描。

7、配置治理

JSON5/YAML 配置必须 schema 验证;候选写临时文件后原子替换;保留 last-known-good 和 rejected copy;敏感字段不会被 *** 覆盖真实值;变更记录 actor/diff/version。启动失败只开放 doctor/health 等最小诊断面。

配置分环境,禁止生产继承开发的 open DMs、host exec、宽 CORS 和调试日志。使用安全审计命令/自建 audit 检查 bind/auth、DM scope、allowlist、sandbox、tools、plugin/skill 来源和文件权限漂移。

8、可观测性

关联 gateway request、channel event、identity、conversation、session、run、tool、job 和 outbound message ID。指标包括连接数、inbox/outbox 延迟、重复抑制、队列/死信、模型与工具错误、Session ownership、Cron 延迟、权限拒绝、Sandbox 资源和每用户费用。

日志默认脱敏;审计日志与调试 trace 分离;用户可查询自己的消息/Job/Memory,管理员访问也留审计。

9、备份与恢复

备份配置、身份映射、Session/Memory、Jobs、Inbox/Outbox、审计和 artifact metadata;密钥单独备份。演练数据库恢复、Channel token 轮换、丢失 Sandbox、队列重放和 Gateway 切换。恢复后依靠事件/消息幂等避免重新发送历史动作。

10、发布流程

固定镜像与依赖 → staging 接测试 Channel → 协议兼容/迁移 → 安全测试 → 代表性 Agent eval → 小范围 identity allowlist → 观察指标 → 扩大。回滚包括二进制、配置、插件/Skills、数据库 schema 与 Agent prompt/model。

11、故障演练

模型不可用时队列降级;渠道 429/断连时不丢不重;数据库短暂故障时不 ACK 未持久事件;worker 在外部发送后崩溃仍去重;Gateway 重启后 Cron 不重复;Sandbox 逃逸尝试被阻止;被盗 token 撤销后现有连接失效;恶意 Skill/插件安装被供应链策略拒绝。

12、最终验收矩阵

维度通过标准
身份未配对用户、越权角色、转发审批均失败
隔离DM/群/租户/Agent/Memory/Workspace 无串读
可靠性webhook、queue、send、cron 重试不重复副作用
恢复Gateway/worker 重启后 Session、Job、审批可继续
工具deny/ask/allow 可解释,Sandbox/路径/网络策略生效
质量固定 eval 覆盖路由、工具、拒答、安全和成本
运维health、metrics、dead letter、audit、backup、rollback 可操作

达到以上标准,你实现的不是完整 OpenClaw,但已经拥有其最重要的工程骨架:中心 Gateway、多渠道适配、Session 与身份、可靠消息、长期记忆、Skills、调度、多 Agent、Sandbox 和运维闭环。

官方参考:OpenClaw SecuritySandboxingConfiguration

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
AI2026-09-01
Deep Agents 01:何为 Agent Harness,以及如何开始
1、本篇任务:完成一份多步骤、带证据的技术调研 普通客服 Agent 的问题短、工具少、输出即时。技术调研或编码任务会持续很久,产生计划、搜索结果、文件和中间结论。Deep Agents 在 LangChain/LangGraph 之上预装规划、虚拟文件系统、上下文压缩和子 Agent,适合这类开放任务。 本课让 Agent 比较两种向量数据库,并交付一份可验证报告。 2、什么时候需要 Deep Agent 满足以下两项以上再考虑:任务...
学习
AI2026-09-01
Deep Agents 02:子 Agent、虚拟文件系统与长期记忆
1、本篇任务:让主管只看结论,让子 Agent 处理细节 技术调研会产生几十次搜索和大量文件。如果全部进入主管上下文,真正的目标会被噪音淹没。本课用两个子 Agent: 收集证据, 检查结论;主管负责计划与最终合成。 2、什么时候委派,什么时候直接调用工具 适合委派:子任务有多步;需要专门提示或工具;会产生大量中间结果;只需返回有限结论。不适合:一步查询;主管需要全部中间上下文;协调成本超过任务本身。 3、配置专门子 Agent Pyt...
学习
AI2026-09-01
Deep Agents 03:生产化、Sandbox、权限与上线验收
1、本篇任务:让 Deep Agent 在隔离环境中分析代码 只读研究 Agent 风险有限;编码 Agent 需要读写文件、安装依赖和执行测试。本课不讲如何让模型写更漂亮的代码,只讲执行环境、权限、恢复和上线验收。 2、先做威胁模型 资产包括源代码、用户文件、云凭证、生产网络和发布权限;攻击入口包括用户消息、仓库内容、网页、依赖包、MCP 返回和命令输出。 Prompt injection 不是靠一句 system prompt 解决...
学习
AI2026-09-01
LangChain 01:全景、原理与学习路线
1、本篇学完要得到什么 这一篇只解决三个问题:LangChain 到底负责什么;它与 LangGraph、Deep Agents、LangSmith 是什么关系;后面应按什么顺序学习。 贯穿整套课程的项目是“退款政策与订单助手”。它最终能够:回答知识库中的退款规则;查询当前用户的订单;生成结构化答复;对真正的退款操作进行人工审批;断线后恢复;通过评测后发布。 先记住一句话: 模型负责理解与生成,应用负责数据、权限、状态和副作用。 如果把...
学习
AI2026-09-01
LangChain 02:模型、消息与结构化输出
1、本篇任务:让模型输出成为程序可以依赖的合同 上一课只证明 Agent 能运行。本课暂时不接业务工具,只完成一个“客服分诊器”:输入用户问题,输出意图、紧急程度、是否需要人工和给用户的答复。 本课的核心不是学更多模型参数,而是理解三层合同:消息决定模型看到了什么;schema 决定程序期待什么;业务校验决定结果是否真的可用。 2、消息不是一段字符串,而是一条执行记录 一次工具型对话通常包含四种消息: | 类型 | 由谁产生 | 作用...
学习
AI2026-09-01
LangChain 03:工具与 Agent——从函数到可控行动
1、本篇任务:让 Agent 安全地读取订单 上一课得到结构化分诊结果,但模型不知道真实订单。本课增加一个只读工具 ,走通完整 Agent 循环,并把模型、工具包装和领域服务的责任分开。 完成后,用户问“我的 A100 发货了吗”,Agent 会选择工具;工具只按当前登录用户查询;模型基于工具结果回答。它仍然不能退款,因为我们没有提供写工具。 2、工具的本质是受 schema 约束的应用函数 一个好工具需要:稳定名称、清楚描述、窄输入...
学习

评论

请登录后发表评论

去登录
加载评论中...

目录