<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Agentic Ops Dispatch]]></title><description><![CDATA[AI Augmented Devops | AI Infrastructure (MLOps/LLMOps) | Agentic Devops. Field Notes by Gourav Shah. ]]></description><link>https://agenticops.tv</link><image><url>https://agenticops.tv/img/substack.png</url><title>Agentic Ops Dispatch</title><link>https://agenticops.tv</link></image><generator>Substack</generator><lastBuildDate>Tue, 14 Jul 2026 00:40:21 GMT</lastBuildDate><atom:link href="https://agenticops.tv/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Gourav Shah]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[schoolofdevops@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[schoolofdevops@substack.com]]></itunes:email><itunes:name><![CDATA[Gourav Shah]]></itunes:name></itunes:owner><itunes:author><![CDATA[Gourav Shah]]></itunes:author><googleplay:owner><![CDATA[schoolofdevops@substack.com]]></googleplay:owner><googleplay:email><![CDATA[schoolofdevops@substack.com]]></googleplay:email><googleplay:author><![CDATA[Gourav Shah]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Field Note #1: Building an Agentic Ops Harness]]></title><description><![CDATA[Superpowers for DevOps, SRE, Platform Engineering, and MLOps]]></description><link>https://agenticops.tv/p/field-note-1-building-an-agentic</link><guid isPermaLink="false">https://agenticops.tv/p/field-note-1-building-an-agentic</guid><dc:creator><![CDATA[Gourav Shah]]></dc:creator><pubDate>Mon, 13 Jul 2026 16:25:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/49ca469b-95fe-454f-9037-baa87bc84bc2_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today&#8217;s experiment started with a simple question:</p><blockquote><p>What would an Ansible-like system look like if it were designed for AI-native operations?</p></blockquote><p>Not &#8220;AI writes a shell script once.&#8221;</p><p>Not &#8220;chat with a bot and hope it remembers your infra.&#8221;</p><p>I mean something closer to the way real ops teams work: roles, teams, responsibilities, reusable capabilities, project context, runtime permissions, workflows, and operating models.</p><p>That led to today&#8217;s build: <strong>AOH: Agentic Ops Harness</strong>.</p><p>Repo: <a href="https://github.com/agenticdevops/aoh">https://github.com/agenticdevops/aoh</a></p><p>AOH is my first cut at a Git-native harness for designing and running agentic DevOps, SRE, Platform Engineering, and MLOps capabilities.</p><div><hr></div><h2>The Thought Process</h2><p>The first instinct was to model &#8220;skills.&#8221;</p><p>That made sense because tools like Hermes, Goose, Claude Code, Codex, and others are converging on some form of reusable agent skill: instructions, scripts, references, and runtime behavior bundled together.</p><p>But very quickly, &#8220;skills&#8221; alone felt too small.</p><p>In real organizations, we do not just have a pile of skills. We have teams.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U6DS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U6DS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!U6DS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!U6DS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!U6DS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U6DS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:908832,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticops.tv/i/206874088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U6DS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!U6DS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!U6DS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!U6DS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2044ce53-2c16-40e3-ad9a-5f342242bbd7_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A platform team has SREs, DevOps engineers, platform engineers, maybe MLOps engineers. Each role has different responsibilities, different tools, different access patterns, and different operating habits.</p><p>So the model evolved:</p><pre><code><code>Org / Business Unit / Project
  -&gt; Team
    -&gt; Role
      -&gt; Skills / Capabilities
      -&gt; Workflows
      -&gt; Runtime Requirements
      -&gt; Model Profile</code></code></pre><p>That felt much closer to reality.</p><p>An SRE role might get:</p><ul><li><p>service health reporting</p></li><li><p>incident triage</p></li><li><p>log analysis</p></li><li><p>Kubernetes read-only diagnostics</p></li></ul><p>A DevOps automation role might get:</p><ul><li><p>deployment automation</p></li><li><p>Terraform plan review</p></li><li><p>release verification</p></li><li><p>rollback workflows</p></li></ul><p>An MLOps role might get:</p><ul><li><p>training job triage</p></li><li><p>GPU utilization checks</p></li><li><p>model deployment diagnostics</p></li><li><p>checkpoint/retry guidance</p></li></ul><p>Same team. Different roles. Different capabilities.</p><p>That became the core abstraction.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://agenticops.tv/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Agentic Ops Dispatch! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>What I Built Today</h2><p>I built the first working MVP of <strong>AOH: Agentic Ops Harness</strong>.</p><p>Right now AOH is a Git repository structure plus a small CLI/compiler.</p><p>It contains:</p><ul><li><p><strong>Packs</strong>: source-of-truth bundles for agentic ops capabilities</p></li><li><p><strong>Teams</strong>: org/project/BU-level groups</p></li><li><p><strong>Roles</strong>: real-world job functions like SRE, DevOps Engineer, MLOps Engineer</p></li><li><p><strong>Skills</strong>: reusable agent capabilities written as <code>SKILL.md</code></p></li><li><p><strong>Workflows</strong>: repeatable ops flows</p></li><li><p><strong>Runtime requirements</strong>: tools and capabilities needed by a role/workflow</p></li><li><p><strong>Model profiles</strong>: model/provider intent</p></li><li><p><strong>Adapters</strong>: compilers into agent runtimes</p></li></ul><p>The first runtime adapter is for <strong>Hermes Agent</strong>.</p><p>For Hermes, AOH compiles:</p><pre><code><code>AOH Team -&gt; multiple Hermes profiles
