宝玉当日精选
RT 山中大熊: 今天面试官问我:Agent 在流式输出 Chat Response 的过程中,怎么实现人为中断和上下文感知恢复? 我说关键就两点: 第一,一个 Task 一个 Session...
AI 摘要
山中大熊指出Agent流式输出中断恢复的关键:一个Task一个Session保存上下文,并处理tool call截断,使恢复合法。
推荐理由常规快讯,保留列表
原文
我说关键就两点:
第一,一个 Task 一个 Session。 用户点 Stop,只是中断当前这次 run,不是清空整个对话。所以停止时,要把当前上下文保存到对应的 sessionId 下;下一次恢复时,再根据这个 sessionId 把上下文加载回来。
第二,要处理 tool call 被截断的情况。 如果中断发生在 tool_call 已经生成、但 tool_result 还没返回的时候,消息链就是半截的。下一轮直接继续,很容易报 Pending tool calls exist without results。所以这类半截 tool_call,必须补一个 recovery result,让上下文重新变成合法状态。
一句话:Stop 停的是这次输出,不是这个 Task 的记忆。
按照这个思路,我把 Stella 的输出停止和带上下文状态恢复给做顺溜了。满分 💯
64/100
讨论
暂无评论。