<?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: dataqbs</title>
    <description>The latest articles on DEV Community by dataqbs (@carloscape).</description>
    <link>https://dev.to/carloscape</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3960586%2Fc542778b-27e1-4951-aa70-2d909b0df918.jpeg</url>
      <title>DEV Community: dataqbs</title>
      <link>https://dev.to/carloscape</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/carloscape"/>
    <language>en</language>
    <item>
      <title>How Octorato does per-client FinOps: attribution + hard budget caps</title>
      <dc:creator>dataqbs</dc:creator>
      <pubDate>Mon, 01 Jun 2026 16:44:18 +0000</pubDate>
      <link>https://dev.to/carloscape/octorato-an-organic-file-native-model-for-ai-agents-8lf</link>
      <guid>https://dev.to/carloscape/octorato-an-organic-file-native-model-for-ai-agents-8lf</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;An &lt;strong&gt;Octorato&lt;/strong&gt; runs one operator's "brain" across many sealed client &lt;em&gt;arms&lt;/em&gt;. The moment you do that, one question decides whether you have a business or a money pit: &lt;strong&gt;which client's actions burned which tokens — and can you stop one client from running you to a $4,000 bill?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the part people bolt on &lt;em&gt;after&lt;/em&gt; the first surprise invoice. In Octorato it's native, because the architecture forces it. Here's exactly how it works — and, just as importantly, where it's an estimate vs. a hard guarantee.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attribution: per &lt;em&gt;arm&lt;/em&gt;, not per request
&lt;/h2&gt;

&lt;p&gt;Every client is a sealed arm — its own repo/workspace. Cost is aggregated from &lt;strong&gt;local session logs at list price, keyed by repo path&lt;/strong&gt;. So the unit of attribution is the arm (the client), rolled up across its sessions.&lt;/p&gt;

&lt;p&gt;Being honest about the granularity: this is an &lt;strong&gt;estimate&lt;/strong&gt;, not a billing-grade per-request meter. There's a small unattributed remainder, and it's list-price math, not your negotiated rate. The project says so out loud rather than implying precision it doesn't have — &lt;em&gt;you can't price what you can't measure, but you also shouldn't pretend to measure what you estimate.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Enforcement: a hook that refuses the tool
&lt;/h2&gt;

&lt;p&gt;Tracking that client X spent $40 is step one. Stopping X from spending $4,000 is the step that actually protects you — and it's the part most frameworks skip.&lt;/p&gt;

&lt;p&gt;Octorato's budget gate is real code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;budget-check.py&lt;/code&gt; exits non-zero when an arm's grace-adjusted cap is burned through.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;PreToolUse&lt;/code&gt; hook &lt;strong&gt;refuses the expensive tool&lt;/strong&gt; (sub-agent spawn, browser automation, etc.) &lt;em&gt;before&lt;/em&gt; it runs.&lt;/li&gt;
&lt;li&gt;Three tiers: &lt;strong&gt;alert → warn → hard_stop&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest caveat: it arms itself only once you set a per-arm cap in &lt;code&gt;budgets.yaml&lt;/code&gt;. The &lt;em&gt;mechanism&lt;/em&gt; is real; the &lt;em&gt;precision&lt;/em&gt; is opt-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why isolation gives you FinOps for free
&lt;/h2&gt;

&lt;p&gt;The trick isn't a billing module bolted on top — it's the cell wall. &lt;strong&gt;The same wall that isolates a client is the wall that meters them.&lt;/strong&gt; Because an arm never sees another arm, its session logs are already a clean per-client ledger. The arm &lt;em&gt;is&lt;/em&gt; the ledger.&lt;/p&gt;

&lt;p&gt;That's also the wager on the right side of the &lt;a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027" rel="noopener noreferrer"&gt;Gartner prediction&lt;/a&gt; that 40% of agentic-AI projects get cancelled by 2027 over unmanaged cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;White paper: &lt;a href="https://www.dataqbs.com/octorato" rel="noopener noreferrer"&gt;https://www.dataqbs.com/octorato&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source (MIT): &lt;a href="https://github.com/CarlosCaPe/octorato" rel="noopener noreferrer"&gt;https://github.com/CarlosCaPe/octorato&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One brain, sealed arms, one ledger per client — because the arm &lt;em&gt;is&lt;/em&gt; the ledger. 🐙&lt;/p&gt;

