Bug: OpenAI Responses API tracing does not include tools in generation input

用户通过 from langfuse.openai import openai 或 from langfuse.openai import AsyncOpenAI 创建客户端,并调用 client.responses.create(...) 时触发。在 Chat Completions 接口下 to

快速结论:使用 Langfuse 的 OpenAI SDK 集成追踪 OpenAI Responses API 调用时,tools 参数被丢弃,导致 trace 中无法查看模型可用的工具列表。优先检查 langfuse 版本是否为 4.6.1 或更早,并等待 SDK 修复。

问题场景

用户通过 from langfuse.openai import openai 或 from langfuse.openai import AsyncOpenAI 创建客户端,并调用 client.responses.create(...) 时触发。在 Chat Completions 接口下 tools 可正常被 trace,但 Responses API 的 trace 中 tools 字段缺失。

报错原文

# 没有运行时报错,表现为 trace 数据不完整。
# Langfuse trace for responses.create(...) only shows the user input / instructions.
# The tools field is missing.

原因分析

Langfuse 的 OpenAI 集成内部使用了两个不同的提取函数来处理 Chat Completions 和 Responses API 的 trace 数据:_extract_chat_prompt 和 _extract_responses_prompt。_extract_chat_prompt 明确包含了 tools、functions 和 function_call 字段,但 _extract_responses_prompt 只处理了 input 和 instructions,没有包含 tools、tool_choice 或 parallel_tool_calls。因此,虽然向 OpenAI 的实际请求中包含 tools,但 Langfuse 的 trace 载荷丢弃了这些信息。

环境排查

  • langfuse(Python SDK)版本:4.6.1(issue 中使用的版本)
  • openai 版本:2.36.0
  • API 调用方式:client.responses.create(...)
  • Langfuse 集成方式:from langfuse.openai import openai 或 from langfuse.openai import AsyncOpenAI

解决步骤

  1. 确认版本:检查当前使用的 langfuse 版本。如果小于或等于 4.6.1,则受影响。
  2. 等待或贡献修复:该问题需要在 langfuse/langfuse-python 仓库中修复。修复方式是在 _extract_responses_prompt 函数中添加对 tools、tool_choice、parallel_tool_calls 的处理,类似 _extract_chat_prompt 的设计。可优先尝试检查是否有新的 SDK 版本已包含此修复。
  3. 临时规避:如果必须使用 Responses API,可以考虑不通过 Langfuse 集成直接调用 OpenAI SDK,并使用 Langfuse 的其他方式手动创建 trace(但会增加代码复杂度,Issue 中未提供具体实现,仅作思路提示)。
  4. 跟踪进展:关注 GitHub Issue #13763(链接见参考来源)的更新状态。

验证方法

修复后,重新运行最小复现代码,检查 Langfuse 控制台中对应的 trace 记录,确认 generation input 中是否包含了 tools 字段(例如 "tools": [{"type": "function", "name": "get_weather", ...}])。

参考来源

langfuse/langfuse #13763

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25994

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注