博客 / WEEKLY #007

Agent 还在执行,新的要求该怎样生效

任务开始后才发现更合适的方向,是协作中的常态。怎样让中途补充的要求真正改变执行,并避免旧结果覆盖新决定?

页面正在生成,用户发现标题需要修改;图片还没做好,又决定换成竖版。工作进行到一半才想清楚要求,很正常。若每次都等整项任务结束,已经知道要改的部分还会继续白做。

第七期提到,原先习惯等 Agent 完成再提要求,后来开始直接在执行中补充。输入框可以继续使用以后,还要确认新要求究竟影响了哪些工作。

同一句补充,可能影响不同范围

假设 Agent 正在制作三张海报。补一个地址,通常只影响文字;横版改竖版,会影响整套布局;停下来,则需要阻止后续操作。

有些步骤尚未开始,调整计划即可。有些图片已经交给外部工具生成,未必能立即取消。产品应把这一区别告诉用户:哪部分已改,哪部分还在等待,哪些结果会作废。

Temporal 的工作流消息文档提供了一个技术参照:Query 读取状态,Signal 异步修改,Update 允许等待处理结果或错误。节目中的产品未必使用这套实现,但它说明收到消息与处理完成可以分别表示。

面向用户的反馈不需要照搬术语。说明前两张需要重做、第三张将使用新尺寸,已经足够让人知道修改有没有落到实际任务上。

旧结果晚到,最容易覆盖新决定

继续用海报作例子。横版图先提交生成,用户随后改成竖版。竖版先返回,旧横版几分钟后才到。如果系统把最后收到的文件当成最终文件,已经修好的尺寸就会倒退。

给每次请求保留所依据的要求版本,可以避免这种混淆。旧图可以留下供查看,但交付位置应指向当前要求对应的结果。若标题修改了三次,也不应让第一次生成的图片重新进入成品包。

这个问题也会出现在验证环节。代码修改后,之前的测试结果不能证明新代码通过;报表筛选条件变了,旧表格就需要重新计算。新指令影响哪些产物和检查,应一起处理。

给用户一个能确认的当前状态

多次修改之后,可以在成品旁边保留一小段当前要求:竖版、使用哪个标题、哪些图片已经更新。用户有疑问时可以直接对照,不必翻回十几条聊天记录。

状态只需在关键变化时更新。若两个要求冲突,就问清冲突的部分;能继续做的工作不必全部停下。外部操作无法中断时,应说明它还会产生什么结果,以及该结果会被怎样处理。

最终交付前,再按当前要求检查一次文件。用户想看到的是这次修改已经体现在海报里;一句已收到,还不足以让他放心关掉窗口。

相关资料