Understanding the "Agent = LLM + Context + Tools" Formula and Context's Role in AI Agent Capability
AI agents are built on the formula Agent = LLM + Context + Tools, where context acts as the operational "operating system" that binds the LLM's reasoning power to external tools, directly determining the agent's effective capability ceiling.
The bojieli/ai-agent-book repository explores this foundational architecture through practical implementations and theoretical frameworks. This equation appears prominently in the project's documentation as the core mental model for understanding how modern AI agents function. Breaking down this formula reveals why context management is often the primary bottleneck in agent performance.
Deconstructing the Agent Formula
The equation Agent = LLM + Context + Tools defines the three essential pillars of autonomous AI systems. Each component serves a distinct architectural purpose.
The Three Core Components
According to the source documentation, the formula breaks down as follows:
-
LLM (Large Language Model): The "brain" that provides reasoning, language understanding, and decision-making capabilities. It processes instructions and generates plans based on the information provided.
-
Context: The "operating system" that maintains the system prompt, conversation history, intermediate reasoning steps, and tool interaction records ([
docs/zh-CN/LEARNING.md](https://github.com/bojieli/ai-agent-book/blob/main/docs/zh-CN/LEARNING.md#L12-L13)). This component acts as the stateful memory that persists across interaction turns. -
Tools: The "hands" that extend the agent's capabilities beyond text generation, enabling interaction with external systems such as search engines, file systems, or APIs.
How the Components Interact
The execution flow follows a continuous loop:
- The LLM receives a prompt constructed from the static system instruction concatenated with the dynamic context.
- The LLM generates a response that may include a structured
ToolCallrequesting external action. - The framework executes the requested tool, captures its output, and appends this result to the context.
- The updated context feeds back into the LLM for the next inference cycle ([
index.md](https://github.com/bojieli/ai-agent-book/blob/main/index.md#L14-L16)).
This feedback loop continues until the agent reaches a terminal state or fulfills the user's request.
Why Context Is the Capability Bottleneck
While the LLM provides raw intelligence and tools provide reach, context determines the effective scope of what the agent can accomplish at any moment.
Information Capacity Constraints
The amount of information an agent can access is bounded by the context window (e.g., 8K, 32K, or 128K tokens). When conversations grow or tool results accumulate, the agent must employ strategies like KV-Cache optimization, prompt compression, or selective summarization to retain critical information ([docs/en/README.md](https://github.com/bojieli/ai-agent-book/blob/main/docs/en/README.md#L55-L58)).
Memory Integration
Context serves as the integration layer for user memory (cross-session facts) and external knowledge retrieved via RAG (Retrieval-Augmented Generation). By injecting these sources into the active prompt, the LLM effectively "remembers" information without requiring weight updates ([docs/zh-CN/LEARNING.md](https://github.com/bojieli/ai-agent-book/blob/main/docs/zh-CN/LEARNING.md#L22-L24)).
Tool Result Propagation
Every tool execution generates output that must re-enter the context stream for the next LLM turn. Without this propagation mechanism, the agent becomes blind to the consequences of its own actions, breaking the iterative refinement cycle necessary for complex task completion.
Implementation: The Agent Loop in Code
The following Python excerpt demonstrates the three components working together in a Web-Search Agent implementation based on [chapter1/web-search-agent/agent.py](https://github.com/bojieli/ai-agent-book/blob/main/chapter1/web-search-agent/agent.py):
import json
from typing import List, Dict, Any
class SimpleAgent:
def __init__(self, llm_client):
self.llm = llm_client
self.context = {
"system": "You are a helpful assistant that can browse the web.",
"history": [],
"tool_results": []
}
def render_prompt(self) -> str:
messages = [f"System: {self.context['system']}"]
messages.extend([f"{m['role']}: {m['content']}" for m in self.context['history']])
messages.extend([
f"[Tool {t['name']}] Result: {json.dumps(t['result'])}"
for t in self.context['tool_results']
])
return "\n".join(messages)
def run(self, user_query: str) -> str:
# Add user message to context
self.context['history'].append({"role": "user", "content": user_query})
# LLM inference with current context
response = self.llm.chat(self.render_prompt())
# Check for tool calls (simplified parsing)
if "tool_call" in response:
tool_name = response["tool_call"]["name"]
tool_args = response["tool_call"]["arguments"]
# Execute tool (e.g., web search)
result = self.execute_tool(tool_name, tool_args)
# Update context with tool result
self.context['tool_results'].append({
"name": tool_name,
"arguments": tool_args,
"result": result
})
# Second LLM turn with updated context
final_response = self.llm.chat(self.render_prompt())
return final_response["content"]
return response["content"]
This implementation illustrates how context accumulates both conversation history and tool execution results, enabling the iterative refinement pattern described in the formula.
Summary
- Agent = LLM + Context + Tools is the foundational architectural pattern for modern AI agents, explicitly defined in the
bojieli/ai-agent-bookrepository. - Context functions as the agent's "operating system," managing system prompts, conversation history, and tool interaction logs.
- The context window size creates a hard constraint on agent capability, necessitating compression and memory management strategies.
- Tool results must flow back into context to enable iterative reasoning and multi-step task completion.
- Effective agent design prioritizes context engineering as heavily as model selection or tool development.
Frequently Asked Questions
What does the "agent = LLM + context + tools" formula mean?
This formula defines the three essential building blocks of an autonomous AI agent. The LLM provides the reasoning engine, tools provide the ability to act on the world, and context provides the stateful memory that connects them. The equation appears in the repository's main documentation [index.md](https://github.com/bojieli/ai-agent-book/blob/main/index.md#L14-L16) as a concise mental model for agent architecture.
Why is context considered the operating system of an AI agent?
Context is described as the "operating system" because it manages the runtime environment for the LLM. It holds the system prompt, conversation history, reasoning traces, and tool results ([docs/zh-CN/LEARNING.md](https://github.com/bojieli/ai-agent-book/blob/main/docs/zh-CN/LEARNING.md#L12-L13)). Without context, the LLM would be stateless and unable to maintain coherence across multiple turns or tool invocations.
How does context limit an agent's capabilities?
An agent's effective intelligence is bounded by its context window—the maximum tokens it can process at once. As conversations grow or tool chains lengthen, the agent may lose access to earlier information. This constraint drives the need for context compression techniques, memory systems, and RAG integration explored in [chapter2/context-compression/agent.py](https://github.com/bojieli/ai-agent-book/blob/main/chapter2/context-compression/agent.py).
What is the difference between context and memory in AI agents?
Context refers to the active information in the current prompt window—what the LLM sees right now. Memory refers to persistent storage that survives across sessions. Context incorporates memory by retrieving and injecting relevant facts into the prompt, allowing the agent to "remember" without the LLM weights changing ([docs/zh-CN/LEARNING.md](https://github.com/bojieli/ai-agent-book/blob/main/docs/zh-CN/LEARNING.md#L22-L24)).
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →