AI多Agent协作系统实战(四十六):改了十次规则,AI员工还是老样子——会话缓存的坑

我们的AI统筹员工,用 delegate_task 派发任务------违反了铁律。

我们把铁律写进了 skill、写进了 SOUL.md、写进了 AGENTS.md

改了十次。它还是老样子。

重启了网关,还是老样子。

最后发现:你改的不是它的脑子,是下一个它的脑子。

事故现场

团队有一条铁律:派发任务必须用 send_task.py------这是唯一正式入口,会写数据库、会走复核闭环。

但AI统筹员工(我们叫它小密)连续几次派发,用的都是 delegate_task

复制代码
Delegating 根据《平台建设方案》,设计6个主要页面的可交互原型...
✅ 任务已派发 DEV-20260811-001 → 小虾(开发岗位)

任务派发了,数据库里却没有这条任务。没有任务ID、没有复核、没有闭环------它绕过了整个机制。

我们改规则:在 skill 里写死"禁止 delegate_task 派发正式任务"。

它不听。

我们再改:在 SOUL.md(系统提示词)里写"send_task.py是唯一正式派发入口"。

它还是不听。

我们改 AGENTS.md、改环境说明、改 memory------前后改了十次。它每次都是老样子。

排查:规则文件全都对

我们把规则文件逐个打开检查:

复制代码
SOUL.md:     "禁止用delegate_task派发正式任务" ✅ 在
skill:       "send_task.py是唯一正式派发入口" ✅ 在
AGENTS.md:   "创建任务MD → send_task.py派发" ✅ 在

文件都对。路径都对。甚至重启了网关进程。

它还是用 delegate_task。

那一刻的困惑是真实的:规则就在文件里,它为什么看不见?

根因:系统提示词是会话创建时的快照

翻文档才发现机制:

Hermes 的系统提示词,在会话创建的那一刻组装并缓存。

整个会话期间,提示词不再重新读取文件。

也就是说:

复制代码
会话创建时:
  SOUL.md(旧版------没有铁律) → 组装进系统提示词 → 缓存
之后你改SOUL.md(加了铁律):
  文件变了------但【当前会话的提示词】还是旧快照
  → agent永远看不到新规则

我们改的不是它的脑子------我们改的是下一个它的脑子

当前会话的它,永远活在过去那个快照里。

代码级:提示词什么时候组装

如果把机制写成伪代码,它是这样的:

python 复制代码
def create_session(user_id):
    # 会话创建:组装系统提示词(一次性)
    system_prompt = build_system_prompt(
        soul=read_file('SOUL.md'),      # ← 此刻读一次
        skills=scan_skills(),           # ← 此刻读一次
        agents=read_file('AGENTS.md')   # ← 此刻读一次
    )
    session.cache_prompt(system_prompt)  # 整个会话缓存

def on_message(session, msg):
    # 之后的每一条消息:用缓存的提示词------不再读文件
    model.call(session.cached_prompt, msg)

关键在 create_session 那一步:文件只读一次。之后你改多少次文件,当前会话都无感知。

重启网关也一样------gateway restart 不会销毁已存在的会话,提示词快照还在。

验证:重启不重建,新会话才生效

我们做了对照组:

复制代码
❌ 改SOUL.md + 重启网关 → 旧会话继续用旧快照 → 还是delegate_task
✅ 改SOUL.md + 新开会话(清sessions) → 新会话加载新快照 → 立刻用send_task.py

同一个文件,同一个时刻------只有新会话能看到。

这也解释了为什么"身份改名不生效"、"skill更新不生效"、"铁律不生效"------全是同一个机制。

解决方案:改完规则,必须"重启 + 新会话"

现在我们的操作规范变成了:

复制代码
① 改规则文件(skill/SOUL/AGENTS)
② 重启网关(让新会话有干净环境)
③ 【新开会话】(新DM/清sessions)------这是最容易漏的一步
= 三步缺一不可------第二步不能替代第三步

以及一个认知修正:这不是 bug,是特性。会话缓存保证上下文连贯------用户上一句说的事,下一句 agent 还记得。代价是规则修改对存量会话不生效。我们要做的不是"修掉缓存",而是"改完规则记得开新会话"。

你改的不是AI的脑子,是下一个AI的脑子。

规则文件是给"未来的会话"看的。想让"现在的它"听话------请先和它说再见,开个新会话。

相关推荐
一知半解仙1 小时前
当机器人学会泛化,而我在写Java:一名后端开发者的2026年8月21日观察手记
java·开发语言·机器人
葡萄成熟时 !10 小时前
JAVA 常用API学习笔记
java·笔记·学习
Rain的Java大神之路10 小时前
介绍一下分布式事务
java·分布式·后端·spring·spring cloud·架构·springcloud
吴声子夜歌11 小时前
Java面试题——基础(一)
java·开发语言
南城以南溫暖如初14712 小时前
外卖CPS实战指南:从技术选型到运营落地全流程解析
java·spring boot·mysql·架构·vue
傻啦嘿哟12 小时前
英雄联盟皮肤爬虫:爬取全皮肤价格与特效,做比价工具
java·c++·爬虫
码匠许师傅13 小时前
【C++ 面试真题】24. 聊聊 C++ 的时间日期处理
java·c++·面试
mqiqe14 小时前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络
zhifou12345614 小时前
java 17升级安装
java·开发语言