<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>CAIPE Blog</title>
        <link>https://caipe.io/blog</link>
        <description>CAIPE Blog</description>
        <lastBuildDate>Thu, 18 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[What's New in 0.5 — Workflows, Scheduled Agents, BYO Credentials, Custom Agents, Fine-Grained Authorization, and Webex]]></title>
            <link>https://caipe.io/blog/whats-new-in-0-5</link>
            <guid>https://caipe.io/blog/whats-new-in-0-5</guid>
            <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The 0.5 series is the biggest leap since the initial release. It ships a new workflow engine, agent-driven scheduled jobs, bring-your-own credentials for MCP tools, fully custom agent management from the UI, relationship-based access control across every resource, and a first-class Webex bot — alongside a dramatically improved admin experience. This post covers all of it.]]></description>
            <content:encoded><![CDATA[<p>The 0.5 series is the biggest leap since the initial release. It ships a new workflow engine, agent-driven scheduled jobs, bring-your-own credentials for MCP tools, fully custom agent management from the UI, relationship-based access control across every resource, and a first-class Webex bot — alongside a dramatically improved admin experience. This post covers all of it.</p>
<blockquote>
<p><strong>Latest release:</strong> use the <a class="" href="https://caipe.io/blog/releases">releases page</a> for the current 0.5.x patch, per-release upgrade guides, and Helm values diffs.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="workflow-engine">Workflow Engine<a href="https://caipe.io/blog/whats-new-in-0-5#workflow-engine" class="hash-link" aria-label="Direct link to Workflow Engine" title="Direct link to Workflow Engine" translate="no">​</a></h2>
<p>The platform now ships a first-class workflow engine backed by LangGraph. You can build multi-step agentic workflows that fan out to sub-agents, pause for human input, and resume — tracked in a live UI timeline.</p>
<ul>
<li class=""><strong>Inline HITL</strong>: When a workflow reaches a <code>waiting_for_input</code> state, the approval form renders directly inside the chat card. No page navigation required. (0.5.43/0.5.45)</li>
<li class=""><strong>Subagent timeline correlation</strong>: Each sub-agent's output is pinned to its triggering step so you can trace execution at a glance. (0.5.41)</li>
<li class=""><strong>Workflow run sharing</strong>: Share a run with one or more teams for collaborative debugging. Team members can view and resume shared runs through OpenFGA access grants. (0.5.39)</li>
<li class=""><strong>Non-admin workflow creation</strong>: Team members can create, edit, and run workflows scoped to their team without platform-wide grants. (0.5.18)</li>
<li class=""><strong>Live status links in chat</strong>: When an agent kicks off a workflow, the response includes a direct URL to the run and polls for live status updates. (0.5.18)</li>
</ul>
<p>The previous Task Builder is superseded by this engine. The legacy standalone supervisor and A2A agents are removed as of 0.5.22 — all routing flows through the dynamic agent layer.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scheduled-agents">Scheduled Agents<a href="https://caipe.io/blog/whats-new-in-0-5#scheduled-agents" class="hash-link" aria-label="Direct link to Scheduled Agents" title="Direct link to Scheduled Agents" translate="no">​</a></h2>
<p>Agents can now create, manage, and run scheduled jobs without any manual intervention. (0.5.36)</p>
<ul>
<li class=""><strong>Scheduler MCP server</strong>: A new <code>mcp-scheduler</code> tool exposes create, list, update, and delete operations. Each schedule is owned by the creating user — only they (or their team members) can manage it.</li>
<li class=""><strong>Kubernetes CronJob backend</strong>: Each schedule maps to a CronJob in the platform namespace. A lightweight <code>caipe-cron-runner</code> pod fires once per interval and exits.</li>
<li class=""><strong>Owner impersonation</strong>: The scheduler uses Keycloak token exchange to mint a real owner-user bearer on each firing. If the owner's access was revoked, the run fails closed — identical to an interactive run.</li>
<li class=""><strong>Conversation history</strong>: Each scheduled run creates a Web UI conversation owned by the schedule's creator.</li>
<li class=""><strong>One-shot and recurring</strong>: Supports standard cron expressions and delayed one-off jobs with optional retry metadata.</li>
</ul>
<p>Enable with <code>scheduler.enabled: true</code>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="byo-credentials-and-impersonation-for-mcp-servers">BYO Credentials and Impersonation for MCP Servers<a href="https://caipe.io/blog/whats-new-in-0-5#byo-credentials-and-impersonation-for-mcp-servers" class="hash-link" aria-label="Direct link to BYO Credentials and Impersonation for MCP Servers" title="Direct link to BYO Credentials and Impersonation for MCP Servers" translate="no">​</a></h2>
<p>You can now attach credentials directly to MCP tool calls — as personal OAuth tokens, service account credentials, or PKCE public-client flows for integrations that don't support a fixed scope.</p>
<ul>
<li class=""><strong>Envelope-encrypted credential store</strong>: AES-GCM with KMS-style data-key wrapping in MongoDB. AWS KMS is recommended for production; <code>local-cmk</code> for non-production only. (0.5.0)</li>
<li class=""><strong>Pin OAuth connections to MCP servers</strong>: Attach a GitHub, Jira, Confluence, or other OAuth provider connection directly to a custom MCP server. The platform forwards credentials automatically on every tool call. (0.5.18)</li>
<li class=""><strong>PKCE public-client OAuth</strong>: For integrations where a fixed connection scope is not appropriate, the user's OAuth session scope is used directly. (0.5.29)</li>
<li class=""><strong>Service account credential passthrough</strong>: Service accounts carry their own credentials into tool calls so integrations authenticate as the service account, not the invoking user. (0.5.13)</li>
<li class=""><strong>Fail-closed enforcement</strong>: If a caller-scoped MCP tool requires OAuth credentials and none are present, the request fails with a clear error rather than silently proceeding. (0.5.18)</li>
<li class=""><strong>Credentials panel</strong>: Single scrollable pane for all credential types, with secret hash tabs for reviewing stored hashes. (0.5.27/0.5.29)</li>
</ul>
<p>Enable with <code>CAIPE_CREDENTIALS_ENABLED: "true"</code> and <code>CREDENTIAL_KEY_PROVIDER: "aws-kms"</code> for production.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="custom-agents">Custom Agents<a href="https://caipe.io/blog/whats-new-in-0-5#custom-agents" class="hash-link" aria-label="Direct link to Custom Agents" title="Direct link to Custom Agents" translate="no">​</a></h2>
<p>The dynamic agents runtime is the sole routing layer. You can define, deploy, and manage agents entirely from the UI without writing code or modifying Helm values.</p>
<ul>
<li class=""><strong>Full CRUD from the UI</strong>: Create agents with a system prompt, LLM config, and MCP tool selection. Persisted in MongoDB and live immediately. (0.5.0+)</li>
<li class=""><strong>MCP endpoint normalizer</strong>: Accepts bare hostnames, trailing-slash URLs, or missing <code>/mcp</code> suffixes — canonicalized automatically. (0.5.0)</li>
<li class=""><strong>Editor blocker hints</strong>: The agent editor surfaces actionable hints when required configuration is missing, and blocks deletion of the platform default agent. (0.5.0)</li>
<li class=""><strong>Agent owner team access</strong>: Agent owners and their team members get full manage access automatically — no explicit admin grant required. (0.5.34)</li>
<li class=""><strong>MCP permissions panel</strong>: Each MCP server shows which teams and users have access, with grant management inline. (0.5.18)</li>
<li class=""><strong>Deep links</strong>: Agent, MCP server, and LLM model editors are URL-backed and shareable. (0.5.52)</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fine-grained-authorization">Fine-Grained Authorization<a href="https://caipe.io/blog/whats-new-in-0-5#fine-grained-authorization" class="hash-link" aria-label="Direct link to Fine-Grained Authorization" title="Direct link to Fine-Grained Authorization" translate="no">​</a></h2>
<p>Every access decision — agents, knowledge bases, MCP tools, workflows, credentials — flows through a single authorization service backed by <a href="https://openfga.dev/" target="_blank" rel="noopener noreferrer" class="">OpenFGA</a> and Keycloak. (0.5.0)</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-enforced">What's enforced<a href="https://caipe.io/blog/whats-new-in-0-5#whats-enforced" class="hash-link" aria-label="Direct link to What's enforced" title="Direct link to What's enforced" translate="no">​</a></h3>
<table><thead><tr><th>Resource</th><th>Gate</th></tr></thead><tbody><tr><td>Agents</td><td>Team ownership + explicit shares</td></tr><tr><td>Knowledge Bases</td><td>Per-KB team shares + per-document ACLs at RAG retrieval</td></tr><tr><td>MCP Tools</td><td>First-class <code>mcp_tool</code> OpenFGA type</td></tr><tr><td>Skills</td><td>Team shares via Skill Builder</td></tr><tr><td>Workflows</td><td>Team-scoped ownership and run access</td></tr><tr><td>Credentials</td><td>Caller-keyed OAuth enforcement</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="centralized-authorization-service-cas-0512">Centralized Authorization Service (CAS) (0.5.12)<a href="https://caipe.io/blog/whats-new-in-0-5#centralized-authorization-service-cas-0512" class="hash-link" aria-label="Direct link to Centralized Authorization Service (CAS) (0.5.12)" title="Direct link to Centralized Authorization Service (CAS) (0.5.12)" translate="no">​</a></h3>
<p>A dedicated CAS component makes permission checks faster and more consistent across agents, workflows, and MCP tools — one decision, same result everywhere.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="openfga-as-source-of-truth-0527">OpenFGA as source of truth (0.5.27)<a href="https://caipe.io/blog/whats-new-in-0-5#openfga-as-source-of-truth-0527" class="hash-link" aria-label="Direct link to OpenFGA as source of truth (0.5.27)" title="Direct link to OpenFGA as source of truth (0.5.27)" translate="no">​</a></h3>
<p>Team resource access is read exclusively from OpenFGA. The admin team UI shows only what FGA knows, removing local-state drift.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="access-explorer-and-rbac-self-check-0527">Access explorer and RBAC self-check (0.5.27)<a href="https://caipe.io/blog/whats-new-in-0-5#access-explorer-and-rbac-self-check-0527" class="hash-link" aria-label="Direct link to Access explorer and RBAC self-check (0.5.27)" title="Direct link to Access explorer and RBAC self-check (0.5.27)" translate="no">​</a></h3>
<ul>
<li class=""><strong>Access explorer</strong>: Browse effective permissions by user, team, and resource — no need to read raw FGA tuples.</li>
<li class=""><strong>RBAC self-check</strong>: Runs a suite of authorization checks and reports pass/fail — diagnose why a user can't reach a resource in seconds.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="identity-and-directory-sync">Identity and directory sync<a href="https://caipe.io/blog/whats-new-in-0-5#identity-and-directory-sync" class="hash-link" aria-label="Direct link to Identity and directory sync" title="Direct link to Identity and directory sync" translate="no">​</a></h3>
<ul>
<li class=""><strong>Okta directory sync</strong> (0.5.10): Full SDK-based group sync with JIT user provisioning. Map Okta groups to CAIPE teams from Admin → Identity Group Sync → Okta. Large-org syncs are parallelized and resilient to invalid names, already-linked identities, and event-loop stalls. (0.5.48/0.5.49/0.5.51)</li>
<li class=""><strong>Baseline access bootstrapped at sync</strong>: Directory-synced users get the baseline OpenFGA grants needed to pass the AgentGateway ext_authz gate before their first interactive login. (0.5.51)</li>
<li class=""><strong>Stale grants cleaned up</strong>: Deleted users and teams have their OpenFGA grants removed automatically. (0.5.27)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="admin-experience">Admin experience<a href="https://caipe.io/blog/whats-new-in-0-5#admin-experience" class="hash-link" aria-label="Direct link to Admin experience" title="Direct link to Admin experience" translate="no">​</a></h3>
<ul>
<li class=""><strong>Team-scoped admin views for non-admins</strong> (0.5.15): Non-admin team members can see users, teams, stats, and feedback scoped to their own teams. Team members can also manage their team's Slack/Webex integrations.</li>
<li class=""><strong>Team-based user access view</strong> (0.5.22): Replaces raw FGA tuple management with a team-centric view of who can reach what.</li>
<li class=""><strong>Policy manifest download</strong> (0.5.15): Download the full authorization policy as YAML for audits and version control.</li>
</ul>
<p>The entire stack ships <strong>disabled by default</strong>. Enable with:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">tags</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token key atrule">keycloak</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token boolean important">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token key atrule">openfga</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token key atrule">enabled</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token boolean important">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token key atrule">openfgaAuthzBridge</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token key atrule">enabled</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token boolean important">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token key atrule">global</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token key atrule">agentgateway</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token key atrule">enabled</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token boolean important">true</span><br></span></code></pre></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="webex-bot">Webex Bot<a href="https://caipe.io/blog/whats-new-in-0-5#webex-bot" class="hash-link" aria-label="Direct link to Webex Bot" title="Direct link to Webex Bot" translate="no">​</a></h2>
<p>A full Webex bot ships as a first-class platform component alongside the Slack bot. (0.5.0)</p>
<ul>
<li class=""><strong>Space-to-agent routing</strong>: Webex spaces onboard to an agent and team from the Integrations tab — no admin involvement required for team members. (0.5.20)</li>
<li class=""><strong>Bulk onboarding</strong>: Admins assign multiple spaces to agents in one step. (0.5.20)</li>
<li class=""><strong>Markdown support</strong>: The bot renders rich markdown agent responses natively. (0.5.39)</li>
<li class=""><strong>Run As identity</strong>: Spaces can be configured to send messages as a named service account for a consistent, auditable identity. (0.5.13)</li>
<li class=""><strong>Webex MCP auth</strong>: The Webex MCP server forwards the provider token correctly so tool calls authenticate with the bot's Webex API token. (0.5.45)</li>
<li class=""><strong>Prometheus metrics</strong>: Bot activity is exposed for scraping out of the box. (0.5.0)</li>
</ul>
<p>Enable with <code>tags.webex-bot: true</code>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="service-accounts-0513">Service Accounts (0.5.13)<a href="https://caipe.io/blog/whats-new-in-0-5#service-accounts-0513" class="hash-link" aria-label="Direct link to Service Accounts (0.5.13)" title="Direct link to Service Accounts (0.5.13)" translate="no">​</a></h2>
<p>Teams can create non-personal bot identities for external systems and automation:</p>
<ul>
<li class="">Team-owned, scoped to selected agents and tools</li>
<li class="">Carry their own credentials into tool calls</li>
<li class="">One-time credential generation with rotation/revoke flows</li>
<li class="">Caller-keyed tool authorization at the AgentGateway layer</li>
<li class="">Slack channels can be set to "Run As" a service account for consistent bot-operated channel identity</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="platform-health-and-observability">Platform Health and Observability<a href="https://caipe.io/blog/whats-new-in-0-5#platform-health-and-observability" class="hash-link" aria-label="Direct link to Platform Health and Observability" title="Direct link to Platform Health and Observability" translate="no">​</a></h2>
<ul>
<li class=""><strong>Per-dependency health view</strong> (0.5.20): Platform Health probes each dependency — MongoDB, Keycloak, RAG, Webex, and others — independently. Failing items link directly to the recommended fix.</li>
<li class=""><strong>Profile-aware capabilities</strong> (0.5.25): Health probes are now structured as named capabilities tied to the deployment profile. Integrations not in the active profile show as "not applicable" rather than failing.</li>
<li class=""><strong>Audit log retention controls</strong> (0.5.27): Configure S3 lifecycle rules, view current storage usage, and tune log verbosity per event type from the platform admin panel.</li>
<li class=""><strong>Prometheus metrics</strong>: Keycloak management metrics (0.5.34), OpenFGA metrics (0.5.35), and AgentGateway metrics (0.5.35) are all scrapeable with dedicated ServiceMonitors.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="agentgateway-mcp-routing--no-crds-required">AgentGateway MCP Routing — No CRDs Required<a href="https://caipe.io/blog/whats-new-in-0-5#agentgateway-mcp-routing--no-crds-required" class="hash-link" aria-label="Direct link to AgentGateway MCP Routing — No CRDs Required" title="Direct link to AgentGateway MCP Routing — No CRDs Required" translate="no">​</a></h2>
<p>MCP traffic is proxied through AgentGateway in CRD-free static routing mode by default:</p>
<ul>
<li class="">One <code>/mcp/&lt;id&gt;</code> route per agent rendered automatically from Helm</li>
<li class="">A built-in <code>/mcp/knowledge-base</code> route for the RAG server</li>
<li class="">Dynamic route updates via config-bridge sidecar — no pod restarts</li>
<li class="">Optional per-call JWT validation and OpenFGA ext_authz enforcement</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">global</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token key atrule">agentgateway</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token key atrule">enabled</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token boolean important">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)"># routingMode: static  (default — no CRDs required)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)"># routingMode: gateway-api  (opt-in — requires CRDs + controller)</span><br></span></code></pre></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="self-service-channel-onboarding-0520">Self-Service Channel Onboarding (0.5.20)<a href="https://caipe.io/blog/whats-new-in-0-5#self-service-channel-onboarding-0520" class="hash-link" aria-label="Direct link to Self-Service Channel Onboarding (0.5.20)" title="Direct link to Self-Service Channel Onboarding (0.5.20)" translate="no">​</a></h2>
<p>Team members can grant their own Slack or Webex channel access directly from the Integrations tab — no platform admin required. Admins get a bulk onboarding flow to connect multiple channels in a single step.</p>
<p>New channel onboardings default to <strong>mention-only</strong> listen mode (0.5.49) — the bot responds only when @mentioned, not to every message.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-hardening">Security Hardening<a href="https://caipe.io/blog/whats-new-in-0-5#security-hardening" class="hash-link" aria-label="Direct link to Security Hardening" title="Direct link to Security Hardening" translate="no">​</a></h2>
<ul>
<li class="">Keycloak client secrets for service-account clients rotate on every <code>helm install</code>/<code>upgrade</code>. <code>keycloak.strictClientSecrets</code> fails the install if dev placeholders are in use. (0.5.0)</li>
<li class="">MongoDB strict-password gate: <code>mongodb.auth.strictPasswords: true</code> fails fast on placeholder <code>rootPassword</code> values. (0.5.0)</li>
<li class="">SSRF protection in RAG web ingestors — non-public start and redirect URLs are blocked. (0.5.2)</li>
<li class="">HMAC-SHA256 for catalog API keys (0.5.8) — keys stored at rest use HMAC-SHA256. Existing keys minted before 0.5.8 must be rotated.</li>
<li class="">NoSQL injection fix in the GridFS store (0.5.48).</li>
<li class="">Session silent-refresh tolerance — users are no longer forced out on transient refresh failures. (0.5.52)</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="is-this-a-breaking-upgrade-from-04x">Is This a Breaking Upgrade from 0.4.x?<a href="https://caipe.io/blog/whats-new-in-0-5#is-this-a-breaking-upgrade-from-04x" class="hash-link" aria-label="Direct link to Is This a Breaking Upgrade from 0.4.x?" title="Direct link to Is This a Breaking Upgrade from 0.4.x?" translate="no">​</a></h2>
<p><strong>For most deployments: no.</strong> Stock 0.4.18 <code>values.yaml</code> is a drop-in upgrade. Keycloak, OpenFGA, and the Webex bot are all opt-in. The only behavioral notes:</p>
<table><thead><tr><th>Change</th><th>Impact</th><th>Action</th></tr></thead><tbody><tr><td><code>active_team</code> JWT claim removed</td><td>Only matters if external code read this claim</td><td>None — claim was never issued in 0.4.x</td></tr><tr><td>AgentGateway <code>routingMode</code> defaults to <code>static</code> (0.5.3)</td><td>Only if you had <code>agentgateway.enabled: true</code> with CRD-based routing</td><td>Set <code>routingMode: gateway-api</code> explicitly</td></tr><tr><td>Catalog API key hash changed to HMAC-SHA256 (0.5.8)</td><td>Keys minted before 0.5.8 fail verification</td><td>Revoke old keys and mint new ones after upgrade</td></tr><tr><td>Legacy supervisor and A2A agents removed (0.5.22)</td><td>Drop the now-no-op values entries</td><td>Remove <code>supervisor.*</code> and <code>a2a-agents.*</code> from <code>values.yaml</code></td></tr><tr><td>New channel onboardings default to mention-only (0.5.49)</td><td>Bot no longer responds to all messages in newly connected channels</td><td>Set <code>listen: "all"</code> explicitly to restore previous behavior</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="upgrade">Upgrade<a href="https://caipe.io/blog/whats-new-in-0-5#upgrade" class="hash-link" aria-label="Direct link to Upgrade" title="Direct link to Upgrade" translate="no">​</a></h2>
<p>Pick the current patch from the <a class="" href="https://caipe.io/blog/releases">releases page</a> and use the Helm command in that release post. Each release post includes upgrade notes, Helm values diffs, and data migrations.</p>
<hr>
<p><em>This post covers the full 0.5.x series. The 0.5 series is actively maintained — check the <a class="" href="https://caipe.io/blog/releases">releases blog</a> for the latest patch-specific changes.</em></p>]]></content:encoded>
            <category>articles</category>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[CNCF Sandbox application for CAIPE]]></title>
            <link>https://caipe.io/blog/2026/03/04/cncf-sandbox-application</link>
            <guid>https://caipe.io/blog/2026/03/04/cncf-sandbox-application</guid>
            <pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Application for Community AI Platform Engineering (CAIPE) to join the CNCF Sandbox, merged via the upstream pull request.]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>Application for <a href="https://github.com/cncf/sandbox/issues/new?assignees=&amp;labels=New&amp;projects=&amp;template=application.yml&amp;title=%5BSandbox%5D+CAIPE" target="_blank" rel="noopener noreferrer" class="">CNCF Sandbox</a>. This post tracks the text merged in <a href="https://github.com/cnoe-io/ai-platform-engineering/pull/904" target="_blank" rel="noopener noreferrer" class="">cnoe-io/ai-platform-engineering#904</a>; copy each section into the corresponding field of the GitHub issue form when submitting.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="basic-project-information">Basic project information<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#basic-project-information" class="hash-link" aria-label="Direct link to Basic project information" title="Direct link to Basic project information" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="project-tagline">Project tagline<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#project-tagline" class="hash-link" aria-label="Direct link to Project tagline" title="Direct link to Project tagline" translate="no">​</a></h3>
