读取过,不代表现在仍然有效
一次文件任务可能经过读取、分析、生成修改内容和等待审批。Agent 真正写入时,编辑器或其他进程可能已经修改了同一份文件。
如果直接覆盖,模型给出的修改即使本身正确,也可能丢掉其他人的工作。问题发生在读取与写入之间的时间窗口,不能仅靠提示词约束解决。
把读取证据交给运行时
PersonalAI 记录文件读取证据与版本信息,在修改阶段重新校验文件状态,再采用原子写入。这里需要区分两个问题:写入依据是否仍然有效,以及写入过程是否会暴露不完整内容。
重新校验用于发现过期依据;原子写入用于避免读者看到部分写入的文件。两者各自处理不同的风险,不能相互替代。
- 读取时保留可用于后续校验的证据。
- 修改前核对当前文件状态,发现外部变化后避免静默覆盖。
- 由运行时管理文件哈希、版本和审批 ID,分离业务参数与执行控制元数据。
状态正确,还需要实际授权
文件没有变化,不代表这次操作已经获得许可。模型提出的调用参数、用户的实际意图,以及运行时最终允许的操作范围,需要分别判断。
项目将工具授权与敏感路径保护放在执行边界中,并结合历史禁止约束和对话内授权复用。一次允许不能自动扩大为对其他路径或其他操作的无限授权。
把边界展示出来
在界面上展示任务计划、审批状态和文件 Diff,能帮助使用者理解:准备执行什么、当前为什么等待,以及最后改了哪里。
这些机制降低了过期覆盖和越权操作的风险,但不等于任意外部工具副作用都可以回滚。任务恢复仍需要结合具体操作的执行语义。
本文根据项目介绍整理,侧重设计思路。具体功能状态与演示开放情况,请以项目页为准。
了解 PersonalAI