HTTP 請求工具未返回二進制數據

描述問題/錯誤/問題

也許我忽略了什麼明顯的地方,但我試圖將 HTTP 請求工具添加到我的代理中。

我的測試正確地讓 LLM 調用該工具,但即使工具配置為返回檔案,該節點仍返回下面顯示的輸出。我預期會得到 PDF 的二進制數據。有趣的是,同一 URL 的 HTTP 請求節點如預期返回二進制數據,因為該 URL 指向 PDF。

我可能做錯了什麼?我的想法是擁有一組工具,允許我的代理推理 URL、GET 資源(html、檔案等),然後將二進制數據寫入 Google Cloud Storage。

分享最後一個節點返回的輸出

1 item[

{

"action":"sendMessage",

"sessionId":"9f1axxxxxxxxx",

"chatInput":"https://arxiv.org/pdf/2608.02569",

"URL":"https://arxiv.org/pdf/2608.02569",

"toolCallId":"call_TptExEnexxxxxxxxxxx"

}]

關於您的 n8n 設定的資訊

  • n8n 版本:Cloud 2.32.1

@datanerdery3 歡迎!

把二進制文件保留在代理之外。將 HTTP Request Tool 替換為 Call n8n Workflow Tool。代理傳遞 URL,子工作流使用真實節點進行下載和上傳,只有簡短的 JSON 收據返回給模型

Hi @datanerdery3

AI Agent 節點無法處理原始二進制流,因為附加到 LLM 的工具設計用於將文本字符串上下文傳回模型,這會導致來自 HTTP 請求工具的二進制數據被丟棄或轉換為工具調用元數據。

若要通過 Agent 下載 PDF 並將其寫入 Google Cloud Storage (GCS),Agent 應只管理控制流和 URL,而子工作流或工具則在內存/存儲中直接處理二進制流,並將元數據返回給 LLM。

感谢您的反馈。我在想 n8n 作为编排工具来控制节点的调用方式,或在这种情况下,如何在运行状态中管理上下文。我没有想到代理必须对二进制文件做任何事情,只需知道它在会话中可用,并可以告诉 n8n 如何使用另一个工具来处理二进制文件。@Hammad_gaming 我正在考虑这个方法,所以感谢您推荐它。我只是不确定这是否是「过度设计」,但现在我理解这是一个模式。谢谢。

歡迎 @datanerdery3