静态运行时上下文(Static runtime Context)表示不可变的数据,如用户元数据、工具和传递给应用程序的数据库连接对象。通常在运行开始时通过 invoke / stream 的 context 参数传递,此类数据在运行期间不会更改。
4.1 中间件中访问
4.1.1 Node-style hooks
此类钩子都通过runtime.context 访问上下文对象。
用户自定义ContextSchema 用@dataclass 修饰,在Agent创建时通过state_schema 参数传递。
本例从长期记忆中查询用户额度,如果额度用尽则中断流程。
代码
![图片[1]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1221.png)
![图片[2]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1222.png)
![图片[3]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1223.png)
![图片[4]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1224.png)
![图片[5]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1225.png)
4.1.2 Wrap-style hooks
① wrap_model_call
本例通过 context 中记录的用户身份信息调整暴露给模型的工具集。
此处更改模型请求的方法是 transient request update ,见上文短期记忆 2-4-2
![图片[6]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1226.png)
![图片[7]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1227.png)
![图片[8]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1228.png)
![图片[9]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1229.png)
![图片[10]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1230.png)
② wrap_tool_call
在上述案例的基础上,我们补充额度校验,和长期记忆更新。
![图片[11]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1231.png)
![图片[12]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1232.png)
![图片[13]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1233.png)
![图片[14]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1234.png)
![图片[15]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1235.png)
![图片[16]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1236.png)
![图片[17]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1237.png)
4.1.3 特殊的便捷中间件dynamic_prompt
如前所述,@dynamic_prompt底层实现机制和通用钩子函数是统一的,对于动态提示词处理提供了更
加便捷的入口。
本例通过静态上下文中携带的用户信息,动态更改系统提示词。
![图片[18]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1238.png)
![图片[19]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1239.png)
![图片[20]-4、课后阅读:Static runtime Context-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1240.png)
dynamic_prompt 是动态更新本次调用前的系统提示词,并不会更改消息列表,所以根据模型输出,可以发现系统提示词生效,但消息列表看不到相关提示词。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















请登录后查看评论内容