跳到主要內容
Open In ColabOpen on GitHub

如何從工具存取 RunnableConfig

如果您有一個 工具 調用 聊天模型檢索器 或其他 runnables,您可能想要從這些 runnables 存取內部事件,或使用其他屬性配置它們。本指南說明如何正確地手動傳遞參數,以便您可以使用 astream_events() 方法執行此操作。

工具是 runnables,您可以像在介面層級處理任何其他 runnable 一樣對待它們 - 您可以像平常一樣在它們上面調用 invoke()batch()stream()。但是,在編寫自訂工具時,您可能想要調用其他 runnables,例如聊天模型或檢索器。為了正確追蹤和配置這些子調用,您需要手動存取並傳遞工具目前的 RunnableConfig 物件。本指南將向您展示一些如何執行此操作的範例。

相容性

本指南需要 langchain-core>=0.2.16

依參數類型推斷

若要從您的自訂工具存取參考作用中的配置物件,您需要將一個參數新增至您的工具簽名,並將其類型設為 RunnableConfig。當您調用您的工具時,LangChain 將檢查您的工具簽名,尋找類型為 RunnableConfig 的參數,如果存在,則使用正確的值填充該參數。

注意: 參數的實際名稱並不重要,只有類型重要。

為了說明這一點,定義一個自訂工具,該工具採用兩個參數 - 一個類型為字串,另一個類型為 RunnableConfig

%pip install -qU langchain_core
from langchain_core.runnables import RunnableConfig
from langchain_core.tools import tool


@tool
async def reverse_tool(text: str, special_config_param: RunnableConfig) -> str:
"""A test tool that combines input text with a configurable parameter."""
return (text + special_config_param["configurable"]["additional_field"])[::-1]
API 參考:RunnableConfig | tool

然後,如果我們使用包含 configurable 欄位的 config 調用該工具,我們可以看見 additional_field 被正確地傳遞

await reverse_tool.ainvoke(
{"text": "abc"}, config={"configurable": {"additional_field": "123"}}
)
'321cba'

下一步

您現在已經了解如何從工具內部配置和串流事件。接下來,查看以下指南以了解更多關於使用工具的資訊

您還可以查看一些更具體的工具調用用法


此頁面是否有幫助?