分类讨论
before_* 钩子函数:从前到后执行
after_* 钩子函数:从后往前执行
wrap_* 钩子函数:洋葱架构,前面的包裹后面的
这里的顺序并非定义顺序,而是创建Agent时传递中间件的顺序。
- 代码
![图片[1]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1106.png)
![图片[2]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1107.png)
![图片[3]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1108.png)
![图片[4]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1109.png)
![图片[5]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1110.png)
![图片[6]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1111.png)
![图片[7]-5.6 hook函数执行顺序-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1112.png)
分析
1.中间件定义是乱序的,但传递给Agent的顺序是固定的
2.由输出可知,中间件的执行遵循上述规律,只和传递给Agent的顺序有关
3.具体来说
- before_model中间件的执行顺序和传递顺序一致
- after_model中间件的执行顺序和传递顺序相反
- wrap_model_call中间件的执行顺序是: 先传递的包在最外层,即洋葱架构
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















请登录后查看评论内容