<p>CAIPE is an integrated, open source distributed multi-agent system and reference implementation for automating platform engineering and cloud native operations, with standardized protocols, built-in knowledge bases, curated platform skills, enterprise security, a rich UX, and multiple client integrations.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="project-description">Project description<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#project-description" class="hash-link" aria-label="Direct link to Project description" title="Direct link to Project description" translate="no">​</a></h3>
<p>Community AI Platform Engineering (CAIPE, pronounced "cape") is an open source distributed Multi-Agent System (MAS) developed under the CNOE (Cloud Native Operational Excellence) Agentic AI SIG. As platform engineering, SRE, and DevOps environments grow in complexity, traditional approaches often lead to operational delays, fragmented tooling, and developer friction. CAIPE addresses this by providing a secure and scalable persona-driven reference implementation that orchestrates specialized AI agents. Each agent integrates securely with platform tools such as ArgoCD, Backstage, GitHub, PagerDuty, Jira, Slack, and Kubernetes using standardized interoperability protocols.</p>
<p>Built on open source agentic SDKs and the latest open standards in inter-agent and tool communication such as A2A, MCP, and A2UI, CAIPE's architecture enables agents to be developed, deployed, and scaled independently while securely interacting with Kubernetes platforms, cloud native infrastructure, and operational tooling.</p>
<p>The platform includes a curated prompt and skills library evaluated for reliability in agentic workflows, a modern AI-native user interface for interacting with agents, the Agent Forge plugin contributed upstream to backstage/community-plugins for Internal Developer Portal integration, and a command line interface for automation and developer workflows. The system also includes enterprise-grade security with OAuth2 and JWT-based agent authentication and production-ready deployment patterns using Docker Compose and Helm charts.</p>
<p>CAIPE also provides extensible knowledge bases that support retrieval-augmented generation (RAG) and GraphRAG. These knowledge systems enable agents to reason over both unstructured documentation and structured relationships between systems, services, and operational data. In addition, CAIPE supports persistent agent memory, fact extraction, and recall. Agents can extract operational knowledge from workflows, incident investigations, and platform telemetry, store these facts in shared knowledge systems, and reuse them in future tasks.</p>
<p>This capability allows agents to maintain contextual awareness across workflows in Kubernetes and cloud native environments. For example, agents can recall prior incidents, service dependencies, deployment history, and troubleshooting outcomes when assisting with new operational tasks. This reduces repeated investigation and improves operational efficiency.</p>
<p>The platform also includes built-in tracing via OpenTelemetry-compatible tooling (Langfuse), evaluation pipelines, and workflow observability to ensure predictable and auditable automation. Curated platform engineering skills encode operational best practices for common tasks such as incident investigation, GitOps deployment workflows, and platform diagnostics.</p>
<p>CAIPE fills a gap in the cloud native ecosystem by providing a vendor-neutral and community-driven reference architecture for applying agentic AI to platform engineering and operations. It enables teams to automate complex workflows across multiple tools, reduce mean time to resolution (MTTR), and accelerate developer self-service while maintaining transparency, governance, and operational reliability within modern Kubernetes and cloud native platforms.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="project-details">Project details<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#project-details" class="hash-link" aria-label="Direct link to Project details" title="Direct link to Project details" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="org-repo-url">Org repo URL<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#org-repo-url" class="hash-link" aria-label="Direct link to Org repo URL" title="Direct link to Org repo URL" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="project-repo-url-in-scope-of-application">Project repo URL in scope of application<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#project-repo-url-in-scope-of-application" class="hash-link" aria-label="Direct link to Project repo URL in scope of application" title="Direct link to Project repo URL in scope of application" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io/ai-platform-engineering" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/ai-platform-engineering</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="additional-repos-in-scope-of-the-application">Additional repos in scope of the application<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#additional-repos-in-scope-of-the-application" class="hash-link" aria-label="Direct link to Additional repos in scope of the application" title="Direct link to Additional repos in scope of the application" translate="no">​</a></h3>
<ul>
<li class=""><a href="https://github.com/cnoe-io/agent-chat-cli" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/agent-chat-cli</a> — CLI client for A2A agent interaction</li>
<li class=""><a href="https://github.com/cnoe-io/openapi-mcp-codegen" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/openapi-mcp-codegen</a> — OpenAPI-to-MCP server code generator</li>
<li class=""><a href="https://github.com/cnoe-io/cnoe-agent-utils" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/cnoe-agent-utils</a> — Shared Python utilities for CAIPE agents</li>
<li class=""><a href="https://github.com/cnoe-io/community-plugins/tree/agent-forge-upstream-docker/workspaces/agent-forge" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/community-plugins/tree/agent-forge-upstream-docker/workspaces/agent-forge</a> — Agent Forge Backstage plugin (upstream contribution to <a href="https://github.com/backstage/community-plugins/blob/main/workspaces/agent-forge/plugins/agent-forge/README.md" target="_blank" rel="noopener noreferrer" class="">backstage/community-plugins</a>, published as <a href="https://www.npmjs.com/package/@caipe/plugin-agent-forge" target="_blank" rel="noopener noreferrer" class="">@caipe/plugin-agent-forge</a> on npm)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="website-url">Website URL<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#website-url" class="hash-link" aria-label="Direct link to Website URL" title="Direct link to Website URL" translate="no">​</a></h3>
<p><a href="https://caipe.io/" target="_blank" rel="noopener noreferrer" class="">https://caipe.io/</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="roadmap">Roadmap<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#roadmap" class="hash-link" aria-label="Direct link to Roadmap" title="Direct link to Roadmap" translate="no">​</a></h2>
<p>CAIPE's roadmap is developed openly through GitHub issues and community working groups and is tracked in the project roadmap board.</p>
<p>Project roadmap:
<a href="https://github.com/orgs/cnoe-io/projects/9" target="_blank" rel="noopener noreferrer" class="">https://github.com/orgs/cnoe-io/projects/9</a></p>
<p>Issues and feature discussions:
<a href="https://github.com/cnoe-io/ai-platform-engineering/issues" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/ai-platform-engineering/issues</a></p>
<p>Key roadmap themes include:</p>
<ol>
<li class="">
<p><strong>Agent ecosystem expansion</strong>
Adding new agents for cloud native and platform engineering tools such as Crossplane, Backstage catalog, Prometheus/Grafana, and cloud provider services, along with a plugin registry for community-contributed agents.</p>
</li>
<li class="">
<p><strong>Enterprise hardening</strong>
Improving multi-tenancy, agent-level RBAC, audit logging, and policy-based guardrails using technologies such as OPA/Rego.</p>
</li>
<li class="">
<p><strong>Evaluation and observability</strong>
Expanding automated evaluation pipelines and integrating with observability platforms such as Langfuse and OpenTelemetry to measure agent reliability and workflow execution.</p>
</li>
<li class="">
<p><strong>Knowledge systems</strong>
Enhancing RAG capabilities with GraphRAG, ontology-driven entity extraction, persistent memory, and multi-source ingestion of organizational knowledge.</p>
</li>
<li class="">
<p><strong>Standards alignment</strong>
Continued alignment with emerging agent interoperability standards such as A2A and MCP, and integration patterns across the cloud native ecosystem.</p>
</li>
<li class="">
<p><strong>Community growth</strong>
Expanding contributors through working groups, improved onboarding, and community workshops such as CAIPE Labs.</p>
</li>
</ol>
<p>Project documentation:
<a href="https://caipe.io/" target="_blank" rel="noopener noreferrer" class="">https://caipe.io/</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributing-guide">Contributing guide<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#contributing-guide" class="hash-link" aria-label="Direct link to Contributing guide" title="Direct link to Contributing guide" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io/ai-platform-engineering/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/ai-platform-engineering/blob/main/CONTRIBUTING.md</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="code-of-conduct-coc">Code of Conduct (CoC)<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#code-of-conduct-coc" class="hash-link" aria-label="Direct link to Code of Conduct (CoC)" title="Direct link to Code of Conduct (CoC)" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io/governance/blob/main/CODE-OF-CONDUCT.md" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/governance/blob/main/CODE-OF-CONDUCT.md</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="adopters">Adopters<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#adopters" class="hash-link" aria-label="Direct link to Adopters" title="Direct link to Adopters" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io/ai-platform-engineering/blob/main/ADOPTERS.md" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/ai-platform-engineering/blob/main/ADOPTERS.md</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="maintainers-file">Maintainers file<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#maintainers-file" class="hash-link" aria-label="Direct link to Maintainers file" title="Direct link to Maintainers file" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io/ai-platform-engineering/blob/main/MAINTAINERS.md" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/ai-platform-engineering/blob/main/MAINTAINERS.md</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-policy-file">Security policy file<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#security-policy-file" class="hash-link" aria-label="Direct link to Security policy file" title="Direct link to Security policy file" translate="no">​</a></h3>
<p><a href="https://github.com/cnoe-io/ai-platform-engineering/blob/main/SECURITY.md" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/ai-platform-engineering/blob/main/SECURITY.md</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="standard-or-specification">Standard or specification?<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#standard-or-specification" class="hash-link" aria-label="Direct link to Standard or specification?" title="Direct link to Standard or specification?" translate="no">​</a></h3>
<p>N/A. CAIPE is not a standard or specification. It is a reference implementation that builds on existing open protocols—specifically Google's Agent-to-Agent (A2A) protocol and Anthropic's Model Context Protocol (MCP)—to provide a practical, deployable multi-agent system for platform engineering.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="business-product-or-service-to-project-separation">Business product or service to project separation<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#business-product-or-service-to-project-separation" class="hash-link" aria-label="Direct link to Business product or service to project separation" title="Direct link to Business product or service to project separation" translate="no">​</a></h3>
<p>CAIPE originated as an open source initiative within the CNOE (Cloud Native Operational Excellence) community, a CNCF-affiliated forum. While maintainers and contributors from multiple organizations including AWS, Cisco, Splunk, and Demandbase participate, CAIPE is not the upstream version of any commercial product. It operates under its own open governance within the CNOE Agentic AI SIG, with community-elected maintainers from multiple organizations. All development happens in the open on GitHub, and the project's roadmap is driven by community consensus. Contributing organizations may use CAIPE internally or build internal tooling on top of it, but the project itself is community-owned and vendor-neutral.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-native-context">Cloud native context<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#cloud-native-context" class="hash-link" aria-label="Direct link to Cloud native context" title="Direct link to Cloud native context" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-cncf">Why CNCF?<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#why-cncf" class="hash-link" aria-label="Direct link to Why CNCF?" title="Direct link to Why CNCF?" translate="no">​</a></h3>
<p>CAIPE is built for and by the cloud native community. Joining the CNCF would:</p>
<ol>
<li class=""><strong>Accelerate adoption</strong>: CNCF's neutral governance and brand recognition would attract a broader contributor and adopter base across the platform engineering ecosystem.</li>
<li class=""><strong>Strengthen interoperability</strong>: Being part of the CNCF landscape alongside projects like Argo, Backstage, Kubernetes, and Prometheus would formalize integration patterns and encourage co-development with these projects' communities.</li>
<li class=""><strong>Solidify community-driven development</strong>: CNCF governance provides a stable, vendor-neutral home that formalizes multi-organization maintainership and encourages broader community ownership of the project's direction.</li>
<li class=""><strong>Advance the ecosystem</strong>: Agentic AI applied to platform operations is an emerging area, and the current landscape lacks dedicated, production-quality projects focused on full platform operations—most existing efforts are scoped to individual tools with specific operational functions. CNCF hosting would signal to the industry that unified, AI-assisted platform operations is a serious discipline, and provide a focal point for best practices that span the entire cloud native stack.</li>
</ol>
<p>The CNOE forum, which champions CAIPE, already operates within the CNCF ecosystem and many CAIPE contributors are active participants in other CNCF projects and TAGs.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="benefit-to-the-landscape">Benefit to the landscape<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#benefit-to-the-landscape" class="hash-link" aria-label="Direct link to Benefit to the landscape" title="Direct link to Benefit to the landscape" translate="no">​</a></h3>
<p>CAIPE benefits the Cloud Native Landscape by:</p>
<ol>
<li class=""><strong>Bridging AI and cloud native operations</strong>: There is currently no CNCF project that provides a reference architecture for applying multi-agent AI systems to platform engineering workflows. CAIPE fills this gap.</li>
<li class=""><strong>Unifying tool interaction</strong>: Platform teams use many CNCF and adjacent tools (Argo, Kubernetes, Prometheus, Backstage). CAIPE provides a unified conversational and agentic interface across all of its integrated CNCF and adjacent tools, reducing context-switching and operational friction.</li>
<li class=""><strong>Pioneering protocol-based agent interoperability</strong>: By building on A2A and MCP protocols, CAIPE demonstrates how AI agents can be composed in a loosely coupled, cloud native manner—similar to how microservices communicate via gRPC/REST.</li>
<li class=""><strong>Advance credibility of AI in production</strong>: CAIPE serves as a proof point for applying AI to real platform operations, with enterprise security, observability, and deployment patterns built in—demonstrating that agentic AI can be trusted in production cloud native environments.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-native-fit">Cloud native 'fit'<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#cloud-native-fit" class="hash-link" aria-label="Direct link to Cloud native 'fit'" title="Direct link to Cloud native 'fit'" translate="no">​</a></h3>
<p>CAIPE is cloud native by design:</p>
<ul>
<li class=""><strong>Containerized</strong>: Every component (supervisor, sub-agents, UI, RAG services) runs as an independent container, deployable via Docker Compose or Kubernetes.</li>
<li class=""><strong>Orchestrated</strong>: Helm charts provide production-grade Kubernetes deployment with configurable resource limits, HPA, health checks, and rolling updates.</li>
<li class=""><strong>Microservices architecture</strong>: Sub-agents communicate via the A2A protocol over HTTP, enabling independent scaling, deployment, and lifecycle management.</li>
<li class=""><strong>Stateless compute with external state</strong>: Agent state is managed via Redis (persistence) and Milvus (vector store), following cloud native patterns for state externalization.</li>
<li class=""><strong>Observable</strong>: Integrated with OpenTelemetry-compatible tracing (Langfuse), structured logging, and health endpoints.</li>
<li class=""><strong>Declarative configuration</strong>: Agent behavior, personas, prompts, and tool configurations are defined declaratively via common cloud native, GitOps-friendly practices.</li>
<li class=""><strong>Infrastructure-agnostic</strong>: Runs on any Kubernetes cluster (EKS, GKE, AKS, on-prem) or locally via Docker Compose.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-native-integration">Cloud native 'integration'<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#cloud-native-integration" class="hash-link" aria-label="Direct link to Cloud native 'integration'" title="Direct link to Cloud native 'integration'" translate="no">​</a></h3>
<p>CAIPE complements and integrates with the following CNCF projects:</p>
<table><thead><tr><th>CNCF Project</th><th>Integration</th></tr></thead><tbody><tr><td><strong>Kubernetes</strong></td><td>Reference deployment target; dedicated Kubernetes agent for cluster operations</td></tr><tr><td><strong>Argo</strong> (ArgoCD)</td><td>Dedicated ArgoCD agent for GitOps deployment management</td></tr><tr><td><strong>Backstage</strong></td><td><a href="https://github.com/backstage/community-plugins/blob/main/workspaces/agent-forge/plugins/agent-forge/README.md" target="_blank" rel="noopener noreferrer" class="">Agent Forge plugin</a> contributed upstream to backstage/community-plugins for Internal Developer Portal integration</td></tr><tr><td><strong>Helm</strong></td><td>Helm charts for Kubernetes deployment; Helm-based release lifecycle</td></tr><tr><td><strong>OpenTelemetry</strong></td><td>Tracing integration via Langfuse (OTel-compatible); structured telemetry</td></tr><tr><td><strong>Prometheus/Grafana</strong></td><td>Planned integration for metrics-driven agent workflows</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-native-overlap">Cloud native overlap<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#cloud-native-overlap" class="hash-link" aria-label="Direct link to Cloud native overlap" title="Direct link to Cloud native overlap" translate="no">​</a></h3>
<p>CAIPE is an AI agent orchestration system that defines contextual intent and abstracted workflows, and orchestrates agents and resources to perform operations in service of those workflows. It operates at a layer above individual platform tools—using them through agents rather than replacing them. For example, while <strong>Backstage</strong> provides a developer portal UI and <strong>Argo</strong> provides GitOps capabilities, CAIPE complements both by providing an intelligent, conversational interface on top of them. CAIPE can also be integrated directly with Backstage via the Agent Forge plugin.</p>
<p>The closest CNCF project in the agentic AI space is <a href="https://kagent.dev/" target="_blank" rel="noopener noreferrer" class=""><strong>kagent</strong></a>, a sandbox project focused on running AI agents in Kubernetes and providing MCP server tooling (kmcp). CAIPE and kagent are complementary rather than overlapping. kagent provides a Kubernetes-native framework for deploying and running individual agents, while CAIPE operates at a higher layer - defining platform engineering workflows, orchestrating multiple agents across tools, and maintaining contextual knowledge and memory across operations. CAIPE could leverage kagent's Kubernetes runtime and MCP infrastructure as part of its deployment and tool integration layer.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="similar-projects">Similar projects<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#similar-projects" class="hash-link" aria-label="Direct link to Similar projects" title="Direct link to Similar projects" translate="no">​</a></h3>
<ul>
<li class=""><strong><a href="https://kagent.dev/" target="_blank" rel="noopener noreferrer" class="">kagent</a></strong> (CNCF Sandbox): A Kubernetes-native framework for running AI agents and MCP servers. kagent focuses on the runtime and deployment layer for individual agents, while CAIPE is an integrated system that provides multi-agent orchestration, abstracted platform engineering workflows, knowledge systems, and a full application layer (UI, CLI, Backstage plugin)—ready to deploy and use in platform engineering environments.</li>
<li class=""><strong>LangGraph</strong> (LangChain ecosystem): A framework for building agent workflows. CAIPE <em>uses</em> LangGraph as its agent runtime but provides the full platform engineering application layer (agents, tools, deployment, UI) on top of it.</li>
<li class=""><strong>Coding agents</strong> (Claude Code, Cursor etc.): Many coding agents can be configured to perform tasks similar to CAIPE, but they are personal, individual solutions rather than integrated systems designed for team-wide platform engineering operations.</li>
</ul>
<p>No existing CNCF project provides an integrated multi-agent system that combines workflow orchestration, contextual knowledge, persistent memory, and a full application layer purpose-built for platform engineering operations.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="landscape">Landscape<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#landscape" class="hash-link" aria-label="Direct link to Landscape" title="Direct link to Landscape" translate="no">​</a></h3>
<p>CAIPE is not yet listed on the <a href="https://landscape.cncf.io/" target="_blank" rel="noopener noreferrer" class="">Cloud Native Landscape</a>. We would anticipate placement alongside kagent under the same primary categories (<strong>Provisioning</strong> and <strong>Automation &amp; Configuration</strong>) and the additional category <strong>CNAI / Agentic AI</strong>, as shown on kagent's landscape entry.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cncf-policies">CNCF policies<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#cncf-policies" class="hash-link" aria-label="Direct link to CNCF policies" title="Direct link to CNCF policies" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="trademark-and-accounts">Trademark and accounts<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#trademark-and-accounts" class="hash-link" aria-label="Direct link to Trademark and accounts" title="Direct link to Trademark and accounts" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ip-policy">IP policy<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#ip-policy" class="hash-link" aria-label="Direct link to IP policy" title="Direct link to IP policy" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->If the project is accepted, I agree the project will follow the CNCF IP Policy</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="will-the-project-require-a-license-exception">Will the project require a license exception?<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#will-the-project-require-a-license-exception" class="hash-link" aria-label="Direct link to Will the project require a license exception?" title="Direct link to Will the project require a license exception?" translate="no">​</a></h3>
<p>N/A. CAIPE is licensed under Apache 2.0, which is the standard CNCF license. All dependencies are compatible with the CNCF Allowlist License Policy.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="project-domain-technical-review">Project "Domain Technical Review"<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#project-domain-technical-review" class="hash-link" aria-label="Direct link to Project &quot;Domain Technical Review&quot;" title="Direct link to Project &quot;Domain Technical Review&quot;" translate="no">​</a></h3>
<p><em>[To be completed — the project has not yet engaged with a TAG for a formal presentation. We plan to engage with TAG App Delivery and/or TAG Runtime for a Domain Technical Review prior to the sandbox application review.]</em></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contact-information">Contact information<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#contact-information" class="hash-link" aria-label="Direct link to Contact information" title="Direct link to Contact information" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="application-contact-emails">Application contact email(s)<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#application-contact-emails" class="hash-link" aria-label="Direct link to Application contact email(s)" title="Direct link to Application contact email(s)" translate="no">​</a></h3>
<p><a href="mailto:cnoe-steering@googlegroups.com" target="_blank" rel="noopener noreferrer" class="">cnoe-steering@googlegroups.com</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributing-or-sponsoring-entity-signatory-information">Contributing or sponsoring entity signatory information<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#contributing-or-sponsoring-entity-signatory-information" class="hash-link" aria-label="Direct link to Contributing or sponsoring entity signatory information" title="Direct link to Contributing or sponsoring entity signatory information" translate="no">​</a></h3>
<p><strong>If an organization:</strong></p>
<table><thead><tr><th>Name</th><th>Address</th><th>Type (e.g., Delaware corporation)</th><th>Signatory name and title</th><th>Email address</th></tr></thead><tbody><tr><td>Cisco Systems, Inc.</td><td>170 W Tasman Dr, San Jose, CA 95134</td><td>Delaware corporation</td><td>Cisco OSPO Legal</td><td><a href="mailto:oss-legal@cisco.com" target="_blank" rel="noopener noreferrer" class="">oss-legal@cisco.com</a></td></tr></tbody></table>
<p><strong>Or, if an individual or individual(s):</strong></p>
<table><thead><tr><th>Name</th><th>Country</th><th>Email address</th></tr></thead><tbody><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>
<p><strong>Signatories for this application (individuals):</strong> Hasith Kalpage approves on the business side (Director). Natali Vlatko and Tim Swanson provide additional sign-off from Cisco OSPO. <strong>Legal approval: TBD.</strong></p>
<table><thead><tr><th>Name</th><th>Country</th><th>Email address</th><th>Title / role</th></tr></thead><tbody><tr><td>Sri Aradhyula</td><td>United States</td><td><a href="mailto:sraradhy@cisco.com" target="_blank" rel="noopener noreferrer" class="">sraradhy@cisco.com</a></td><td>Project maintainer</td></tr><tr><td>Hasith Kalpage</td><td>United States</td><td><a href="mailto:haskalpa@cisco.com" target="_blank" rel="noopener noreferrer" class="">haskalpa@cisco.com</a></td><td>Project maintainer; Director (business approval)</td></tr><tr><td>Natali Vlatko</td><td>United States</td><td><a href="mailto:nvlatko@cisco.com" target="_blank" rel="noopener noreferrer" class="">nvlatko@cisco.com</a></td><td>Cisco OSPO Lead (additional signatory)</td></tr><tr><td>Tim Swanson</td><td>United States</td><td><a href="mailto:tiswanso@cisco.com" target="_blank" rel="noopener noreferrer" class="">tiswanso@cisco.com</a></td><td>Cisco OSPO Lead (additional signatory)</td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="additional-information">Additional information<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#additional-information" class="hash-link" aria-label="Direct link to Additional information" title="Direct link to Additional information" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="maintainers-reference">Maintainers (reference)<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#maintainers-reference" class="hash-link" aria-label="Direct link to Maintainers (reference)" title="Direct link to Maintainers (reference)" translate="no">​</a></h3>
<table><thead><tr><th>Name</th><th>GitHub</th><th>Company</th></tr></thead><tbody><tr><td>—</td><td><a href="https://github.com/adickinson72" target="_blank" rel="noopener noreferrer" class="">@adickinson72</a></td><td>Demandbase</td></tr><tr><td>Arthur Drozdov</td><td><a href="https://github.com/artdroz" target="_blank" rel="noopener noreferrer" class="">@artdroz</a></td><td>Cisco Outshift</td></tr><tr><td>Sri Aradhyula</td><td><a href="https://github.com/sriaradhyula" target="_blank" rel="noopener noreferrer" class="">@sriaradhyula</a></td><td>Cisco Outshift</td></tr><tr><td>Erik Lutz</td><td><a href="https://github.com/cisco-erilutz" target="_blank" rel="noopener noreferrer" class="">@cisco-erilutz</a></td><td>Splunk</td></tr><tr><td>Carlos Santana</td><td><a href="https://github.com/csantanapr" target="_blank" rel="noopener noreferrer" class="">@csantanapr</a></td><td>AWS</td></tr><tr><td>Niall Thomson</td><td><a href="https://github.com/niallthomson" target="_blank" rel="noopener noreferrer" class="">@niallthomson</a></td><td>AWS</td></tr><tr><td>Hasith Kalpage</td><td><a href="https://github.com/haskalpa" target="_blank" rel="noopener noreferrer" class="">@haskalpa</a></td><td>Cisco Outshift</td></tr><tr><td>Kevin</td><td><a href="https://github.com/kevkantes" target="_blank" rel="noopener noreferrer" class="">@kevkantes</a></td><td>—</td></tr><tr><td>Shubham Bakshi</td><td><a href="https://github.com/subbaksh" target="_blank" rel="noopener noreferrer" class="">@subbaksh</a></td><td>Cisco Outshift</td></tr><tr><td>Sunny Whang</td><td><a href="https://github.com/suwhang-cisco" target="_blank" rel="noopener noreferrer" class="">@suwhang-cisco</a></td><td>Cisco Outshift</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cncf-contacts">CNCF contacts<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#cncf-contacts" class="hash-link" aria-label="Direct link to CNCF contacts" title="Direct link to CNCF contacts" translate="no">​</a></h3>
<ul>
<li class="">The CAIPE project is championed by the CNOE (Cloud Native Operational Excellence) community, which has established relationships within the CNCF ecosystem.</li>
<li class="">Several CAIPE contributors are active in CNCF TAGs and working groups.</li>
<li class=""><a href="https://github.com/natalisucks" target="_blank" rel="noopener noreferrer" class="">Natali Vlatko</a> (Director of Open Source Software Engineering, Cisco OSPO)</li>
<li class=""><a href="https://github.com/tiswanso" target="_blank" rel="noopener noreferrer" class="">Tim Swanson</a> (Cloud Native &amp; Open Source Advocate, Cisco OSPO)</li>
<li class="">Josh Halley (CNAI TOC)</li>
<li class="">Ricardo Aravena (CNAI TOC)</li>
<li class="">Lin Sun (CNCF TOC)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="additional-information-1">Additional information<a href="https://caipe.io/blog/2026/03/04/cncf-sandbox-application#additional-information-1" class="hash-link" aria-label="Direct link to Additional information" title="Direct link to Additional information" translate="no">​</a></h3>
<p><strong>Community engagement and traction:</strong></p>
<ul>
<li class="">316+ GitHub stars, 46+ forks, 3,055+ commits as of March 2026</li>
<li class="">32 releases with active development cadence (multiple releases per week)</li>
<li class="">77+ Architecture Decision Records documenting project evolution</li>
<li class="">Weekly community meetings (CNOE Agentic AI SIG) with participants from multiple organizations</li>
<li class="">Active Slack channel (#cnoe-sig-agentic-ai) on CNCF Slack</li>
<li class=""><a href="https://github.com/cnoe-io/ai-platform-engineering/blob/main/ADOPTERS.md" target="_blank" rel="noopener noreferrer" class="">Adopters include Outshift by Cisco, Splunk, and Demandbase</a></li>
<li class="">Comprehensive documentation site with getting-started guides, architecture docs, and workshops (CAIPE Labs)</li>
</ul>
<p><strong>Technical maturity indicators:</strong></p>
<ul>
<li class="">Extensive CI/CD pipeline with 30+ GitHub Actions workflows covering build, test, lint, security scanning, and release automation</li>
<li class="">Conventional commits enforcement, automated dependency updates (Dependabot), and code ownership (CODEOWNERS)</li>
<li class="">Helm chart with production-ready configuration for multi-node and single-node deployment modes</li>
<li class="">Integration test suites for supervisor, multi-agent, and individual agent components</li>
<li class="">Security policy with responsible disclosure process and GitHub Security Advisories</li>
</ul>
<p><strong>Governance:</strong></p>
<ul>
<li class="">Governed by the CNOE Agentic AI SIG: <a href="https://github.com/cnoe-io/governance/tree/main/sigs/agentic-ai" target="_blank" rel="noopener noreferrer" class="">https://github.com/cnoe-io/governance/tree/main/sigs/agentic-ai</a></li>
<li class="">Open governance with community-driven roadmap and decision-making</li>
<li class="">DCO (Developer Certificate of Origin) required for all contributions</li>
</ul>]]></content:encoded>
            <category>articles</category>
        </item>
        <item>
            <title><![CDATA[AI Agent vs MCP Server]]></title>
            <link>https://caipe.io/blog/ai-agent-vs-mcp-server</link>
            <guid>https://caipe.io/blog/ai-agent-vs-mcp-server</guid>
            <pubDate>Tue, 08 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Introduction]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://caipe.io/blog/ai-agent-vs-mcp-server#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>Agentic Systems landscape is evolving rapidly, understanding the distinction between AI Agents and MCP Servers is crucial for building scalable agentic systems. While MCP Servers provide a standardized interface for tools and data sources, AI Agents leverage these capabilities to perform complex reasoning, planning, and execution tasks.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp">MCP<a href="https://caipe.io/blog/ai-agent-vs-mcp-server#mcp" class="hash-link" aria-label="Direct link to MCP" title="Direct link to MCP" translate="no">​</a></h2>
