<spanid="id1"></span><h1>Agents<a@click.prevent="window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)"aria-label="Copy link to this element"class="headerlink"data-tooltip="Copy link to this element"href="#agents"><svgheight="1em"viewbox="0 0 24 24"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h1>
<p>Agents are autonomous systems that handle wide-ranging, open-ended tasks by calling models in a loop until the work is complete. Unlike deterministic <aclass="reference internal"href="prompt_target.html#prompt-target"><spanclass="std std-ref">prompt targets</span></a>, agents have access to tools, reason about which actions to take, and adapt their behavior based on intermediate results—making them ideal for complex workflows that require multi-step reasoning, external API calls, and dynamic decision-making.</p>
<p>Plano helps developers build and scale multi-agent systems by managing the orchestration layer—deciding which agent(s) or LLM(s) should handle each request, and in what sequence—while developers focus on implementing agent logic in any language or framework they choose.</p>
<sectionid="agent-orchestration">
<h2>Agent Orchestration<a@click.prevent="window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)"aria-label="Copy link to this element"class="headerlink"data-tooltip="Copy link to this element"href="#agent-orchestration"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#agent-orchestration'"><svgheight="1em"viewbox="0 0 24 24"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h2>
<p><strong>Plano-Orchestrator</strong> is a family of state-of-the-art routing and orchestration models that decide which agent(s) should handle each request, and in what sequence. Built for real-world multi-agent deployments, it analyzes user intent and conversation context to make precise routing and orchestration decisions while remaining efficient enough for low-latency production use across general chat, coding, and long-context multi-turn conversations.</p>
<li><p><strong>Scale multi-agent systems</strong>: Route requests across multiple specialized agents without hardcoding routing logic in application code.</p></li>
<li><p><strong>Improve performance</strong>: Direct requests to the most appropriate agent based on intent, reducing unnecessary handoffs and improving response quality.</p></li>
<li><p><strong>Enhance debuggability</strong>: Centralized routing decisions are observable through Plano’s tracing and logging, making it easier to understand why a particular agent was selected.</p></li>
<h2>Inner Loop vs. Outer Loop<a@click.prevent="window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)"aria-label="Copy link to this element"class="headerlink"data-tooltip="Copy link to this element"href="#inner-loop-vs-outer-loop"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#inner-loop-vs-outer-loop'"><svgheight="1em"viewbox="0 0 24 24"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h2>
<p>Plano distinguishes between the <strong>inner loop</strong> (agent implementation logic) and the <strong>outer loop</strong> (orchestration and routing):</p>
<sectionid="inner-loop-agent-logic">
<h3>Inner Loop (Agent Logic)<a@click.prevent="window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)"aria-label="Copy link to this element"class="headerlink"data-tooltip="Copy link to this element"href="#inner-loop-agent-logic"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#inner-loop-agent-logic'"><svgheight="1em"viewbox="0 0 24 24"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h3>
<p>The inner loop is where your agent lives—the business logic that decides which tools to call, how to interpret results, and when the task is complete. You implement this in any language or framework:</p>
<ulclass="simple">
<li><p><strong>Python agents</strong>: Using frameworks like LangChain, LlamaIndex, CrewAI, or custom Python code.</p></li>
<li><p><strong>JavaScript/TypeScript agents</strong>: Using frameworks like LangChain.js or custom Node.js implementations.</p></li>
<li><p><strong>Any other AI famreowkr</strong>: Agents are just HTTP services that Plano can route to.</p></li>
<p><strong>Making LLM Calls from Agents</strong></p>
<p>When your agent needs to call an LLM for reasoning, summarization, or completion, you should route those calls through Plano’s Model Proxy rather than calling LLM providers directly. This gives you:</p>
<li><p><strong>Consistent responses</strong>: Normalized response formats across all <aclass="reference internal"href="llm_providers/llm_providers.html#llm-providers"><spanclass="std std-ref">LLM providers</span></a>, whether you’re using OpenAI, Anthropic, Azure OpenAI, or any OpenAI-compatible provider.</p></li>
<li><p><strong>Rich agentic signals</strong>: Automatic capture of function calls, tool usage, reasoning steps, and model behavior—surfaced through traces and metrics without instrumenting your agent code.</p></li>
<li><p><strong>Smart model routing</strong>: Leverage <aclass="reference internal"href="llm_providers/llm_providers.html#llm-providers"><spanclass="std std-ref">model-based, alias-based, or preference-aligned routing</span></a> to dynamically select the best model for each task based on cost, performance, or custom policies.</p></li>
<p>By routing LLM calls through the Model Proxy, your agents remain decoupled from specific providers and can benefit from centralized policy enforcement, observability, and intelligent routing—all managed in the outer loop. For a step-by-step guide, see <aclass="reference internal"href="../guides/llm_router.html#llm-router"><spanclass="std std-ref">LLM Routing</span></a> in the LLM Router guide.</p>
</div>
</section>
<sectionid="outer-loop-orchestration">
<h3>Outer Loop (Orchestration)<a@click.prevent="window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)"aria-label="Copy link to this element"class="headerlink"data-tooltip="Copy link to this element"href="#outer-loop-orchestration"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#outer-loop-orchestration'"><svgheight="1em"viewbox="0 0 24 24"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h3>
<p>The outer loop is Plano’s orchestration layer—it manages the lifecycle of requests across agents and LLMs:</p>
<ulclass="simple">
<li><p><strong>Intent analysis</strong>: Plano-Orchestrator analyzes incoming prompts to determine user intent and conversation context.</p></li>
<li><p><strong>Routing decisions</strong>: Routes requests to the appropriate agent(s) or LLM(s) based on capabilities, context, and availability.</p></li>
<li><p><strong>Sequencing</strong>: Determines whether multiple agents need to collaborate and in what order.</p></li>
<li><p><strong>Lifecycle management</strong>: Handles retries, failover, circuit breaking, and load balancing across agent instances.</p></li>
</ul>
<p>By managing the outer loop, Plano allows you to:</p>
<ulclass="simple">
<li><p>Add new agents without changing routing logic in existing agents.</p></li>
<li><p>Run multiple versions or variants of agents for A/B testing or canary deployments.</p></li>