AOH Role -&gt; one Hermes profile
AOH Skills -&gt; profile-local Hermes skills
AOH Role instructions -&gt; SOUL.md
AOH launch -&gt; launch.sh</code></code></pre><p>So a team definition can generate multiple runnable Hermes agents.</p><div><hr></div><h2>The First Real Example</h2><p>I created an example pack:</p><pre><code><code>examples/acme-platform-ops</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5HZA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5HZA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!5HZA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!5HZA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5HZA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5HZA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:878379,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agenticops.tv/i/206874088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5HZA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!5HZA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!5HZA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5HZA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5821db8-4c2a-4049-b73d-917a976352f9_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>It models an imaginary <strong>Acme Platform Ops Team</strong> with three roles:</p><pre><code><code>platform-ops team
  -&gt; sre-platform
  -&gt; devops-automation
  -&gt; mlops-training</code></code></pre><p>Each role has a different capability set.</p><p>The SRE role gets:</p><pre><code><code>service-health-report
docker-disk-cleanup</code></code></pre><p>The DevOps role gets:</p><pre><code><code>deployment-automation
terraform-plan-review
service-health-report</code></code></pre><p>The MLOps role gets:</p><pre><code><code>ml-training-job-triage
service-health-report</code></code></pre><p>That is the important part: the agent is not just &#8220;an AI assistant.&#8221; It is a scoped operational role with a curated capability set.</p><div><hr></div><h2>Why This Matters</h2><p>Most AI tooling today is still very individual-agent centric.</p><p>You launch a coding agent. You give it a task. It works in a repo.</p><p>That is useful, but DevOps and SRE work is team-shaped.</p><p>We need AI-native ops systems that understand:</p><ul><li><p>who the agent is acting as</p></li><li><p>what team it belongs to</p></li><li><p>what project or business unit it serves</p></li><li><p>what capabilities it should have</p></li><li><p>what workflows it can run</p></li><li><p>what runtime should execute it</p></li><li><p>what tools it needs</p></li><li><p>what model profile makes sense for the job</p></li></ul><p>AOH is trying to make that structure explicit and version-controlled.</p><div><hr></div><h2>How It Works</h2><p>At the source level, AOH is just files in Git.</p><p>A simplified pack looks like this:</p><pre><code><code>acme-platform-ops/
  AOH.yaml
  teams/
    platform-ops.yaml
  agents/
    sre-platform.yaml
    devops-automation.yaml
    mlops-training.yaml
  skills/
    service-health-report/
      SKILL.md
    deployment-automation/
      SKILL.md
    ml-training-job-triage/
      SKILL.md
  workflows/
  models/
  runtime-requirements/
  evals/</code></code></pre><p>Then the CLI validates and compiles that pack into runtime-native artifacts.</p><p>For Hermes:</p><pre><code><code>uv run aoh install-hermes-team examples/acme-platform-ops \
  --profiles-dir ~/.hermes/profiles \
  --team platform-ops \
  --profile-prefix acme-platform \
  --provider openai-codex \
  --model gpt-5.4 \
  --cwd "$PWD"</code></code></pre><p>That creates Hermes profiles like:</p><pre><code><code>acme-platform-sre-platform