<p><a href="https://modelcontextprotocol.io/introduction" target="_blank" rel="noopener noreferrer" class="">MCP (Model Context Protocol)</a> provides a <strong>standardized interface for LLMs to access tools and data sources</strong>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="agent">Agent<a href="https://caipe.io/blog/ai-agent-vs-mcp-server#agent" class="hash-link" aria-label="Direct link to Agent" title="Direct link to Agent" translate="no">​</a></h2>
<ul>
<li class="">Agents are systems that use LLM-based reasoning to plan and take actions—including invoking MCP tools when needed.</li>
<li class="">Agents can handle complex tasks that could require multiple MCP tools and are capable of maintaining both short-term and long-term memory.</li>
<li class=""><em>Agents encapsulate more than simple tool calls to MCP servers, providing an additional abstraction layer.</em></li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="agent-composition--capabilities">Agent Composition &amp; Capabilities<a href="https://caipe.io/blog/ai-agent-vs-mcp-server#agent-composition--capabilities" class="hash-link" aria-label="Direct link to Agent Composition &amp; Capabilities" title="Direct link to Agent Composition &amp; Capabilities" translate="no">​</a></h3>
<ul>
<li class=""><strong>Tool Pruning:</strong> Optimizes the toolset for efficiency and relevance, including filtering tools from large MCP servers (with optional RAG for selection).</li>
<li class=""><strong>Long-term and short-term memory management:</strong> Agents utilize short-term memory for session-specific context and long-term memory for cross-session data recall.</li>
<li class=""><strong>Agent Registry:</strong> Manages agent versions and configurations.</li>
<li class=""><strong>Prompty Library:</strong> Provides a versioned repository for managing and evaluating prompts.</li>
<li class=""><strong>MCP Registry:</strong> Handles MCP server versions and configurations.</li>
<li class=""><strong>Maintain Conversation Context:</strong> Preserves conversation history within a thread for more effective LLM reasoning and action.</li>
<li class=""><strong>Prompt Engineering:</strong> Shapes agent behavior with well-designed system prompts.</li>
<li class=""><strong>Evaluation:</strong> Validates agent actions using standardized rubrics and tool trajectory audits.</li>
<li class=""><strong>Flexible LLM Bindings:</strong> Supports various LLM providers (e.g., GPT, Claude, Mistral).</li>
</ul>
<p>This architecture makes agents <strong>composable, validated black-box units</strong> that can be reused across multi-agent systems and different personas.</p>
<blockquote>
<p><strong>Note:</strong> <em>Agents built in CAIPE (Community AI Platform Engineering) project are exposed via the A2A protocol</em>, standardizing external I/O and providing authentication and authorization support.</p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="system-diagram">System Diagram<a href="https://caipe.io/blog/ai-agent-vs-mcp-server#system-diagram" class="hash-link" aria-label="Direct link to System Diagram" title="Direct link to System Diagram" translate="no">​</a></h3>
<!-- -->
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sequence-diagram">Sequence Diagram<a href="https://caipe.io/blog/ai-agent-vs-mcp-server#sequence-diagram" class="hash-link" aria-label="Direct link to Sequence Diagram" title="Direct link to Sequence Diagram" translate="no">​</a></h3>
]]></content:encoded>
            <category>articles</category>
            <category>faqs</category>
        </item>
        <item>
            <title><![CDATA[Migrating Agent Repos to the Monorepo]]></title>
            <link>https://caipe.io/blog/migrate-to-monorepo</link>
            <guid>https://caipe.io/blog/migrate-to-monorepo</guid>
            <pubDate>Fri, 04 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Instructions to migrate agent repos to mono repo]]></description>
            <content:encoded><![CDATA[<p>Instructions to migrate agent repos to mono repo</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token builtin class-name" style="color:rgb(189, 147, 249)">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(189, 147, 249);font-style:italic">AGENT_NAME</span><span class="token operator">=</span><span class="token plain">foo</span><br></span></code></pre></div></div>
<ol>
<li class="">Clone the Target Monorepo (ai-platform-engineering)</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cd /tmp</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git clone git@github.com:cnoe-io/ai-platform-engineering.git</span><br></span></code></pre></div></div>
<ol start="2">
<li class="">Clone agent-$AGENT_NAME to a temp location:</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cd /tmp</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git clone git@github.com:cnoe-io/agent-$AGENT_NAME.git agent-$AGENT_NAME-temp</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">cd agent-$AGENT_NAME-temp</span><br></span></code></pre></div></div>
<ol start="3">
<li class="">Rewrite history to move everything into ai_platform_engineering/agents/$AGENT_NAME:</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git filter-repo --to-subdirectory-filter ai_platform_engineering/agents/$AGENT_NAME</span><br></span></code></pre></div></div>
<ol start="4">
<li class="">Now add this rewritten repo as a remote to your monorepo:</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cd ../ai-platform-engineering    # Go back to your main repo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git remote add $AGENT_NAME-temp ../agent-$AGENT_NAME-temp</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git fetch $AGENT_NAME-temp</span><br></span></code></pre></div></div>
<ol start="5">
<li class="">Create a branch</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git checkout -b migrate_agent_$AGENT_NAME</span><br></span></code></pre></div></div>
<ol start="6">
<li class="">Merge the imported history (use --allow-unrelated-histories the first time):</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git merge $AGENT_NAME-temp/main --allow-unrelated-histories</span><br></span></code></pre></div></div>
<ol start="7">
<li class="">Clean Up (Optional)</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git remote remove $AGENT_NAME-temp</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">read -p "Delete ../agent-$AGENT_NAME-temp and all contents? [y/N] " ans &amp;&amp; [[ $ans =~ ^[Yy]$ ]] &amp;&amp; rm -rf ../agent-$AGENT_NAME-temp</span><br></span></code></pre></div></div>
<ol start="8">
<li class="">Upload branch and PR</li>
</ol>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git push origin migrate_agent_$AGENT_NAME</span><br></span></code></pre></div></div>]]></content:encoded>
            <category>articles</category>
        </item>
    </channel>
</rss>