<?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: Lucas Argate</title>
    <description>The latest articles on DEV Community by Lucas Argate (@lucasargate).</description>
    <link>https://dev.to/lucasargate</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%2F714271%2Fb9e65464-2733-4105-aeb3-9702433fd3d7.jpeg</url>
      <title>DEV Community: Lucas Argate</title>
      <link>https://dev.to/lucasargate</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucasargate"/>
    <language>en</language>
    <item>
      <title>From Yellow Pages to Autonomous Agents: Why I’m Building a New Protocol for the Service Economy</title>
      <dc:creator>Lucas Argate</dc:creator>
      <pubDate>Sun, 25 Jan 2026 13:56:51 +0000</pubDate>
      <link>https://dev.to/lucasargate/from-yellow-pages-to-autonomous-agents-why-im-building-a-new-protocol-for-the-service-economy-ca1</link>
      <guid>https://dev.to/lucasargate/from-yellow-pages-to-autonomous-agents-why-im-building-a-new-protocol-for-the-service-economy-ca1</guid>
      <description>&lt;h3&gt;
  
  
  The Context: A 35-Year-Old Database vs. The Future
&lt;/h3&gt;

&lt;p&gt;By day, I work as a Senior AI Engineer and Tech Lead, building agents and fine-tuning LLMs. But by night, I maintain a system that is the reality for thousands of developers: &lt;strong&gt;Legacy Code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My family runs a service business in Brazil (&lt;strong&gt;CARRÊ Redes&lt;/strong&gt;, specialized in safety net installations). Their system started in &lt;strong&gt;Clipper/xBase in 1991&lt;/strong&gt;. In 2006, I migrated it to C# (.NET Framework 4.5, MVC 4). Today, the data lives in a robust &lt;strong&gt;SQL Server&lt;/strong&gt;, holding decades of customer history, building measurements, and pricing rules.&lt;/p&gt;

&lt;p&gt;Recently, Google and OpenAI have been pushing the concept of &lt;strong&gt;Agentic AI&lt;/strong&gt;—interfaces where the AI doesn't just &lt;em&gt;retrieve&lt;/em&gt; information but &lt;em&gt;executes&lt;/em&gt; transactions (e.g., "Book me a flight," "Buy these shoes").&lt;/p&gt;

&lt;p&gt;I wanted to plug my family's legacy system into this new world. I wanted an AI Agent to be able to quote and schedule an installation automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And I hit a wall.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The current protocols for "AI Commerce" (like Google's UCP) are built on a fundamental misunderstanding of how the service economy works. I call it &lt;strong&gt;The Retail Fallacy&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Retail Fallacy in AI Design
&lt;/h3&gt;

&lt;p&gt;Most e-commerce schemas assume you are selling a &lt;strong&gt;Product&lt;/strong&gt;.&lt;br&gt;
A Product has:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A static &lt;code&gt;Price&lt;/code&gt; ($50.00).&lt;/li&gt;
&lt;li&gt;A static &lt;code&gt;SKU&lt;/code&gt; (123-ABC).&lt;/li&gt;
&lt;li&gt;A quantitative &lt;code&gt;Stock&lt;/code&gt; (50 units).&lt;/li&gt;
&lt;li&gt;A generic &lt;code&gt;Shipping&lt;/code&gt; cost.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Services are not Products.&lt;/strong&gt;&lt;br&gt;
If I try to sell a "Safety Net Installation" using a Retail Schema, the AI fails miserably:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price Hallucinations:&lt;/strong&gt; The AI sees a "base price" and sells it. But in reality, the price depends on the floor level, the wall type (drywall vs. concrete), and the exact square footage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographic Blindness:&lt;/strong&gt; In retail, shipping is just a fee. In services, geography is a binary constraint. A technician in City A cannot serve City B, no matter the price.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inventory is Time:&lt;/strong&gt; I don't have "units" in stock. I have "time slots" in a calendar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To fix this, I realized we don't need a better chatbot. We need a better &lt;strong&gt;Protocol&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Introducing USP: The Universal Services Protocol
&lt;/h3&gt;

&lt;p&gt;I decided to draft an open standard to bridge the gap between AI Agents and real-world Service Providers. I call it the &lt;strong&gt;USP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It relies on &lt;strong&gt;four architectural pillars&lt;/strong&gt; that replace the standard Retail primitives.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Geography as a Constraint (Serviceability Check)
&lt;/h4&gt;

