Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/oss/langchain/middleware.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -415,10 +415,12 @@ Limit the number of model calls to prevent infinite loops or excessive costs.
```python
from langchain.agents import create_agent
from langchain.agents.middleware import ModelCallLimitMiddleware
from langgraph.checkpoint.memory import InMemorySaver


agent = create_agent(
model="gpt-4o",
checkpointer=InMemorySaver(), # Required for thread limiting
tools=[], # Add tools as needed
middleware=[
ModelCallLimitMiddleware(
Expand All @@ -434,10 +436,12 @@ agent = create_agent(
:::js
```typescript
import { createAgent, modelCallLimitMiddleware } from "langchain";
import { MemorySaver } from "@langchain/langgraph";

const agent = createAgent({
model: "gpt-4o",
tools: [...],
checkpointer: new MemorySaver(), // Required for thread limiting
middleware: [
modelCallLimitMiddleware({
threadLimit: 10, // Max 10 calls per thread (across runs)
Expand Down Expand Up @@ -523,6 +527,7 @@ To limit tool calls globally across all tools or for specific tools, set `toolNa
```python
from langchain.agents import create_agent
from langchain.agents.middleware import ToolCallLimitMiddleware
from langgraph.checkpoint.memory import InMemorySaver


# Global limit: max 20 calls per thread, 10 per run
Expand Down Expand Up @@ -562,6 +567,7 @@ critical_tool_limiter = ToolCallLimitMiddleware(
agent = create_agent(
model="gpt-4o",
tools=[search_tool, database_tool, scraper_tool],
checkpointer=InMemorySaver(), # Required for thread limiting
middleware=[
global_limiter,
search_limiter,
Expand All @@ -575,6 +581,7 @@ agent = create_agent(
:::js
```typescript
import { createAgent, toolCallLimitMiddleware } from "langchain";
import { MemorySaver } from "@langchain/langgraph";

// Global limit: max 20 calls per thread, 10 per run
const globalLimiter = toolCallLimitMiddleware({
Expand Down Expand Up @@ -613,6 +620,7 @@ const criticalToolLimiter = toolCallLimitMiddleware({
const agent = createAgent({
model: "gpt-4o",
tools: [searchTool, databaseTool, scraperTool],
checkpointer: new MemorySaver(), // Required for thread limiting
middleware: [globalLimiter, searchLimiter, databaseLimiter, webScraperLimiter],
});
```
Expand Down