支持两种用法
- 装饰器是函数式挂载,把一个hook快速挂载到Agent的某个节点。
- 类写法是对象化中间件,把中间件封装为一个可配置、可复用、可扩展的组件。
5.3.1 基本用法
- 基于装饰器实现
![图片[1]-5.3 Node-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1062.png)
![图片[2]-5.3 Node-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1063.png)
![图片[3]-5.3 Node-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1064.png)
- 观察HumanMessage可以发现,before_agent钩子先于before_model被执行,二者都在调用模型之前被执行
- after_agent晚于after_model执行,二者都在模型调用后执行。
- 基于类实现
关键规则:
- 必须继承 AgentMiddleware ← 这个固定
- 方法名固定 ( before_model , after_model ) ← 这个固定
- 类名随意 ← 这个不固定
- 必须继承 AgentMiddleware ← 这个固定
- 方法名固定 ( before_model , after_model ) ← 这个固定
- 类名随意 ← 这个不固定
LangGraph 只看:
- 是否继承 AgentMiddleware?
- 是否有 before_model / after_model 等方法?
举例:
![图片[4]-5.3 Node-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1065.png)
![图片[5]-5.3 Node-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1066.png)
![图片[6]-5.3 Node-style hooks函数用法-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1067.png)
1.before_model 通常的场景:
- 消息修剪(trim messages)
- PII 脱敏
- 输入验证
- 条件路由
2. after_model 通常的场景:
- 输出验证
- 格式化响应
- 统计信息
- 状态更新
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















请登录后查看评论内容