<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rod Rivera</title>
    <description>The latest articles on DEV Community by Rod Rivera (@rodriveraai).</description>
    <link>https://dev.to/rodriveraai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3507050%2F92f712e1-c841-4f41-8eca-720239f1816a.png</url>
      <title>DEV Community: Rod Rivera</title>
      <link>https://dev.to/rodriveraai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rodriveraai"/>
    <language>en</language>
    <item>
      <title>Stop Building Brittle Agent Workflows</title>
      <dc:creator>Rod Rivera</dc:creator>
      <pubDate>Tue, 16 Sep 2025 17:56:09 +0000</pubDate>
      <link>https://dev.to/rodriveraai/stop-building-brittle-agent-workflows-2g1k</link>
      <guid>https://dev.to/rodriveraai/stop-building-brittle-agent-workflows-2g1k</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: AI agents fail when they can't reliably chain API calls together. The &lt;a href="https://github.com/jentic/arazzo-engine/tree/main/generator" rel="noopener noreferrer"&gt;Arazzo Generator&lt;/a&gt; automatically discovers workflow patterns from OpenAPI specs, and the Runner executes them deterministically. This means agents that actually work in production instead of breaking on the second API call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Agents Need This
&lt;/h2&gt;

&lt;p&gt;Your AI agent can write perfect code, analyze complex data, and generate creative content. But ask it to book a flight, and it falls apart.&lt;/p&gt;

&lt;p&gt;The problem isn't the reasoning. It's the execution. Real tasks require multiple API calls in sequence: authenticate, search flights, check availability, reserve seats, process payment, send confirmation.&lt;/p&gt;

&lt;p&gt;Most agents handle this with brittle prompt engineering: &lt;em&gt;"First call the auth endpoint, then use that token to call the search endpoint..."&lt;/em&gt; When any step fails, the whole workflow breaks. The agent retries random steps, passes parameters incorrectly, or gives up entirely.&lt;/p&gt;

&lt;p&gt;Production systems need deterministic workflows. Not LLM guesswork about which API to call next.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Missing Standard
&lt;/h2&gt;

&lt;p&gt;OpenAPI describes individual endpoints perfectly. But it doesn't describe how endpoints connect into workflows. That gap kills agent reliability.&lt;/p&gt;

&lt;p&gt;You get documentation like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# What OpenAPI gives you&lt;/span&gt;
&lt;span class="s"&gt;POST /auth/login&lt;/span&gt;
&lt;span class="s"&gt;GET /flights/search&lt;/span&gt;  
&lt;span class="s"&gt;POST /bookings/create&lt;/span&gt;
&lt;span class="s"&gt;GET /bookings/{id}/confirm&lt;/span&gt;
&lt;span class="s"&gt;POST /payments/process&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But agents need this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# What agents actually need&lt;/span&gt;
&lt;span class="s"&gt;1. Login (POST /auth/login) -&amp;gt; get auth token&lt;/span&gt;
&lt;span class="s"&gt;2. Search flights (GET /flights/search) -&amp;gt; get flight options&lt;/span&gt;  
&lt;span class="s"&gt;3. Create booking (POST /bookings/create) -&amp;gt; reserve seat&lt;/span&gt;
&lt;span class="s"&gt;4. Process payment (POST /payments/process) -&amp;gt; charge card&lt;/span&gt;
&lt;span class="s"&gt;5. Confirm booking (GET /bookings/{id}/confirm) -&amp;gt; final verification&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Arazzo Specification fills this gap. It is a standard from the OpenAPI Initiative that describes multi-step API workflows in machine-readable format.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Arazzo Engine Works
&lt;/h2&gt;

&lt;p&gt;Two components solve the workflow problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/jentic/arazzo-engine/tree/main/generator" rel="noopener noreferrer"&gt;Arazzo Generator&lt;/a&gt;&lt;/strong&gt;: Analyzes OpenAPI specs and automatically identifies logical workflow patterns using AI. No manual mapping required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/jentic/arazzo-engine/tree/main/runner" rel="noopener noreferrer"&gt;Arazzo Runner&lt;/a&gt;&lt;/strong&gt;: Executes workflows deterministically with proper error handling, retries, and parameter passing.&lt;/p&gt;