&lt;p&gt;Before an Agent even &lt;em&gt;thinks&lt;/em&gt; about quoting, it must handshake on location. We replace "Shipping Calculation" with a &lt;strong&gt;Serviceability Endpoint&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Flow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent sends: &lt;code&gt;{ "lat": -22.90, "long": -47.06 }&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;My Backend (The Legacy Wrapper) checks a Polygon or calculates the driving distance.&lt;/li&gt;
&lt;li&gt;Response: &lt;code&gt;TRUE&lt;/code&gt; (with a dynamic travel fee) or &lt;code&gt;FALSE&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If &lt;code&gt;FALSE&lt;/code&gt;, the conversation ends gracefully. No hallucinations.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Price as a Function (Dynamic Quoting)
&lt;/h4&gt;

&lt;p&gt;This is the game-changer for legacy systems. &lt;strong&gt;Price is not a variable; it's a function.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The protocol defines that the Provider must expose a &lt;strong&gt;Schema of Required Inputs&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Provider says:&lt;/em&gt; "To quote this, I need: &lt;code&gt;height&lt;/code&gt;, &lt;code&gt;width&lt;/code&gt;, and &lt;code&gt;building_type&lt;/code&gt;."&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Agent:&lt;/em&gt; Asks the user for these details.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Agent:&lt;/em&gt; POSTs the data to &lt;code&gt;/usp/quote&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Magic:&lt;/strong&gt; My backend receives this. It runs a SQL query against data from 1991.&lt;br&gt;
&lt;em&gt;"Oh, this is the Solar Building. We installed there in 1998. The balcony is exactly 12m²."&lt;/em&gt;&lt;br&gt;
The API returns a &lt;strong&gt;deterministic, signed price&lt;/strong&gt;. The LLM does zero math. It just conveys the result.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Inventory is Time
&lt;/h4&gt;

&lt;p&gt;We treat &lt;strong&gt;Time Slots&lt;/strong&gt; like SKUs.&lt;br&gt;
The API exposes an &lt;code&gt;/availability&lt;/code&gt; endpoint.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;GET /slots?date=2026-02-10&lt;/code&gt; returns &lt;code&gt;["09:00", "14:00"]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The Agent can "Soft Lock" a slot (Mutex) while processing the payment to avoid race conditions (double-booking).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. Contextual Idempotency
&lt;/h4&gt;

&lt;p&gt;Service negotiations are long. A user might ask for a quote today and book it next week.&lt;br&gt;
The USP requires &lt;strong&gt;Stateful Quotes&lt;/strong&gt;. If an Agent quotes a job, it receives a &lt;code&gt;quote_id&lt;/code&gt;. That ID is valid for X days. This ensures the price doesn't fluctuate if the user pauses the chat.&lt;/p&gt;




&lt;h3&gt;
  
  
  The "Legacy Wrapper" Pattern
&lt;/h3&gt;

&lt;p&gt;This is where it gets interesting for us developers. &lt;strong&gt;You don't need to rewrite your Monolith.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am not rewriting the C# MVC 4 application.&lt;br&gt;
I am building a lightweight &lt;strong&gt;Sidecar API&lt;/strong&gt; (using .NET 8 Minimal APIs or Python FastAPI) that sits &lt;em&gt;in front&lt;/em&gt; of the SQL Server.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The AI Agent&lt;/strong&gt; speaks JSON (USP Standard).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Sidecar&lt;/strong&gt; speaks SQL (Stored Procedures).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This transforms the "Legacy Debt" into a "Data Moat."&lt;br&gt;
My 30-year-old database is no longer an anchor; it's an &lt;strong&gt;Oracle&lt;/strong&gt;. It has data that no LLM training set has (e.g., specific measurements of local buildings, real-world service times).&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Open Source?
&lt;/h3&gt;

&lt;p&gt;I am documenting this protocol to be an Open Source standard. Brazil is the perfect sandbox for this—we have a complex service economy and a heavy reliance on conversational commerce (WhatsApp).&lt;/p&gt;

&lt;p&gt;If we can build a standard where a &lt;strong&gt;Plumber's SQL Database&lt;/strong&gt; can talk natively to &lt;strong&gt;Gemini or ChatGPT&lt;/strong&gt;, we unlock a massive layer of the economy that is currently invisible to AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Call for Contributors
&lt;/h3&gt;

&lt;p&gt;I am currently finalizing the &lt;strong&gt;OpenAPI (Swagger) Specification&lt;/strong&gt; for the USP.&lt;/p&gt;

&lt;p&gt;I’m looking for feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have you tried integrating Services into AI Agents?&lt;/li&gt;
&lt;li&gt;How did you handle the "Dynamic Pricing" problem?&lt;/li&gt;
&lt;li&gt;Is abstracting this into a Protocol overkill, or necessary?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ll be releasing the repo link soon. Let’s build the API for the real world.&lt;/p&gt;




&lt;p&gt;follow git repo: &lt;a href="https://github.com/LucasArgate/open-usp" rel="noopener noreferrer"&gt;https://github.com/LucasArgate/open-usp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discussion:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;What’s the oldest legacy system you’ve had to integrate with a modern API? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
