5.4.1 基本用法
- wrap_model_call
① 基于装饰器实现
我们可以同时在模型调用前后做事,所以命名为wrap_model_call ,wrap意为包裹。
源码:
![图片[1]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1087.png)
代码实现:
![图片[2]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1088.png)
![图片[3]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1089.png)
![图片[4]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1090.png)
模型调用前消息列表的最后一条是HumanMessage,调用后最后一条是AIMessage,可以看到,模型调用前后的更改都生效了。
② 基于类实现
![图片[5]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1091.png)
使用场景:用于拦截、重试、缓存模型调用。
场景1:重试逻辑
![图片[6]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1092.png)
场景2:响应缓存
![图片[7]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1093.png)
![图片[8]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1094.png)
场景3:修改系统提示
![图片[9]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1095.png)
return handler(31 modified_request)
- wrap_tool_call
我们可以同时在工具调用前后做事,所以命名为wrap_tool_call 。
① 基于装饰器实现
![图片[10]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1096.png)
![图片[11]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1097.png)
![图片[12]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1098.png)
在@wrap_tool_call装饰的函数中两次调用函数并更改参数。
② 基于类实现
![图片[13]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1099.png)
![图片[14]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1100.png)
使用场景:用于监控、重试、修改工具执行。
比如:
![图片[15]-5.4 Wrap-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1101.png)
5.4.2 两种方法的统一
同上,装饰器方法底层也会创建一个AgentMiddleware的实例。
5.4.3 参数说明
request:被封装的请求对象,可以是模型或工具调用请求
handler:处理器,用于处理请求并返回调用结果。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















请登录后查看评论内容