YouTip LogoYouTip

Agent Architecture

Agent refers to an AI system that can autonomously perceive the environment, reason, and take actions to achieve goals. This article covers the principles, diagrams, and applicable scenarios of six mainstream architectures, from the simplest loop to multi-Agent collaboration, helping you make appropriate technical choices in actual projects. !(https://example.com/wp-content/uploads/2026/05/d274cacd-ee56-4e65-9330-0c792d33c1a2.webp) * * * ## What is Agent Architecture In AI application development, Agent refers to an AI system that can perceive the environment, make autonomous decisions, and take actions. Unlike the traditional "one question, one answer" large model invocation, Agent can continuously execute multiple steps, invoke tools, or even coordinate other Agents to complete complex tasks. Agent Architecture refers to the organization of various components in the Agent system, which determines the Agent's capability boundaries, reliability, flexibility, and applicable scenarios. The essence of Agent: Perception β†’ Reasoning β†’ Action The working method of Agent is essentially a Loopβ€”perceive the current state, reason the next step, take action, perceive again... until the task is completed. The difference between different architectures lies in how they organize and expand this basic loop. > This article assumes you already understand the basic concepts of Large Language Models (LLM) and the basic idea of "tool calling" (Function Calling). If you are not familiar, you can first learn these two basic knowledge points. * * * ## Architecture 1: Single Agent Loop Entry-level preferred Simple implementation The most basic and intuitive architecture, where a single Agent completes all tasks independently from start to finish. The Single Agent Loop directly reflects the ReAct pattern (Reasoning + Acting): each step is "think first, then do". The LLM acts as the brain, and tool calling is its hands. Figure 1 β€” Single Agent Loop Process ### Working Principle Perception: Read the current stateβ€”file content, environment variables, output results from previous steps, integrate into the current context. Reasoning: The LLM decides the next action based on the contextβ€”which tool to call, what parameters to pass, or determine if the task is completed. Action: Execute tool calls, such as reading/writing files, searching the web. The tool's execution result is appended to the context and enters the next loop. > Each tool call result is written back to the context (Context Window). Therefore, as the task progresses, the context continues to grow until it reaches the LLM's context window limitβ€”this is the main bottleneck of the Single Agent Loop. ## Example # Simplified implementation of Single Agent Loop β€” demonstrating the core logic of ReAct pattern class SimpleAgent: """Basic structure of Single Agent Loop""" def __init__ (self, model, tools, max_turns=10): self.model= model # Large Language Model self.tools= tools # List of available tools self.max_turns= max_turns # Maximum loop rounds to prevent infinite loops def run(self, task: str) ->str: """Main loop for executing tasks""" context = f"User task: {task}" for turn in range(self.max_turns): # Step 1: Think β€” Let the model decide the next step response =self.model.think(context) # If the model thinks the task is complete, return the final answer if response.is_final(): return response.content # Step 2: Action β€” Call the tool selected by the model tool_name = response.tool_name tool_args = response.tool_args tool_result =self.tools(**tool_args) # Step 3: Feed the tool result back to the model, enter the next round context += f" Tool {tool_name} returned: {tool_result}" return"Maximum rounds reached, task not completed" # Usage example agent = SimpleAgent(model=llm, tools={ "read_file": read_file, "search_code": search_code, "run_test": run_test }) result = agent.run("Fix type error in user.py of tutorial project") #### Advantages * Simplest implementation, easy to debug * Suitable for scenarios with clear task boundaries * Supported by almost all Agent frameworks #### Disadvantages * Context window can easily become full * Prone to "deviating" in complex tasks * Cannot parallelize multiple subtasks Best applicable scenarios: Fix a bug, write a function, answer a specific question. Clear task, moderate complexity, no need for parallel or multi-role collaboration. > If your task is expected to require more than 15 rounds of tool calls, Single Agent Loop may not be the best choice. Consider using multi-Agent collaboration or Plan & Execute architecture to decompose the complexity. * * * ## Architecture 2: Plan & Execute Intuitive-friendly Reviewable Separates "figuring out what to do" and "actually doing it" into two independent phases, improving task predictability and auditability. The Plan & Execute architecture splits the Agent's work into two clear phases: Plan first, then Execute. In the planning phase, the model does not execute any operations, only generating a detailed list of execution steps. In the execution phase, the system completes each step in sequence. This separation allows users to review the plan before execution, just like Claude Code's Plan Mode. Figure 2 β€” Plan & Execute Architecture (with dynamic replanning) ### Two Variants | Variant | Behavior | Typical Scenario | | --- | --- | --- | | Static Planning | Plan generated at once, executed linearly in order, no mid-course adjustment | Tasks with fixed processes and clear steps, such as data migration scripts | | Dynamic Planning | Re-evaluate after each step execution, adjust subsequent plans based on results | Tasks with uncertain outcomes, such as debugging, exploratory data analysis | Dynamic planning is more robust, but has higher implementation complexity, and replanning at each step consumes additional tokens. > Claude Code's Plan Mode is an embodiment of this architectureβ€”after clicking "Plan", AI first outputs a detailed plan for you to review, and only starts executing after confirmation. This greatly enhances the user's sense of control. ## Example # Simplified implementation of Plan & Execute architecture class PlanExecuteAgent: """Agent that plans first, then executes""" def plan(self, task: str) ->list: """Phase 1: Generate execution plan""" plan =self.model.generate(f""" Please break down the following task into executable steps: Task: {task} Return a JSON format step list, each step includes: - step_id: Step number - description: Step description - tool: Tool name to call """) return plan def execute(self, plan: list, dynamic: bool=False) ->str: """Phase 2: Execute plan step by step""" results =[] remaining_plan = plan.copy() while remaining_plan: step = remaining_plan.pop(0) output =self.tools[step](step) results.append({"step": step,"output": output}) if dynamic and remaining_plan: # Dynamic planning: Re-evaluate subsequent plans based on current results remaining_plan =self.replan(remaining_plan, results) return self.summarize(results) # Usage example agent = PlanExecuteAgent() plan = agent.plan("Add user authentication feature to tutorial project") # Humans can first review the plan, confirm it's reasonable before executing result = agent.execute(plan, dynamic=True) #### Advantages * Plan can be manually reviewed before execution * Clear separation of reasoning and execution responsibilities * Friendly to long tasks #### Disadvantages * Initial plan may not be accurate enough * Two phases increase latency * Static version struggles to handle unexpected situations > The cost of Plan & Execute is increased reasoning rounds, which is actually a waste for simple tasks. If a task can be completed in 3 steps, using Single Agent Loop is more efficient. * * * ## Architecture 3: Multi-Agent Production-recommended Complex tasks An Orchestrator is responsible for task decomposition and scheduling, with multiple Subagents each handling their own responsibilities, completing subtasks in parallel or serial, and results converging back to the Orchestrator for synthesis. When a single Agent faces insufficient context window or overly complex tasks, the multi-Agent architecture provides an elegant solution: let multiple specialized sub-Agents work in parallel, coordinated by an Orchestrator that manages the overall situation. Figure 3 β€” Multi-Agent Collaboration Architecture (Orchestrator + Subagents) ### Independent Context is the Core Advantage Each sub-Agent has its independent context window. The code review Agent deeply reading auth.py will not affect the performance analysis Agent's judgment; the large amount of intermediate output generated by the security detection Agent will not occupy space for other Agents. > Subagents are ephemeral and isolatedβ€”they are destroyed after completing a task. Agent Teams are multiple independent Agent instances that collaborate for a long time and send messages to each other, more like a real team. ## Example # Simplified implementation of Multi-Agent collaboration class Orchestrator: """Orchestrator: responsible for task decomposition, distribution, and result aggregation""" def __init__ (self): self.subagents={ "code_review": Subagent( name="Code Review", tools
← Claude Code DevsetupClaude Code Jetbrains β†’