当审批恢复流程经过 next_step_run_again 时,延迟中断转换会话项永远不会被保存,导致 function_call_output 变成孤立对象。

作者: dixso创建于 2026年9月2日更新于 2026年9月15日
标签feature:sessions

□ 总结

自封锁输出推迟(# 4507, 0.22.0 中放出) 后, ** ** 输出-护卫' ** 和 ** 工具-使用-行为'!= "运行-再运行" 推迟 当“ 需要 核准” 工具园区时, 会话项目被中断 (在`run Internal/block output.py'中, 应 延迟 中断 session items')。 公园时间 用于该转弯的会话是 " [ [] " 。

但当批准被恢复时,批准的工具不是****一个终端工具(所以 已解决的转弯下一步是“ 下一步 step run again” , 任何代码路径都不会坚持推迟 条目: 恢复侧写( QQ save summed items " ) 和最后产出扫描 (最后 turn items for persistence')只涵盖最终响应的项目.

会议结果:从未写出 " 职能-召唤-产出 " 。 在下一个`Runner.run (., session=session)'上,提供者拒绝全程对话:

OpenAI. BadRequestError:出错代码:400 - 找不到函数调用的工具调用
用 call id call ORPHAN 输出

由于孤儿在会话中是耐受的,因此以后的每一轮都以同样的方式失败; 对话是永久的死亡。

调试信息

  • SDK代理版本:`main ' @ 89c02c82(也影响到已发布的0.22.0,该版本早先与#4611失效)
  • Python版本:3.12
  • 操作系统:Linux(Python:3.12-slim容器)和macOS
  • 型号和型号提供者:不需要 " 代理人.测试 " 。 脚本模型 '
  • 问题是否与SDK特工发布? 0.22.0无法到达:履历先以#4611死亡. 在 " main " (其中第4613号规定)上复制。
  • 问题是否一贯或断断续续地发生? 始终如一,百分百决定.

□版本矩阵(同为复制器,有三种版本)

++版本++结果++ |-|-|-. 好:停放的"功能-呼叫"在中断时写出,对接完成 QQ 0. 22.0 QQ 恢复先用 “ 用户: 无法恢复带有输出护栏的序列式批准检查点... ” (# 4611) QQ @ 89c02c82 @ 恢复收益(# 4613), 工具执行, 但停放的“ 函数 call” 从未持续 ~ ** 孤立的产出, 被API 永久拒绝的会话** # @

因此,0.22.0把这个隐藏在#4611后面;#4613解封了简历并被曝光.

□ 最小复制器

无 API 密钥,无 网络 ( " 脚本模型 " , " SQLite Session " )。 唯一能超越的 " tests/test hitl session scenario.py "是(a) 代理人有输出-护栏'和 StopAtTools',与推迟门相匹配,并(b) " 运行状态 " 往返JSON, 作为任何在自己的商店(Redis,一个DB行)中停放批准并稍后恢复的应用程序 进程必须如此。

导入 Ayncio
导入 json

进口代理商(
探员
护栏功能输出,
奔跑者,
运行状态
会议,
停止阿图尔,
函数工具,
输出 护栏,
(中文(简体) ).
从
. . . . . . .

内容来源: openai/openai-agents-python