</description>
      <category>ai</category>
      <category>finops</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Octorato: an open-source AI agent OS with built-in per-client FinOps</title>
      <dc:creator>dataqbs</dc:creator>
      <pubDate>Sun, 31 May 2026 00:42:23 +0000</pubDate>
      <link>https://dev.to/carloscape/octorato-an-open-source-ai-agent-os-with-built-in-per-client-finops-1b3i</link>
      <guid>https://dev.to/carloscape/octorato-an-open-source-ai-agent-os-with-built-in-per-client-finops-1b3i</guid>
      <description>&lt;p&gt;Most agent frameworks assume one agent, one app, one bill. The moment you run agents for &lt;em&gt;many&lt;/em&gt; clients, two problems appear that no runtime solves for you: &lt;strong&gt;you can't prove which client burned which tokens&lt;/strong&gt;, and &lt;strong&gt;nothing stops one client's workspace from leaking into another's&lt;/strong&gt;. I built Octorato to fix exactly that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Octorato is
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Octorato is an open-source AI agent operating system: one file-native "brain" — rules, 190+ skills, 180+ specialist agents, all plain markdown under git — that a single operator runs across many sealed client "arms," with per-client token attribution and opt-in budget caps.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's not a runtime you import. It's the agent's &lt;em&gt;self&lt;/em&gt; as files you can read, diff, fork, and own — runtime-agnostic (it runs on Claude Code today).&lt;/p&gt;

&lt;h2&gt;
  
  
  The octopus model
&lt;/h2&gt;

&lt;p&gt;One &lt;strong&gt;brain&lt;/strong&gt;, many &lt;strong&gt;arms&lt;/strong&gt;. The brain holds the shared self: rules (the constitution), skills (HOW to do things), agents (WHO does them). Each arm is a sealed deployment serving exactly one client. Knowledge flows &lt;em&gt;down&lt;/em&gt; (generic skills cascade to every arm) and lessons flow &lt;em&gt;up&lt;/em&gt; (anonymized patterns get distilled back into the brain). Like a real octopus, most of the neurons live in the arms, not the head.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "file-native" matters
&lt;/h2&gt;

&lt;p&gt;Your agent's identity, skills, and memory normally live trapped inside vendor code and a cloud console — you can't read the whole self, diff a change, or move it. Octorato keeps all of it as plain markdown under version control. Identity becomes &lt;strong&gt;diffable, reviewable, portable, and ownable&lt;/strong&gt;. Text outlives runtimes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part nobody else does: FinOps and isolation are the same wall
&lt;/h2&gt;

&lt;p&gt;Because each arm is a sealed cell that no other arm can see, every token an arm spends is &lt;em&gt;attributable&lt;/em&gt; to exactly one client by construction. Cellular isolation &lt;strong&gt;is&lt;/strong&gt; per-client FinOps — the wall that seals a client is the wall that meters it. Concretely: per-arm USD rollup (estimated from local session logs at list price), cost-spike alerts, and an &lt;strong&gt;opt-in&lt;/strong&gt; &lt;code&gt;PreToolUse&lt;/code&gt; budget gate — wire the hook and set a client's cap in &lt;code&gt;budgets.yaml&lt;/code&gt;, and it refuses the tool call (exits non-zero) once the cap is hit.&lt;/p&gt;

&lt;p&gt;Gartner predicts &lt;a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027" rel="noopener noreferrer"&gt;over 40% of agentic AI projects will be cancelled by 2027&lt;/a&gt; over unmanaged cost. The boring discipline — attribute every token, cap every client — is what keeps you on the right side of that statistic.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it compares (honestly)
&lt;/h2&gt;

&lt;p&gt;CrewAI, LangGraph, and AutoGen are excellent &lt;strong&gt;Python agent-runtime frameworks&lt;/strong&gt;: you define agents and graphs in code and they execute in-process. They have far larger communities. Octorato lives at a different layer — the self as files — and its defensible difference is &lt;strong&gt;multi-tenant arm isolation plus built-in FinOps&lt;/strong&gt;, which runtime frameworks don't target. If you're building one app, use a runtime framework. If you're an operator or agency serving many clients from one brain, that's the gap Octorato fills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;It's MIT-licensed and public: &lt;a href="https://github.com/CarlosCaPe/octorato" rel="noopener noreferrer"&gt;https://github.com/CarlosCaPe/octorato&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://github.com/CarlosCaPe/octorato/blob/master/WHITEPAPER.md" rel="noopener noreferrer"&gt;white paper&lt;/a&gt; for the full model, or the &lt;a href="https://github.com/CarlosCaPe/octorato/blob/master/FAQ.md" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt; for the short version. Contributions welcome — every contributor is credited.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
