> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 概述

> 在每个步骤中控制和自定义代理执行

中间件提供了一种更紧密控制代理内部发生情况的方式。中间件适用于以下场景：

* 通过日志记录、分析和调试跟踪代理行为。
* 转换提示词、[工具选择](/oss/javascript/langchain/middleware/built-in#llm-tool-selector)和输出格式。
* 添加[重试](/oss/javascript/langchain/middleware/built-in#tool-retry)、[回退](/oss/javascript/langchain/middleware/built-in#model-fallback)和提前终止逻辑。
* 应用[速率限制](/oss/javascript/langchain/middleware/built-in#model-call-limit)、防护栏和[PII检测](/oss/javascript/langchain/middleware/built-in#pii-detection)。

通过将中间件传递给 `createAgent` 来添加中间件：

```typescript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import {
  createAgent,
  summarizationMiddleware,
  humanInTheLoopMiddleware,
} from "langchain";

const agent = createAgent({
  model: "gpt-5.4",
  tools: [...],
  middleware: [summarizationMiddleware, humanInTheLoopMiddleware],
});
```

## 代理循环

核心代理循环涉及调用模型、让其选择要执行的工具，然后在不再调用工具时结束：

<img src="https://mintcdn.com/other-405835d4/3NQVGWwcrOYcKZbP/oss/images/core_agent_loop.png?fit=max&auto=format&n=3NQVGWwcrOYcKZbP&q=85&s=e80aadacf0a151589aaa821313e0916c" alt="核心代理循环图" style={{height: "200px", width: "auto", justifyContent: "center"}} className="rounded-lg block mx-auto" width="300" height="268" data-path="oss/images/core_agent_loop.png" />

中间件在每个步骤前后暴露钩子：

<img src="https://mintcdn.com/other-405835d4/3NQVGWwcrOYcKZbP/oss/images/middleware_final.png?fit=max&auto=format&n=3NQVGWwcrOYcKZbP&q=85&s=4c4db62fcf650935ce6703625c5aa548" alt="中间件流程图" style={{height: "300px", width: "auto", justifyContent: "center"}} className="rounded-lg mx-auto" width="500" height="560" data-path="oss/images/middleware_final.png" />

## 附加资源

<CardGroup cols={2}>
  <Card title="内置中间件" icon="box" href="/oss/javascript/langchain/middleware/built-in">
    探索用于常见用例的内置中间件。
  </Card>

  <Card title="自定义中间件" icon="code" href="/oss/javascript/langchain/middleware/custom">
    使用钩子和装饰器构建您自己的中间件。
  </Card>

  <Card title="中间件 API 参考" icon="book" href="https://reference.langchain.com/python/langchain/middleware/">
    中间件的完整 API 参考。
  </Card>

  <Card title="中间件集成" icon="plug" href="/oss/javascript/integrations/middleware/">
    针对 Anthropic、AWS、OpenAI 等的提供商特定中间件。
  </Card>

  <Card title="测试代理" icon="scale" href="/oss/javascript/langchain/test/">
    使用 LangSmith 测试您的代理。
  </Card>
</CardGroup>

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/langchain/middleware/overview.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
