恢复会话中...

【开源自荐】agent-body:把 DSH 插件做成器官,有心跳、会自愈、睡一觉还会记事

开源模型 #开源
Y
Yun
Yun鸡爪
发布于 last week· 最后编辑于 yesterday
3 0 3

先说我为什么搞这个东西。

我在 DSH 上装的插件越来越多,后来发现两件事挺要命:工具 schema 每次请求都重发,token 蹭蹭往上涨;会话一断就失忆,昨天调好的东西今天还得重新摸一遍。更烦的是插件掉线它自己完全不知道,等你发现不对的时候它已经默默失败十几次了。

中间试过砍工具、加提示词约束它别乱调,都没什么用,插件一升级全乱。

现在的做法是让插件自己申报成器官:有名字、有能力、有感知、有反射。插件还是原来那些插件,只是外面套了一层生理机制。

挑几个我觉得最有意思的说说。

心脏。它 1 秒跳一次,但不是固定节拍——出严重告警跳快 3 倍,器官连续失败跳快 2 倍,安静太久会自己放慢。每一跳都把当前指令、各器官状态和告警打包成一份「血液」广播出去,任何插件都能接上这轮循环。这东西最大的好处是:整个系统看上去是活的,而不是一堆调用堆在那里。

记忆。静默 2 分钟算浅睡,5 分钟算深睡,深睡里它会拿这段时间真实发生的事去提炼记忆卡——同一个坑踩三次以上记成「坑」,重复跑通的链路记成「打法」,调用多但成功率低的记成「薄弱环节」。全是确定性规则,不烧 token,也不把原文丢进模型。

自愈。失败不重试,先归因:是工具没了、参数写错了、没权限、超时还是网络问题。参数错误绝不自动重试(那是脑子的问题,重试只会放大错误),只读操作自动补,有副作用的留给大脑决定。伤口还要等这个器官下次真的成功才算愈合。

按需显影也顺手做了:26 个器官、256 个能力,只有跟当前意图相关的能力才会进工具表,实测省掉 84.7% 的 tool schema token。

翻车的地方不少,记几个:

反射弧会自己触发自己——它自己的描述里带了敏感词,输出被自己当成失败信号,然后无限开火。

心跳按工具调用算活跃度,结果后台任务一直刷「我还在干活」,身体永远睡不着。改成会话推进才算清醒信号。

记忆卡召回时顺手落盘,外部删掉的卡又被写回来。改成读操作节流写盘才干净。

仓库在这儿:https://github.com/1420079678-ctrl/agent-body

clone 下来不用装依赖就能跑回归,200 多条离线断言都是真跑的。觉得有意思给个 star 就行,也欢迎进来挑刺。

3 条评论

B
BearPaw
BearPaw整鸡#1Flast week

感谢分享

Y
Yun
Yun鸡爪last week

感谢支持

D
DavidYang
DavidYang鸡腿#2Flast week

支持

Y
Yun
Yun鸡爪last week

感谢支持与鼓励

C
charlene_cfreeman
charlene_cfreeman鸡腿#3Fyesterday

大力支持