Module 4 Lesson 6: Cost and Loop Control
Protecting your wallet. Setting limits on iterations, time, and tokens in LangChain agent executors.
Cost and Loop Control: Scaling Responsibility
Every time an agent "Thinks," it costs you money (or compute power). If an agent enters an infinite loop while you are sleeping, you could wake up to a massive bill. In LangChain, we use Runtime Guards to prevent this.
1. Safety Guard #1: max_iterations
This is the most important setting in your AgentExecutor. It limits the number of "Thought -> Action -> Observation" cycles.
- Default: Unlimited (Danger!).
- Recommended: 5 to 10 iterations. If an agent can't solve it in 10 steps, it probably needs human help or a better prompt.
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
max_iterations=5, # <--- Hard Stop
early_stopping_method="generate"
)
2. Safety Guard #2: max_execution_time
Sometimes the tools themselves hang (e.g., a slow website scraper). You should set a time budget for the entire run.
max_execution_time=60(Timeout after 60 seconds).
3. Token Usage Monitoring
In production, you should use the get_openai_callback (or equivalent) to track exactly how many tokens each agent run consumes.
from langchain_community.callbacks import get_openai_callback
with get_openai_callback() as cb:
response = agent_executor.invoke({"input": "Perform deep research..."})
print(f"Total Tokens: {cb.total_tokens}")
print(f"Total Cost: ${cb.total_cost}")
4. The "Early Stopping" Logic
When the agent hits its max_iterations limit, what happens?
- Option 1: Force Error. (Traditional).
- Option 2: Final Inference. LangChain can ask the model: "You have run out of time. Based on what you know so far, give your best guess for the final answer."
5. Visualizing Safeties
graph TD
Start[Agent Start] --> Check{Limits Reached?}
Check -- Yes --> Stop[Stop & Return Best Guess]
Check -- No --> Step[Execute Next Step]
Step --> Cost[Log Tokens $$]
Cost --> Check
6. Summary Table: Control Settings
| Setting | Context | Ideal Value |
|---|---|---|
max_iterations | Loop Count | 3 - 8 |
max_execution_time | Clock Time | 30s - 120s |
handle_parsing_errors | Robustness | True |
early_stopping_method | Failure UX | "generate" |
Key Takeaways
- Uncontrolled agents are a financial and stability risk.
- max_iterations is your primary defensive measure.
- Token tracking is required for calculating the ROI of your agentic system.
- Use early stopping to provide a "Best Effort" answer instead of a hard crash.