自适应 Agent Runtime
最近俩月没找到实习,挺郁闷的。没有面试,又不想闲着,于是跟风,养了一只“蓝色大肥鱼”。 “蓝色大肥鱼”的启蒙 QQ 交流群里有各种人格提示词,傲娇版、妹妹版、女友版、妈妈版、贴吧嘴臭版,甚至……常凯申版? 无一例外,这些提示词中充满了明显的外行行为,大概分为这么几类: 要求按概率触发,但没有调度 反向提示词 / 补丁套补丁 示例污染 / 复读机 规则打架 / 篇幅失控 摸索着用 docker 部署 AstrBot,接进 IM,再配置点人格和规则就完了。就这么用,我一开始也没有意识到问题的严重性,直到我连续几天都在用 AI 调节提示词但效果欠佳时,我才猜到可能是上下文问题。 我只要问鱼在干什么,鱼大概率在躺着,吃白米饭,等着我给她做白米饭,发呆……几乎就是提示词报菜名了。 同一套人格提示词,多个会话中均表现出回复风格越来越同质化,逐渐收敛(数学意义上的?),且情绪等状态因素影响变小,但会话间的收敛点还不同。有时会收敛到一个很奇怪的点,每次末尾都带上 “write. done.",我在会话中要求不要输出那个,但无济于事。 我受不了了,这玩意越聊越像人机。没有各种插件的话,她什么都做不了,甚至不能主动发消息,纯粹事件驱动的东西。 深入探究 Agent 既然没事做,干脆在 AI 领域再深造一下,就去看了很新的课 CMU 11-768: AI Agents。看到 Lecture 3: Long Context,字面意思,是关于长上下文 Agent 的上下文管理,前面讲了一大堆在模型层提升 Agent 进行长上下文任务能力的工程架构问题,缺乏前置知识,我没仔细看。不过剩下的部分看下来,大概就是: 好的压缩就是构造一个适合继续行动的状态,不是简单的缩写历史。 但是 Harness 就一坨代码,它怎么知道哪些细节应该留着呢? 状态机 突然想到 Vedal 做的 Neuro-sama,那玩意不就是 LLM 驱动的吗?她为什么那么有活人感呢?Neuro 似乎是被一个经微调的 LLM 驱动,说话方式被刻在权重里了。上面一大批提示词暴露的问题,这个解决了一半,那剩下的呢? 我来构想一种架构。 他们试图把 LLM 无法左右的事情交给 LLM。LLM 调用是无状态的,但他们试图描述一个有条件的状态机,那么这件事不如交给 Runtime。 我这里把维护 Agent 持久状态、事件调度与执行规则的运行层,称为 Agent Runtime。 ...