一次多agent情况下openclaw不回消息问题的排查经过(使用飞书通信,持续更新中~~~)

一、背景:

我有三个智能体助手,小猿潘负责编码,小产潘负责产品,小测评负责测试,目前和小袁潘和小产潘交流较多,刚开始交流都挺顺畅,但是慢慢的,小猿潘和小产潘会出现不回消息的情况,其中小猿潘问题尤为严重。

二、补充学习基本概念
2.1 token类型

openclaw对token类型进行的区分:input、output、cache read和cache write(这个我问了deepseek,回答如下)

总结一下,就是这四种token都要收你钱的,就是价格不一样而已,cache write 是你一次性发给大模型写入大缓存的,这是你主动写入的;而cache read是大模型从它内存的cache读取的上下文,这个动作是发生在大模型提供商那边。
问题的关键是:

  1. 是不是所有模型都支持cache的这种机制的,尤其是对于我所用的GLM code plan模型?
  2. 缓存的什么周期如何控制呢
    从deepseek给我的回答看,这个心跳间隔的设置,对于cache的成本影响还是很大的,尤其是新手如果会话重开的频率比较频繁的时候,感觉上这个心跳是依赖于会话存在的,如果会话关闭了,心态就停了,缓存也就没了,重开会话就得重新发一次缓存,这一次的收费应该较高;另外如果间隔设置不合理,也会导致缓存太快失效,导致每次发消息都得重复发送一次?这里先有一些概念,后面有时间再深挖吧。。。。。

    三、排查经过
    2.1 通过dashboard查看三个智能体的session的token增长情况
    小猿潘的token增长是最多的,不知道是否因为是开始写代码的原因,它是否每次和大模型交互,都会把整个工程代码和中间编译结果都发给大模型,导致token/上下文迅速增加,超出大模型处理限制从而导致异常?

    2.1.1 小猿潘的token增长,如下:
    在早期cache还是很明显的,但是后面再token/上下文长度见顶之后,就没有使用cache了,是因为开始写代码,建工程了吗,这里先抛出几个疑问
    **疑问一:**如果openclaw在本地发现上下文太长,主动对上下文进行修剪或者压缩,对之前的缓存是什么影响
    **疑问二:**服务商会提供多大的cache容量呢,如果我本身代码仓库就比较大,是否会有问题
    **疑问三:**这个是否进行缓存的动作是由openclaw主动控制的,还是由大模型体提供商控制的。
    我又把疑问抛给deepseek,他的解答大概是:压缩后会破坏缓存,然后重建之后会重新命中,cache容量一般无限制,但是缓存时间有限制,一般由openclaw通过cache_control进行控制是否要进行缓存。(但是到平台期后我并没有发现有重新命中的迹象?这又是为什么呢?)
    相关参考资料:
    (1)GLM文档(自动隐式缓存):https://docs.bigmodel.cn/cn/guide/capabilities/cache
    (2)阿里云的prompt cache策略:https://developer.aliyun.com/article/1713315
    (3)csdn openclaw配置策略:https://blog.csdn.net/qq_28809177/article/details/157909207

    2.1.2 小产潘的token增长,如下:

2.1.3 小测潘的token增长,如下:

2.2 翻阅openclaw相关文档 (没有太多帮助)

https://docs.openclaw.ai/gateway/troubleshooting(官方文档)

https://zhuanlan.zhihu.com/p/2003144607068861314(知乎的命令合集)

2.3 分析openclaw日志

看到了一些超时的报错信息,不知道在openclaw在遇到超时,会有什么具体表现?有点怀疑我把编程、产品、测试划分到不同独立agent中这种编排工作流的方式是不是不太合理。

其他的把飞书重复插件的问题解决了一下

2.4 参考这个配置了一下,还是命中还是没变化,放弃了,直接/new,建新会话了。。。。。

{

"agents": {

"defaults": {

"contextPruning": {

"mode": "cache-ttl",

"ttl": "5m",

"softTrimRatio": 0.3,

"hardClearRatio": 0.5

},

"compaction": {

"mode": "safeguard",

"reserveTokensFloor": 20000,

"memoryFlush": { "enabled": true }

},

"heartbeat": {

"every": "55m"

},

"memorySearch": {

"provider": "local",

"fallback": "none",

"cache": { "enabled": true }

}

}

}

}


今天是3/8号

我的三位助手给我写的日报,写了3/9号,在没有AI之前,为了防止口口相传,避免的人的随意性,我走上了标准化,我们利用计算机的确定性。但是现在我们好像回到了以前用语言来沟通,跟踪任务的执行。如果我把AI看作我的助理,是一个人,而不是确定性的工具,那感觉是放弃了标准化,回到了莽荒时代吗,我用什么约束AI,为了实现它,再开发一个复杂的系统吗?有点疑惑,也可能是没找对应用场景,记录一下。。。。。

相关推荐
程序新视界5 小时前
专业人士是如何看待OpenClaw(龙虾)的?
ai编程
可观测性用观测云7 小时前
代码智能体如何重塑工程、产品与设计工作
ai编程
itpretty7 小时前
在 Claude Code 里手搓一个工作流
人工智能·ai编程·claude
小猿君7 小时前
AGI理想褪色:OpenAI战略转向背后,AI编程范式的重构与博弈
重构·ai编程·agi
心在飞扬7 小时前
我把本地文档 RAG 做成了可用系统:Flask + Vue3 + LangChain + FAISS(多知识库 + 流式输出)
langchain·openai·ai编程
宝桥南山8 小时前
GitHub Copilot - 尝试一下Plan mode
microsoft·微软·github·aigc·copilot·ai编程
海上日出8 小时前
智能定投全攻略:用 Claude Code 写个定投机器人,年化收益跑赢 90% 基民(完整代码)
ai编程
程序员老刘9 小时前
Flutter 官方Skill发布,对开发者意味着什么?
flutter·ai编程·客户端
与虾牵手9 小时前
用 Python 从零搭一个能用的 AI Agent,踩完坑我总结了这套模板
python·aigc·ai编程