&lt;p&gt;Think of it as infrastructure for reliable agent execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  See It Work
&lt;/h2&gt;

&lt;p&gt;Generate workflows from any OpenAPI spec:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install the generator&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;arazzo-generator

&lt;span class="c"&gt;# Generate workflows from your API&lt;/span&gt;
arazzo-generator generate https://api.example.com/openapi.json &lt;span class="nt"&gt;-o&lt;/span&gt; workflows.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The generator discovers patterns like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;workflows&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;workflowId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;book-flight&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Complete flight booking workflow&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;stepId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;authenticate&lt;/span&gt;
        &lt;span class="na"&gt;operationId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;login&lt;/span&gt;
        &lt;span class="na"&gt;outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;authToken&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$response.body.token&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;stepId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;search-flights&lt;/span&gt;
        &lt;span class="na"&gt;operationId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;searchFlights&lt;/span&gt;
        &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Authorization&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$steps.authenticate.outputs.authToken&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;origin&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$inputs.origin&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;destination&lt;/span&gt;  
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$inputs.destination&lt;/span&gt;
        &lt;span class="na"&gt;outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;flightOptions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$response.body.flights&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;stepId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;create-booking&lt;/span&gt;
        &lt;span class="na"&gt;operationId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;createBooking&lt;/span&gt;
        &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Authorization&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$steps.authenticate.outputs.authToken&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;flightId&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$steps.search-flights.outputs.flightOptions[0].id&lt;/span&gt;
        &lt;span class="na"&gt;outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;bookingId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$response.body.bookingId&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;stepId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;process-payment&lt;/span&gt;
        &lt;span class="na"&gt;operationId&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;processPayment&lt;/span&gt;
        &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Authorization&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$steps.authenticate.outputs.authToken&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bookingId&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$steps.create-booking.outputs.bookingId&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;paymentMethod&lt;/span&gt;
            &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$inputs.paymentMethod&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your agent can execute the entire workflow reliably:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;arazzo_runner&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ArazzoRunner&lt;/span&gt;

&lt;span class="n"&gt;runner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ArazzoRunner&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;workflow_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;workflows.yaml&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;workflow_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;book-flight&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;origin&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;NYC&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;destination&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;LAX&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;paymentMethod&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;card_12345&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The runner handles authentication, parameter passing, error recovery, and step dependencies. Your agent focuses on business logic instead of API orchestration.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Agents
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Before Arazzo:&lt;/strong&gt; Agents guess at workflow steps, pass parameters incorrectly, and break when APIs change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After Arazzo:&lt;/strong&gt; Agents execute deterministic workflows with proper error handling and recovery.&lt;/p&gt;

&lt;p&gt;The difference is production reliability. Instead of brittle prompt chains, you get standardized workflow execution that works consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Examples Agents Can Execute
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;E-commerce Purchase:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;arazzo-generator generate shop-api.yaml &lt;span class="nt"&gt;--workflow-descriptions&lt;/span&gt; &lt;span class="s2"&gt;"complete purchase flow"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Discovers:&lt;/strong&gt; Product search -&amp;gt; Add to cart -&amp;gt; Apply coupon -&amp;gt; Process payment -&amp;gt; Send confirmation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Onboarding:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;arazzo-generator generate user-api.yaml &lt;span class="nt"&gt;--workflow-descriptions&lt;/span&gt; &lt;span class="s2"&gt;"new user setup"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finds: Create account -&amp;gt; Verify email -&amp;gt; Setup profile -&amp;gt; Configure preferences -&amp;gt; Send welcome&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Processing:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;arazzo-generator generate data-api.yaml &lt;span class="nt"&gt;--workflow-descriptions&lt;/span&gt; &lt;span class="s2"&gt;"ETL pipeline"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Maps: Upload file -&amp;gt; Validate format -&amp;gt; Transform data -&amp;gt; Store results -&amp;gt; Generate report&lt;/p&gt;

