<liclass="toctree-l2"><aclass="reference internal"href="../concepts/llm_providers/supported_providers.html">Supported Providers & Configuration</a></li>
<spanid="id1"></span><h1>Quickstart<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="#quickstart"><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>Follow this guide to learn how to quickly set up Plano and integrate it into your generative AI applications. You can:</p>
<ulclass="simple">
<li><p><aclass="reference internal"href="#quickstart-agents"><spanclass="std std-ref">Build agents</span></a> for multi-step workflows (e.g., travel assistants with flights and hotels).</p></li>
<li><p><aclass="reference internal"href="#quickstart-prompt-targets"><spanclass="std std-ref">Call deterministic APIs via prompt targets</span></a> to turn instructions directly into function calls.</p></li>
<li><p><aclass="reference internal"href="#llm-routing-quickstart"><spanclass="std std-ref">Use Plano as a model proxy (Gateway)</span></a> to standardize access to multiple LLM providers.</p></li>
</ul>
<divclass="admonition note">
<pclass="admonition-title">Note</p>
<p>This quickstart assumes basic familiarity with agents and prompt targets from the Concepts section. For background, see <aclass="reference internal"href="../concepts/agents.html#agents"><spanclass="std std-ref">Agents</span></a> and <aclass="reference internal"href="../concepts/prompt_target.html#prompt-target"><spanclass="std std-ref">Prompt Target</span></a>.</p>
<p>The full agent and backend API implementations used here are available in the <aclass="reference external"href="https://github.com/plano-ai/plano-quickstart"rel="nofollow noopener">plano-quickstart repository<svgfill="currentColor"height="1em"stroke="none"viewbox="0 96 960 960"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M188 868q-11-11-11-28t11-28l436-436H400q-17 0-28.5-11.5T360 336q0-17 11.5-28.5T400 296h320q17 0 28.5 11.5T760 336v320q0 17-11.5 28.5T720 696q-17 0-28.5-11.5T680 656V432L244 868q-11 11-28 11t-28-11Z"></path></svg></a>. This guide focuses on wiring and configuring Plano (orchestration, prompt targets, and the model proxy), not application code.</p>
<h2>Prerequisites<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="#prerequisites"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#prerequisites'"><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>Before you begin, ensure you have the following:</p>
<h2>Build Agentic Apps with Plano<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="#build-agentic-apps-with-plano"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#build-agentic-apps-with-plano'"><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 helps you build agentic applications in two complementary ways:</p>
<ulclass="simple">
<li><p><strong>Orchestrate agents</strong>: Let Plano decide which agent or LLM should handle each request and in what sequence.</p></li>
<li><p><strong>Call deterministic backends</strong>: Use prompt targets to turn natural-language prompts into structured, validated API calls.</p></li>
<spanid="quickstart-agents"></span><h3>Building agents with Plano 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="#building-agents-with-plano-orchestration"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#building-agents-with-plano-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>Agents are where your business logic lives (the “inner loop”). Plano takes care of the “outer loop”—routing, sequencing, and managing calls across agents and LLMs.</p>
<p>At a high level, building agents with Plano looks like this:</p>
<olclass="arabic simple">
<li><p><strong>Implement your agent</strong> in your framework of choice (Python, JS/TS, etc.), exposing it as an HTTP service.</p></li>
<li><p><strong>Route LLM calls through Plano’s Model Proxy</strong>, so all models share a consistent interface and observability.</p></li>
<li><p><strong>Configure Plano to orchestrate</strong>: define which agent(s) can handle which kinds of prompts, and let Plano decide when to call an agent vs. an LLM.</p></li>
</ol>
<p>This quickstart uses a simplified version of the Travel Booking Assistant; for the full multi-agent walkthrough, see <aclass="reference internal"href="../guides/orchestration.html#agent-routing"><spanclass="std std-ref">Orchestration</span></a>.</p>
<sectionid="step-1-minimal-orchestration-config">
<h4>Step 1. Minimal orchestration config<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="#step-1-minimal-orchestration-config"><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></h4>
<p>Here is a minimal configuration that wires Plano-Orchestrator to two HTTP services: one for flights and one for hotels.</p>
</span><spanid="line-20"><spanclass="w"></span><spanclass="nt">description</span><spanclass="p">:</span><spanclass="w"></span><spanclass="l l-Scalar l-Scalar-Plain">Search for flights and provide flight status.</span>
<h4>Step 2. Start your agents and Plano<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="#step-2-start-your-agents-and-plano"><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></h4>
<p>Run your <codeclass="docutils literal notranslate"><spanclass="pre">flight_agent</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">hotel_agent</span></code> services (see <aclass="reference internal"href="../guides/orchestration.html#agent-routing"><spanclass="std std-ref">Orchestration</span></a> for a full Travel Booking example), then start Plano with the config above:</p>
<p>Plano will start the orchestrator and expose an agent listener on port <codeclass="docutils literal notranslate"><spanclass="pre">8001</span></code>.</p>
<h4>Step 3. Send a prompt and let Plano route<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="#step-3-send-a-prompt-and-let-plano-route"><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></h4>
<p>Now send a request to Plano using the OpenAI-compatible chat completions API—the orchestrator will analyze the prompt and route it to the right agent based on intent:</p>
</span><spanid="line-2"><spanclass="w"></span>--data<spanclass="w"></span><spanclass="s1">'{"messages": [{"role": "user","content": "Find me flights from SFO to JFK tomorrow"}], "model": "openai/gpt-4o"}'</span><spanclass="w"></span><spanclass="se">\</span>
<p>You can then ask a follow-up like “Also book me a hotel near JFK” and Plano-Orchestrator will route to <codeclass="docutils literal notranslate"><spanclass="pre">hotel_agent</span></code>—your agents stay focused on business logic while Plano handles routing.</p>
<spanid="quickstart-prompt-targets"></span><h3>Deterministic API calls with prompt targets<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="#deterministic-api-calls-with-prompt-targets"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#deterministic-api-calls-with-prompt-targets'"><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>Next, we’ll show Plano’s deterministic API calling using a single prompt target. We’ll build a currency exchange backend powered by <cite>https://api.frankfurter.dev/</cite>, assuming USD as the base currency.</p>
<sectionid="step-1-create-plano-config-file">
<h4>Step 1. Create plano config file<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="#step-1-create-plano-config-file"><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></h4>
<p>Create <codeclass="docutils literal notranslate"><spanclass="pre">plano_config.yaml</span></code> file with the following content:</p>
</span><spanid="line-19"><spanclass="w"></span><spanclass="nt">description</span><spanclass="p">:</span><spanclass="w"></span><spanclass="l l-Scalar l-Scalar-Plain">Get currency exchange rate from USD to other currencies</span>
</span><spanid="line-30"><spanclass="w"></span><spanclass="no">You are a helpful assistant. Show me the currency symbol you want to convert from USD.</span>
</span><spanid="line-33"><spanclass="w"></span><spanclass="nt">description</span><spanclass="p">:</span><spanclass="w"></span><spanclass="l l-Scalar l-Scalar-Plain">Get list of supported currencies for conversion</span>
<h4>Step 2. Start plano with currency conversion config<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="#step-2-start-plano-with-currency-conversion-config"><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></h4>
<p>Once the gateway is up, you can start interacting with it at port 10000 using the OpenAI chat completion API.</p>
<p>Some sample queries you can ask include: <codeclass="docutils literal notranslate"><spanclass="pre">what</span><spanclass="pre">is</span><spanclass="pre">currency</span><spanclass="pre">rate</span><spanclass="pre">for</span><spanclass="pre">gbp?</span></code> or <codeclass="docutils literal notranslate"><spanclass="pre">show</span><spanclass="pre">me</span><spanclass="pre">list</span><spanclass="pre">of</span><spanclass="pre">currencies</span><spanclass="pre">for</span><spanclass="pre">conversion</span></code>.</p>
<h4>Step 3. Interacting with gateway using curl command<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="#step-3-interacting-with-gateway-using-curl-command"><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></h4>
</span><spanid="line-5"><spanclass="s2">"As of the date provided in your context, December 5, 2024, the exchange rate for GBP (British Pound) from USD (United States Dollar) is 0.78558. This means that 1 USD is equivalent to 0.78558 GBP."</span>
</span></code></pre></div>
</div>
<p>And to get the list of supported currencies:</p>
</span><spanid="line-2"><spanclass="w"></span>--data<spanclass="w"></span><spanclass="s1">'{"messages": [{"role": "user","content": "show me list of currencies that are supported for conversion"}], "model": "none"}'</span><spanclass="w"></span><spanclass="se">\</span>
</span><spanid="line-5"><spanclass="s2">"Here is a list of the currencies that are supported for conversion from USD, along with their symbols:\n\n1. AUD - Australian Dollar\n2. BGN - Bulgarian Lev\n3. BRL - Brazilian Real\n4. CAD - Canadian Dollar\n5. CHF - Swiss Franc\n6. CNY - Chinese Renminbi Yuan\n7. CZK - Czech Koruna\n8. DKK - Danish Krone\n9. EUR - Euro\n10. GBP - British Pound\n11. HKD - Hong Kong Dollar\n12. HUF - Hungarian Forint\n13. IDR - Indonesian Rupiah\n14. ILS - Israeli New Sheqel\n15. INR - Indian Rupee\n16. ISK - Icelandic Króna\n17. JPY - Japanese Yen\n18. KRW - South Korean Won\n19. MXN - Mexican Peso\n20. MYR - Malaysian Ringgit\n21. NOK - Norwegian Krone\n22. NZD - New Zealand Dollar\n23. PHP - Philippine Peso\n24. PLN - Polish Złoty\n25. RON - Romanian Leu\n26. SEK - Swedish Krona\n27. SGD - Singapore Dollar\n28. THB - Thai Baht\n29. TRY - Turkish Lira\n30. USD - United States Dollar\n31. ZAR - South African Rand\n\nIf you want to convert USD to any of these currencies, you can select the one you are interested in."</span>
<spanid="llm-routing-quickstart"></span><h2>Use Plano as a Model Proxy (Gateway)<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="#use-plano-as-a-model-proxy-gateway"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#use-plano-as-a-model-proxy-gateway'"><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>
<h3>Step 1. Create plano config file<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="#id2"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#id2'"><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>Plano operates based on a configuration file where you can define LLM providers, prompt targets, guardrails, etc. Below is an example configuration that defines OpenAI and Anthropic LLM providers.</p>
<p>Once the config file is created, ensure that you have environment variables set up for <codeclass="docutils literal notranslate"><spanclass="pre">ANTHROPIC_API_KEY</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">OPENAI_API_KEY</span></code> (or these are defined in a <codeclass="docutils literal notranslate"><spanclass="pre">.env</span></code> file).</p>
<h3>Step 3: Interact with LLM<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="#step-3-interact-with-llm"x-intersect.margin.0%.0%.-70%.0%="activeSection ='#step-3-interact-with-llm'"><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>
<sectionid="step-3-1-using-openai-python-client">
<h4>Step 3.1: Using OpenAI Python client<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="#step-3-1-using-openai-python-client"><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></h4>
</span><spanid="line-14"><spanclass="n">messages</span><spanclass="o">=</span><spanclass="p">[{</span><spanclass="s2">"role"</span><spanclass="p">:</span><spanclass="s2">"user"</span><spanclass="p">,</span><spanclass="s2">"content"</span><spanclass="p">:</span><spanclass="s2">"What is the capital of France?"</span><spanclass="p">}],</span>
<h4>Step 3.2: Using curl command<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="#step-3-2-using-curl-command"><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></h4>
</span><spanid="line-2"><spanclass="w"></span>--data<spanclass="w"></span><spanclass="s1">'{"messages": [{"role": "user","content": "What is the capital of France?"}], "model": "none"}'</span><spanclass="w"></span><spanclass="se">\</span>
</span><spanid="line-13"><spanclass="w"></span><spanclass="s2">"content"</span>:<spanclass="w"></span><spanclass="s2">"The capital of France is Paris."</span>,
<h1>Next Steps<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="#next-steps"><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>Congratulations! You’ve successfully set up Plano and made your first prompt-based request. To further enhance your GenAI applications, explore the following resources:</p>
<li><p><aclass="reference external"href="https://github.com/katanemo/plano#contact"rel="nofollow noopener">Support<svgfill="currentColor"height="1em"stroke="none"viewbox="0 96 960 960"width="1em"xmlns="http://www.w3.org/2000/svg"><pathd="M188 868q-11-11-11-28t11-28l436-436H400q-17 0-28.5-11.5T360 336q0-17 11.5-28.5T400 296h320q17 0 28.5 11.5T760 336v320q0 17-11.5 28.5T720 696q-17 0-28.5-11.5T680 656V432L244 868q-11 11-28 11t-28-11Z"></path></svg></a>: Get help and connect with the Plano community .</p></li>
<p>With Plano, building scalable, fast, and personalized GenAI applications has never been easier. Dive deeper into Plano’s capabilities and start creating innovative AI-driven experiences today!</p>
<li><a:data-current="activeSection === '#build-agentic-apps-with-plano'"class="reference internal"href="#build-agentic-apps-with-plano">Build Agentic Apps with Plano</a><ul>
<li><a:data-current="activeSection === '#building-agents-with-plano-orchestration'"class="reference internal"href="#building-agents-with-plano-orchestration">Building agents with Plano orchestration</a><ul>
<li><a:data-current="activeSection === '#step-2-start-your-agents-and-plano'"class="reference internal"href="#step-2-start-your-agents-and-plano">Step 2. Start your agents and Plano</a></li>
<li><a:data-current="activeSection === '#step-3-send-a-prompt-and-let-plano-route'"class="reference internal"href="#step-3-send-a-prompt-and-let-plano-route">Step 3. Send a prompt and let Plano route</a></li>
</ul>
</li>
<li><a:data-current="activeSection === '#deterministic-api-calls-with-prompt-targets'"class="reference internal"href="#deterministic-api-calls-with-prompt-targets">Deterministic API calls with prompt targets</a><ul>
<li><a:data-current="activeSection === '#step-1-create-plano-config-file'"class="reference internal"href="#step-1-create-plano-config-file">Step 1. Create plano config file</a></li>
<li><a:data-current="activeSection === '#step-2-start-plano-with-currency-conversion-config'"class="reference internal"href="#step-2-start-plano-with-currency-conversion-config">Step 2. Start plano with currency conversion config</a></li>
<li><a:data-current="activeSection === '#use-plano-as-a-model-proxy-gateway'"class="reference internal"href="#use-plano-as-a-model-proxy-gateway">Use Plano as a Model Proxy (Gateway)</a><ul>
<li><a:data-current="activeSection === '#id2'"class="reference internal"href="#id2">Step 1. Create plano config file</a></li>