fix: 修复 s07 reminder 注入破坏 tool_result 顺序的问题#298
Open
neystan wants to merge 1 commit into
Open
Conversation
|
@neystan is attempting to deploy a commit to the crazyboym's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@neystan +++++ |
Author
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
s07_skill_loading/code.py中的 reminder 注入逻辑会在特定情况下修改上一条 user 消息内容。相关代码在agent_loop()中(347-352 行):当上一条 user 消息本身是工具调用返回的
tool_result列表时,当前实现会在列表最前面插入一条普通textblock,导致tool_result不再紧跟对应的tool_use,从而触发 API 校验错误。问题表现
在执行多轮工具调用后,可能出现类似报错:
修复方式
采用
s06的方法,将 reminder 改为追加一条独立的 user 消息,而不是修改已有的tool_result消息内容。修复后可以保持工具调用消息结构稳定,不会再破坏
tool_use -> tool_result的顺序约束: