关于Langchain结构化工具调用后直接触发Agent Finish的实现咨询
Langchain工具调用后触发Agent Finish的实现方案
你用Langchain的Tool类创建的工具,没有直接支持调用后自动触发agent finish的kwargs参数,但不需要完全重新制作BaseTool,有两种简便方案:
修改工具函数的返回值,植入终止标识
在你的get_stock函数返回结果时,添加特定的终止标记(比如"FINISH: " + 股票数据内容),然后在agent的提示词(prompt)或者输出解析器中配置规则:当识别到这个标记时,直接触发agent的finish动作。基于BaseTool做轻量自定义
不用从零实现BaseTool,只需继承它并封装原有逻辑:from langchain.tools.base import BaseTool class FinishableGetStockTool(BaseTool): name = "GetStock" description = get_stock_description def _run(self, query: str): result = get_stock(query) # 这里可以返回让agent识别为终止的结构,或者根据agent类型返回特定Signal return {"result": result, "finish": True}之后在agent的逻辑里判断工具返回的
finish字段,触发finish。
原工具定义代码:
Tool( name="GetStock", func=get_stock, description=get_stock_description, )
内容的提问来源于stack exchange,提问作者Axen_Rangs
相关产品推荐
相关产品推荐

