Python:空工具结果失去关联并失败序列化
作者: YusefSyed创建于 2026年9月2日更新于 2026年9月10日
** 描述错误**
ChatHistory.add tool message ()' 放弃了空字符串工具的结果,而不是将其保留为功能效力 ' 。 所附信息仍有 " 工具 " 的作用,但其 " 项目 " 清单是空的,所提供的 " 工具 call id " 丢失了。 将原本普通的历史信息序列化,然后产生IndexError',因为ChatMessage Content.to dict ()'期望工具信息包含函数结果。
空字符串是对成功命令等没有stdout或没有op工具的大小写的有效工具结果. 帮助器将“内容”作为字符串,需要“tool call id”;即使字符串为空,它也应保留两者。
** 复制**
从语义 内核. contents.chat history 导入 ChatHistory
历史 = 查特历史 ()
ưμ㼯A
messages [-1] (中文(简体) ).
打印(message.role.value、len(message.items))
打印( message.to dict())关于目前的主要'(3438d882'):
页:1 工具 0 索引错误: 列表索引超出范围
没有涉及模型、提供者、证书或网络请求。
** 起因和拟议范围**
`ChatHistory. prepare for add ()' 目前仅当`内容'属实时,才构建`功能效力 ' :
[Python]
如果角色 \ \ \ \ \ \ \ \ \ TOOL 和内容而非项目 :将“内容”改为“内容”并不保留现有行为,同时允许有效的空结果保留“结果”、“id”和“ call id”。 重点回归既应坚持 " 功能关联 " 字段,也应坚持系列化工具信息词典。
这与#13678有关,但与它不同:对于手动构造且无项目的工具消息,PR改进了Azure适配器的错误. 问题在于防止公众“ ChatHistory.add tool message ()” 当其所记录的字符串输入为空时, 帮助创建无效形状 。
** 预期行为**
帮助者应当将一个功能反应连接 ' 与空结果相附加,并提供呼叫ID,而message.to dict ()'应当生成有效的工具信息,而不是提高。
** 格式**
- 语言:Python
- 来源:3438d882号“主要”资料库。
- AI模式:不适用
- OS: macOS; 无供应商复制
一旦维护者确认合同,我可以提交重点明确的上游变化和回归.
内容来源: microsoft/semantic-kernel