acme-platform-devops-automation
acme-platform-mlops-training</code></code></pre><p>Each profile has its own role instructions, local skills, config, and launch script.</p><div><hr></div><h2>Where We Are Now</h2><p>The MVP is working.</p><p>I tested the generated Hermes profile for the DevOps role:</p><pre><code><code>~/.hermes/profiles/acme-platform-devops-automation/launch.sh \
  -q "Answer in one sentence: what AOH role are you, and which AOH skills are associated with you?" \
  --max-turns 2 --quiet</code></code></pre><p>The generated agent responded:</p><pre><code><code>I&#8217;m the AOH DevOps Engineer for Acme Platform in the devops-automation role,
and my associated AOH skills are deployment-automation, terraform-plan-review,
and service-health-report.</code></code></pre><p>That is a small test, but it proves the shape:</p><ul><li><p>team defined in Git</p></li><li><p>role defined in Git</p></li><li><p>skills associated with role</p></li><li><p>Hermes profile generated</p></li><li><p>role-specific agent launched</p></li><li><p>associated skills preloaded at runtime</p></li></ul><p>That is the harness.</p><div><hr></div><h2>What This Is Not Yet</h2><p>This is not a finished platform.</p><p>It is not yet a full registry, package manager, or policy engine.</p><p>It does not yet have adapters for Goose, Codex, Claude Code, or OpenCode.</p><p>It does not yet have a complete eval runner.</p><p>It does not yet model enterprise-grade approvals, secrets, RBAC, or audit trails deeply.</p><p>But the foundation is now there.</p><p>The source-of-truth model is becoming clear.</p><div><hr></div><h2>What Comes Next</h2><p>The next steps I&#8217;m thinking about:</p><ol><li><p><strong>Goose adapter</strong><br>Map AOH skills and workflows into Goose skills, recipes, sub-recipes, and extensions.</p></li><li><p><strong>Codex and Claude Code adapters</strong><br>Compile AOH roles into project instructions, skills, and launch conventions.</p></li><li><p><strong>Eval runner</strong><br>Validate whether a generated role-agent can actually perform the workflow it claims to support.</p></li><li><p><strong>Registry</strong><br>Share AOH packs across teams and organizations.</p></li><li><p><strong>Runtime requirement negotiation</strong><br>Let a runtime say: &#8220;I can satisfy these requirements, but not these.&#8221;</p></li><li><p><strong>Policy metadata</strong><br>Keep AOH engine-neutral but allow adapters to map risk, approvals, and tool access into runtime-native guardrails.</p></li></ol><div><hr></div><h2>Why I&#8217;m Excited About This</h2><p>This feels like a useful bridge between traditional automation and AI-native operations.</p><p>The old world had:</p><pre><code><code>roles
playbooks
inventories
modules
runbooks</code></code></pre><p>The new world needs:</p><pre><code><code>teams
agent roles
skills
workflows
runtime adapters
evals</code></code></pre><p>AOH is an attempt to make that transition concrete.</p><p>Not as a slide.</p><p>As a repo you can clone and run.</p><p>Try it here:</p><p><a href="https://github.com/agenticdevops/aoh">https://github.com/agenticdevops/aoh</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://agenticops.tv/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Agentic Ops Dispatch! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>