langchain1.X学习笔记-18-智能体高级用法之详解ToolStrategy策略的tool_message_content参数和handle_errors参数
文章目录
- 1 tool_message_content参数
- 1.1 参数含义
- 1.2 模型初始化
- 1.3 示例(默认情况)
- 1.4 示例(自定义tool_message_content)
- 2 handle_errors参数
- 2.1 参数含义
- 2.2 模型初始化
- 2.3 设置为True/False/固定字符串
- 2.3.1 handle_errors设置为True
- 2.3.2 handle_errors设置为False
- 2.3.3 handle_errors设置为请检查输入数据
- 2.4 设置为指定异常类型
- 2.5 设置为自定义错误处理函数
采用ToolStrategy策略处理结构化输出时,LangChain会在消息列表末尾追加一条Tool_message,让整个链路完整。但实际上没有实际的工具执行,这是一条伪消息。ToolStrategy通过其handle_errors参数 提供了结构化过程错误处理策略。
1 tool_message_content参数
1.1 参数含义
自定义工具消息:tool_message_content参数。
如果采用ToolStrategy策略处理结构化输出时,LangChain会在消息列表末尾追加一条Tool_message,让整个链路完整。但实际上没有实际的工具执行,这是一条伪消息。
我们可以通过ToolStrategy的tool_message_content参数定制其消息内容,将指定的内容写入对话历史的提示信息,这样做的好处如下:
(1)在最终用户可见的对话流中,使用更自然的消息替代原始数据。
(2)用简短的确认信息替代可能很长的数据块, 减少token消耗。
举例:
当不设置 tool_message_content时,模型收到的 ToolMessage里就包含了像 {‘name’: ‘张三’, ‘email’:
‘zhangsan@email.com’… …} 这样的具体数据。
当设置了tool_message_content时,模型收到的
ToolMessage只是一个预定义的确认信息,如“ 格式化输出成功!”。
这种方式节省了上下文窗口的令牌消耗,并且让对话流对最终用户