&lt;p&gt;Each workflow includes proper error handling, retry logic, and parameter validation. Agents execute them reliably without custom orchestration code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join Hacktoberfest 2025
&lt;/h2&gt;

&lt;p&gt;The Arazzo Engine is participating in &lt;a href="https://jentic.com/blog/jentic-joins-hacktoberfest-2025-building-ai-agents-together" rel="noopener noreferrer"&gt;Hacktoberfest&lt;/a&gt; this October. Over 40 beginner-friendly issues are ready for contributors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflow generation&lt;/strong&gt;: Improve AI-powered pattern discovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runner reliability&lt;/strong&gt;: Better error handling and recovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: Examples and tutorials for agent integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing&lt;/strong&gt;: Edge cases and integration coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All skill levels welcome. Every contribution helps make agent workflows more reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live AMA: September 18
&lt;/h2&gt;

&lt;p&gt;Join the live discussion about Arazzo and agent workflows at the &lt;strong&gt;&lt;a href="https://luma.com/kym283lv" rel="noopener noreferrer"&gt;Ask Me Anything with Vladimír Gorej&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;When?&lt;/strong&gt; September 18&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What will we learn?&lt;/strong&gt; How Arazzo makes agent runtimes more predictable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why attend?&lt;/strong&gt; We will have live demos of workflow execution and a walkthrough for any Hacktoberfest contributors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vladimír is a former Principal Engineer at Oracle, GitHub Star, and co-founder of SpecLynx. He knows OpenAPI tooling and how standards actually work in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters Now
&lt;/h2&gt;

&lt;p&gt;Agentic systems do real work only when they can call the right tools, in the right order, with the right credentials. Prompt engineering won't scale to complex multi-API workflows.&lt;/p&gt;

&lt;p&gt;Standards solve this, as they provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deterministic execution instead of LLM guesswork&lt;/li&gt;
&lt;li&gt;Proper error handling and recovery patterns
&lt;/li&gt;
&lt;li&gt;Parameter validation and type safety&lt;/li&gt;
&lt;li&gt;Auditability for production systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Arazzo Specification gives agents the infrastructure they need to work reliably at scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Install the generator:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;arazzo-generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate workflows from your OpenAPI specs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Basic generation&lt;/span&gt;
arazzo-generator generate api.yaml

&lt;span class="c"&gt;# Focus on specific workflows  &lt;/span&gt;
arazzo-generator generate api.yaml &lt;span class="nt"&gt;--workflow-descriptions&lt;/span&gt; &lt;span class="s2"&gt;"user onboarding"&lt;/span&gt; &lt;span class="s2"&gt;"checkout flow"&lt;/span&gt;

&lt;span class="c"&gt;# Validate output&lt;/span&gt;
arazzo-generator validate workflows.arazzo.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Integrate with your agent framework:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Use with any agent runtime
&lt;/span&gt;&lt;span class="n"&gt;runner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ArazzoRunner&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user-onboarding&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;agent_context&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The workflows follow the official Arazzo specification. They work with any compliant runner and integrate with existing agent architectures.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Infrastructure Difference
&lt;/h2&gt;

&lt;p&gt;Agents are infrastructure. They need reliable tools, not creative interpretations of API documentation.&lt;/p&gt;

&lt;p&gt;Arazzo provides the missing layer between OpenAPI specs and agent execution. It makes workflows explicit, deterministic, and auditable.&lt;/p&gt;

&lt;p&gt;Your agents stop guessing about API sequences. They execute proven patterns with proper error handling.&lt;/p&gt;

&lt;p&gt;No more brittle prompt chains. No more debugging why the booking failed at step 3. Just reliable workflow execution that works in production.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;The Arazzo Engine is open source and part of Hacktoberfest 2025. Contribute at &lt;a href="https://github.com/jentic/arazzo-engine" rel="noopener noreferrer"&gt;github.com/jentic/arazzo-engine&lt;/a&gt; or join the &lt;a href="https://luma.com/kym283lv" rel="noopener noreferrer"&gt;live AMA on September 18&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
    </item>
  </channel>
</rss>
