1687 字
8 分钟
- 次浏览
生活助手的动作分层:模型只整理意图,脚本负责执行
读前导览

提醒、记录和购物清单这类动作,模型只负责理解和说明,真正落地交给固定脚本。

正文
1687 字
阅读
8 分钟
结构
8 节
来源线索

openclaw-memory/life-assistant-boundary

openclaw-memory:life-assistant intent-review-command deterministic-helper

做生活助手时,最难界定的是权限该开放到哪一步。

因为它处理的不是很远的工程问题,而是每天都会出现的小事:提醒我、记一下、加到购物清单、帮我看今天有什么、把这个时间别忘了。入口一旦接到聊天里,系统看起来就离“真的助手”很近。

这些功能越贴近日常,越不应该一开始就放开执行权限。

第一阶段的目标应当克制:聊天可以触发,模型可以理解意图,但执行必须先落到待确认动作和确定性脚本。先把对话接稳、状态写对、结果回清楚,再讨论更主动的动作。

日常入口不等于直接执行#

提醒、记录、清单这些需求看起来都很轻。

用户说一句:

晚上提醒我处理这件事
帮我记一下这个想法
购物清单加一项
今天有哪些待办

模型当然能理解大概意思。但能听懂这句话,和真的去改日历、写清单,是两回事。

生活助手一旦接到真实入口,动作就会碰到日历、文件、清单、消息、长期记忆。这里每一个系统都有状态,每一次写入都可能影响后面几天。让模型在对话里临时拼参数、临时决定写哪里、临时判断是否确认,短期看很快,长期会变成一团不好追的状态。

因此第一层应做成只整理动作:机器人先把用户意图归类,生成明确的候选动作,而不是直接越过确认步骤执行。

先把动作分成小抽屉#

生活助手的入口可以很自然,但内部不能混。

可以先把日常动作拆成几个分类:

  • 提醒:有时间点,需要进入日历或提醒系统。
  • 记录:没有明确时间点,适合进入 inbox 或日记。
  • 清单:有集合归属,比如购物、待买、待查。
  • 查询:只读返回今天、近期、某个清单或某段记录。
  • 修改:改变已经存在的提醒、清单或记录。

这个拆分看起来朴素,但它能挡住很多混乱。

“记一下”和“提醒我”不能混成同一个动作;“查今天”也不能顺手写入新状态;“改到十点半”必须知道改的是哪一条提醒。先分抽屉,后面才有机会把每类动作做稳定。

确定性脚本负责落地#

模型适合处理模糊语言,不适合每次从零执行状态写入。

更稳的做法是把可重复动作收敛进脚本:

reminder add --title ... --time ...
note inbox --text ...
shopping add --item ...
today show

脚本的作用是把执行动作固定下来。它知道默认日历、默认清单、文件位置、时间格式、失败返回和 dry-run 输出。模型只需要把用户意图整理成结构化参数。

这样一来,出错时也更容易判断:是模型理解错了,还是脚本执行失败,还是外部系统不可用。

先整理动作,是一层缓冲#

这里说的先整理动作,是把模型挡在直连执行权之外,让它只负责整理和说明将要发生的动作。

它可以做三件事:

  1. 识别用户想做什么。
  2. 给出将要执行的结构化动作。
  3. 在需要时要求确认或补字段。

比如时间不明确、目标清单不明确、修改对象不明确,就不应强行猜测。生活助手的体验不该依赖模型的自信去赌。

有些动作可以低风险直接落地,比如只读查询、写入普通 inbox、购物清单加一条明显项目。有些动作必须确认,比如删除、批量修改、对外发送、触碰线上服务。这些规则最好写进动作层,而不是靠对话上下文临时记住。

回包要说清楚状态#

生活助手的回复不能只说“好的”。

它应该告诉用户当前动作到底处在哪一层:

已创建提醒:今天 21:30
已加入购物清单:电池
已写入 inbox,等待稍后整理
时间不明确,请确认是今天还是明天
这里只做了 dry-run,还没有写入

这些句子不花哨,但很重要。用户要知道事情有没有进入系统状态。

尤其是提醒和清单这类日常动作,如果机器人只回一句“收到”,实际上没有落地,后续会严重损害信任。与其显得聪明,不如把状态讲清楚。

先做少打扰,不做全能人格#

生活助手很容易被包装成“懂你”的人格化助手。

但第一阶段更重要的是少打扰:

  • 不主动监听所有对话。
  • 不把普通闲聊写成长期偏好。
  • 不把临时提醒变成永久记忆。
  • 不在群聊里替某个人建立私人画像。
  • 不把一次成功执行扩展成更大的授权。

这些限制会让系统显得没那么神奇,但会更耐用。日常工具每天都在使用,问题往往始于它逐渐替你理解、记录和执行过多内容。

后续按这个顺序扩展#

如果继续往下做,可以按这个顺序升级:

  1. 先做只读查询和 inbox 写入。
  2. 再做提醒、清单这类低风险写入。
  3. 给修改和删除加确认门。
  4. 把常用流程收成固定脚本。
  5. 最后再讨论主动提醒、定期总结和跨入口联动。

这个顺序比较慢,但每一步都能单独验证。即使后面的主动能力暂时不做,前面的提醒、记录和查询也已经能稳定可用。

这样做还有一个好处:生活助手不会一开始就变成一个无法解释的黑盒。

第一阶段先不急着主动#

生活助手第一阶段不必急着像人一样主动,先把日常小动作稳定接住。

当前的分工是:聊天入口降低触发成本,模型只整理意图,待确认动作把事情摊开,脚本负责落地,确认门拦住高风险写入。

这套分工不复杂,却能让系统从第一天就清楚自己能做什么。

比起全能代理,先做一个会问清楚、会写对、会回报状态的小助手更可靠;全能能力可以日后再扩展。

生活助手的动作分层:模型只整理意图,脚本负责执行
https://blog.sunmmyapi.xyz/posts/life-assistant-action-review-before-exec/
作者
Sun
发布于
2026-05-29
许可协议
CC BY-NC-SA 4.0

继续读

相关内容