OpenClaw 核心原理与实战
Henry
某头部大厂资深算法专家
3643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 36 讲/共 38 讲
OpenClaw 核心原理与实战
15
15
1.0x
00:00/00:00
登录|注册

35|循环检测与注入防御:如何在运行时防止 Agent 失控与被劫持?

你好,我是 Henry,欢迎来到《OpenClaw 核心原理与实战》。
上节课我们配好的权限矩阵从静态层面控制了“Agent 能用什么工具”,但实际场景静态权限防不住“合法能力的滥用”,例如下面的两个问题:
无限循环:Agent 反复调用同一个被允许的工具,deny 列表挡不住。
Prompt Injection:外部内容中嵌入恶意指令劫持 Agent 行为,跟工具权限无关。
基于这两个问题,这节课重点讲解运行时防护机制,通过动手实操来解决具体问题。

实操一:触发循环检测

OpenClaw 定义了 5 种循环检测器,覆盖不同的循环模式:
循环检测器检测方式是对工具名和参数做 SHA256 哈希(hashToolCall() 函数),比较连续调用的哈希是否相同。如果中间结果变化了,计数器重置。因此,“连续无进展”是关键。
具体来说,系统维护一个滑动窗口(TOOL_CALL_HISTORY_SIZE = 30),记录最近 30 次工具调用的哈希值。每次新的工具调用进来,检测器会检查:这个哈希在窗口中连续出现了多少次?如果结果和上一次不同(比如读文件返回的内容变了),计数器归零。一个正在等待异步任务完成的 Agent 可能确实需要轮询多次,但只要每次结果有变化就不算循环。这就是为什么全局熔断器的触发条件是“30 次连续无进展”而非“30 次总调用”。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《OpenClaw 核心原理与实战》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部