1780 字
9 分钟
- 次浏览
操作记忆可以保存说明,但不能直接拿执行权
读前导览

本地机器人可以记住做事说明。真正动作还是要走白名单、确认、回执和审计。

正文
1780 字
阅读
9 分钟
结构
7 节
来源线索

operation-memory-boundary-notes

operation-instructions execution-disabled whitelist-actions

本地机器人做久了,会遇到一个很小、但很容易变危险的问题:它明明已经知道“这类事情应该怎么做”,下一次还要不要重新讲一遍?

比如生成了一个文件,用户说“发给我”。系统需要知道:文件不能随便改原件,最好先放进可发送目录;发送动作不能靠一句自然语言就算完成,必须等外部平台返回确认;没有回执,就不能说“已经发了”。

这些经验如果每次都靠模型现场回忆,既慢,也不稳定。于是很自然会想到做一层“操作记忆”:把常见动作的处理说明保存下来,下次命中同类请求时直接取出来。

这一步最好先定死:记忆只负责提醒做法,不负责触发动作。

记住做法,不代表拿到权限#

很多自动化系统出问题,不一定是它完全不知道怎么做,更常见的是把“知道怎么做”和“可以直接做”混在了一起。

“发送生成文件”这类动作,看起来只是一个小功能,其实已经越过了只读查询:它会接触本地文件,会把内容交给外部系统,也会在用户那里形成一个结果承诺。

所以操作记忆里可以记录:

  • 先确认要发送的是生成物还是原始文件。
  • 需要把可发送副本放到固定出口。
  • 发送前要走受控封装。
  • 发送后要检查回执。
  • 没有回执时只能报告失败或待确认。

但它不该记录一段可以被直接执行的命令,更不该让模型把这段说明拼成 shell、脚本或网络请求。

说明可以留下,但执行入口要另放,不能混在同一段文本里。

一条操作记忆应该长什么样#

我更喜欢把操作记忆写得很窄。

它不追求“覆盖所有情况”,只描述一个可复用场景:

名称:发送生成文件
范围:本地助手
风险:外部发送
状态:启用
执行:禁用
说明:把可发送产物放进出口目录,调用已确认的发送封装,等回执再报告完成。

我会特别看“风险”和“执行:禁用”这两个字段。风险说明它可能影响文件或外部系统;执行禁用说明模型只能参考这条记录,不能直接拿它去跑命令。

实际动作仍然要进入另一层。

执行层要白名单化#

如果一个动作真的允许执行,它应该出现在白名单动作层里,不能藏在记忆文本里。

白名单动作层至少要回答几个问题:

  • 哪个动作可以运行。
  • 它能读写哪些目录。
  • 它能不能触达外部系统。
  • 它需要什么确认。
  • 它如何返回成功证据。
  • 失败时如何表达,不允许伪装成成功。

这样做会让系统看起来笨一点。

模型不能随手发明“我试一下这个命令”,不能把一段旧记忆改写成新动作,也不能在说明里夹带临时权限。它只能把需求匹配到某个已登记动作,然后让执行层判断能不能做。

这种限制会让流程慢一点,但能减少误操作。外部发送、文件写入、部署、账号操作、配置修改这类动作,出错原因可能是命令写错,也可能是系统给了模型绕开限制的机会。

回执比口头完成更重要#

自动化最容易制造的一种幻觉,是“我已经做了”。

模型很容易在计划执行完一半时给出完成感。脚本也可能只把任务提交给外部平台,却没有等到最后结果。用户看到一句“已发送”,但实际上文件没有出去,或者发的是旧版本。

所以发送类动作要看回执。外部系统返回了消息 ID、任务编号、上传结果,才算有东西可查;只有“我调用了发送流程”还不够。

没有回执,就别写“已完成”。

这听起来像一句很普通的工程纪律,但对机器人尤其重要。因为机器人越像人,用户越容易相信它说的完成。越是这样,系统越应该把“完成”这个词管严。

删除也不该是真的删除#

操作记忆还会遇到另一个小问题:某条说明过时了,要不要删?

我更倾向于归档,不做硬删除。

原因很简单:操作记忆本身也是系统行为的一部分。今天为什么这么做,明天为什么不这么做,某个风险为什么被提高,某个动作为什么被停用,都应该能回看。

硬删除会让历史断掉。归档则保留了一条解释链:

这条操作曾经存在
后来被替换或停用
原因是什么
新的入口在哪里

这对排查“机器人为什么突然不会做某件事”很有用,也能避免旧说明在某个角落被重新激活。

小系统更需要分层#

有人可能会觉得,这套设计太重了。

一个本地机器人,只是帮我处理文件、提醒、摘要、发送,为什么还要分操作记忆、白名单动作、确认、回执、审计?

我的感觉正好相反:小系统更需要把这几层分清楚。

大系统可以靠组织流程、权限平台、审计系统和多人 review 托底。个人本地系统往往没有这些东西,限制都压在代码和习惯里。一旦把“记住说明”和“直接执行”混在一起,系统扩张得越快,越难知道哪一次动作到底是谁授权的。

把操作记忆做成只读说明书,是一种很小的刹车。

它不会阻止自动化变得有用,但会阻止自动化把旧经验误当成新权限。

记住做法,不等于允许执行#

给机器人加操作记忆,第一步不是让它把常用动作自动跑起来。

第一步是关掉执行权。

我的做法是:记忆只保存做法,模型只读说明,发文件、改配置、动账号的部分交给白名单动作层。到底有没有完成,看回执和审计,不靠一句“已完成”。

这样做会让机器人慢一点,但也更不容易乱动。它可以提示下一步,外部动作仍然要走确认,并且留下回执。

我愿意长期交给本地助手的自动化,必须知道自己哪一步还没资格继续往前走。

操作记忆可以保存说明,但不能直接拿执行权
https://blog.sunmmyapi.xyz/posts/operation-memory-instructions-before-execution/
作者
Sun
发布于
2026-05-29
许可协议
CC BY-NC-SA 4.0

继续读

相关内容