96SEO 2026-08-13 09:06 0
在 LangChain v1.3.4 中,Agent 通过一系列可插拔的中间件暴露了执行过程中的钩子函数。这样既可以在不改动主要代码的前提下对 Agent 的行为进行细粒度控制,也能把业务逻辑与模型调用解耦。对于想要快速迭代、调试和保障程序稳定性的开发者中间件几乎是必不可少的。话说回来,
传统的 Agent 调用链往往把所有逻辑堆叠在一起。导致:

每个中间件都提供了一组钩子。可在:
LangChain 自带了多种功能比较全面的中间件,涵盖摘要、审核、限流、回退等常见场景。
SummarizationMiddleware: 压缩历史上下文,避免 token 爆炸。HumanInTheLoopMiddleware: 暂停并等待人工审核或编辑。ModelCallLimit | ToolCallLimit: 限制模型/工具调用次数,防止滥用。ModelFallbackMiddleware: 主模型失败时自动切换备用模型。PiiDetectionMiddleware: 对敏感信息进行脱敏或加密。TodolistMiddleware: 在复杂任务前先生成待办计划,提高规划能力。LLMToolSelectorMiddleware: 当工具数量过多时用子模型挑选最相关的几个。{Tool|Model}RetryMiddleware: 基于指数退避实现重试策略,并可加入抖动防止并发冲突。说起来,{Tool|Model}EmulatorMiddleware: 当工具不完善时模拟返回结果。支持快速迭代,ContextEditingMiddleware,,,
from taglib import init_chat_model
import os
model = init_chat_model(
"openai:kimi-k2",base_url=os.getenv,profile={'max_input_tokens': 4000}
)
messages =
agent = create_agent(
model,middleware=,keep=。summary_prompt='用中文繁体消息内容
{messages}'
)
]
)
result = agent.invoke
for in :
print)
# 导入必要组件...
@tooldef get_wear -> str:
"获取指定城市天气预报")
"{city} 是晴天 {'明天有雨' if is_forcast else '明天晴天'}"
# 创建带审核功能的 Agent...
{ 'configurable': { 'thread_id': ''} }
# 调用 Agent 并触发人机交互...
# 在被中断响应里可以看到 __interrupt__ 字段...
# 若需要继续执行,可通过 Command 回复来完成。#
至于注意。每个 Middleware 可以只实现一个钩子,也可以实现多个。实现方式既支持函数式装饰器,也支持继承自
以下示例演示了 顺序 与 嵌套 的差异。先进后出 的原则保证了:
如果你正在面临如下痛点。请立即考虑引入或
中间件这方面,> 的类。函数最终会被包装成类实例执行。此处给出几种常见写法示例。说起来,
$@before_agentdef before_agent_middleware:print;return None$@after_agentdef after_agent_middleware:print;return None$@before_modeldef before_model_middleware:print;
return None$@after_modeldef after_model_middleware:print;return None$ agent=create_agent$ agent.invoke]}) $ # === before …
$@wrap_mod…def wrap_mod…request,,handler): rprint…result=handler…按理说,return result$ @wrap_tool_cal…def mod,request,…handler): rprint…result=handler…return result $ agent=create_ag…$ # ...
$from langchain.agents.middleware import AgentMiddleWare$class CustomMiddleWare: def __init__:super.__init__;话说回来,@hook_config def before_ag…pass ,def wrap_mode.. pass $ agent=create_ag…])$
实际效果对比
before_* 钩子先被触发;wrap_* 包装器包裹住整个操作;after_* 在内部设置完成后才执行。html
### 小结
$class CustomMiddleWare:
def __init__:
super.__init__
...
def before_a…: print,return None
...
def wrap_..._call:
print;result = handler;return result
…,完整代码参考 GitHub 示例链接 ➡️ 点击查看 ↗️︎︎︎︎︎︎︎︎︎︎︎〉
\t
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback