{"slug":"amp-s-agent-triggers-expose-the-credential-problem-nobody-solved","citations":[{"url":"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026","committed_hash":"sha256:de40554a2561fc31cb34c23e1834500c2d933f1634a40fbdc7aea951073e92bf","committed_hash_short":"sha256:de40554a…073e92bf","mime_type":"text/html","committed_at":"2026-07-26T22:00:24.194280+00:00","content_snapshot":"<!DOCTYPE html><html class=\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable instrument_serif_535d8616-module__GDyPrG__variable font-sans\" lang=\"en\"><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=5\"/><link rel=\"preload\" href=\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" as=\"image\" href=\"/logo-black.svg\"/><link rel=\"stylesheet\" href=\"/_next/static/chunks/0x5hulsdcv16j.css\" data-precedence=\"next\"/><link rel=\"stylesheet\" href=\"/_next/static/chunks/1375h7jyi~127.css\" data-precedence=\"next\"/><link rel=\"preload\" as=\"script\" fetchPriority=\"low\" href=\"/_next/static/chunks/0fh1k_r~b~e_o.js\"/><script src=\"/_next/static/chunks/02j3b3kqw16o_.js\" async=\"\"></script><script src=\"/_next/static/chunks/0xo94uum3hbeo.js\" async=\"\"></script><script src=\"/_next/static/chunks/0k8x.hopn~dbb.js\" async=\"\"></script><script src=\"/_next/static/chunks/15~sw-y0t5qla.js\" async=\"\"></script><script src=\"/_next/static/chunks/0_zt5gdwndu-o.js\" async=\"\"></script><script src=\"/_next/static/chunks/turbopack-0r2lweie01gnn.js\" async=\"\"></script><script src=\"/_next/static/chunks/0vfhqx7irdtsp.js\" async=\"\"></script><script src=\"/_next/static/chunks/0yze7hvbcp5.x.js\" async=\"\"></script><script src=\"/_next/static/chunks/0zod1seoish6v.js\" async=\"\"></script><script src=\"/_next/static/chunks/0h9.k2fyk8cqu.js\" async=\"\"></script><script src=\"/_next/static/chunks/13b9o4nx8cmv5.js\" async=\"\"></script><script src=\"/_next/static/chunks/0bok.jphy_~lu.js\" async=\"\"></script><script src=\"/_next/static/chunks/039fygmp~-jt3.js\" async=\"\"></script><script src=\"/_next/static/chunks/10xegheq_2_g2.js\" async=\"\"></script><link rel=\"preload\" href=\"https://www.googletagmanager.com/gtm.js?id=GTM-NGSFB45\" as=\"script\"/><link href=\"/manifest.json\" rel=\"manifest\"/><link href=\"/feed.xml\" rel=\"alternate\" title=\"Digital Applied Blog\" type=\"application/rss+xml\"/><meta content=\"#18181b\" name=\"theme-color\"/><meta content=\"DigitalApplied\" name=\"apple-mobile-web-app-title\"/><meta name=\"next-size-adjust\" content=\"\"/><title>Amp Turned Agents Into Always-On Services This Week</title><meta name=\"description\" content=\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\"/><meta name=\"author\" content=\"Digital Applied\"/><meta name=\"keywords\" content=\"Amp event-driven orbs,self-scheduling agents,agent webhook trigger security,always-on AI agents,Amp orbs OIDC workload identity,agent as a service 2026,durable agent triggers\"/><meta name=\"creator\" content=\"Digital Applied\"/><meta name=\"publisher\" content=\"Digital Applied\"/><meta name=\"robots\" content=\"index, follow\"/><meta name=\"googlebot\" content=\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"/><link rel=\"canonical\" href=\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\"/><meta property=\"og:title\" content=\"Amp Turned Agents Into Always-On Services This Week\"/><meta property=\"og:description\" content=\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\"/><meta property=\"og:url\" content=\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\"/><meta property=\"og:image\" content=\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026/article-image\"/><meta property=\"og:image:type\" content=\"image/png\"/><meta property=\"og:image:width\" content=\"1200\"/><meta property=\"og:image:height\" content=\"630\"/><meta property=\"og:image:alt\" content=\"Amp Turned Agents Into Always-On Services This Week - Digital Applied Blog\"/><meta property=\"og:type\" content=\"article\"/><meta property=\"article:published_time\" content=\"2026-07-26\"/><meta property=\"article:modified_time\" content=\"2026-07-26\"/><meta property=\"article:author\" content=\"Digital Applied Team\"/><meta property=\"article:tag\" content=\"amp\"/><meta property=\"article:tag\" content=\"agent-automation\"/><meta property=\"article:tag\" content=\"webhooks\"/><meta property=\"article:tag\" content=\"event-driven-agents\"/><meta property=\"article:tag\" content=\"workload-identity\"/><meta property=\"article:tag\" content=\"agent-security\"/><meta property=\"article:tag\" content=\"workflow-automation\"/><meta name=\"twitter:card\" content=\"summary_large_image\"/><meta name=\"twitter:title\" content=\"Amp Turned Agents Into Always-On Services This Week\"/><meta name=\"twitter:description\" content=\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\"/><meta name=\"twitter:image\" content=\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026/article-image\"/><meta name=\"twitter:image:alt\" content=\"Amp Turned Agents Into Always-On Services This Week - Digital Applied Blog\"/><meta name=\"twitter:image:type\" content=\"image/png\"/><meta name=\"twitter:image:width\" content=\"1200\"/><meta name=\"twitter:image:height\" content=\"630\"/><link rel=\"icon\" href=\"/favicon.ico?favicon.0hms~afauq~g0.ico\" sizes=\"48x48\" type=\"image/x-icon\"/><link rel=\"icon\" href=\"/icon.svg?icon.074~muy3rpvs~.svg\" sizes=\"any\" type=\"image/svg+xml\"/><link rel=\"apple-touch-icon\" href=\"/apple-icon.png?apple-icon.0z2i6746e9zp1.png\" sizes=\"180x180\" type=\"image/png\"/><script src=\"/_next/static/chunks/03~yq9q893hmn.js\" noModule=\"\"></script></head><body class=\"antialiased\"><div hidden=\"\"><!--$--><!--/$--></div><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"LocalBusiness\",\"@id\":\"https://www.digitalapplied.com/#organization\",\"name\":\"Digital Applied\",\"legalName\":\"Digital Applied, s. r. o.\",\"url\":\"https://www.digitalapplied.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.digitalapplied.com/logo-black.svg\",\"width\":\"512\",\"height\":\"512\"},\"image\":\"https://www.digitalapplied.com/opengraph-image\",\"description\":\"International digital marketing agency specializing in SEO, PPC, social media marketing, and AI-powered digital transformation for global clients\",\"foundingDate\":\"2019-05-01\",\"telephone\":\"+421-90-246-8050\",\"email\":\"info@digitalapplied.com\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Priemyselná 668/7\",\"addressLocality\":\"Bratislava\",\"addressRegion\":\"Bratislava\",\"postalCode\":\"821 09\",\"addressCountry\":\"SK\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":48.142672,\"longitude\":17.168666},\"sameAs\":[\"https://x.com/digitalapplied\",\"https://www.facebook.com/digitalapplied\",\"https://www.instagram.com/digital_applied\",\"https://www.linkedin.com/company/digitalapplied\"],\"areaServed\":[{\"@type\":\"Country\",\"name\":\"United States\"},{\"@type\":\"Country\",\"name\":\"United Kingdom\"},{\"@type\":\"Country\",\"name\":\"Canada\"},{\"@type\":\"Country\",\"name\":\"Australia\"},{\"@type\":\"Place\",\"name\":\"European Union\"},{\"@type\":\"Place\",\"name\":\"Worldwide\"}],\"priceRange\":\"€€€-€€€€\",\"paymentAccepted\":[\"Credit Card\",\"Wire Transfer\",\"PayPal\"],\"currenciesAccepted\":\"EUR, USD, GBP\",\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],\"opens\":\"07:30\",\"closes\":\"17:00\"},{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":\"Saturday\",\"opens\":\"08:00\",\"closes\":\"11:00\"}],\"contactPoint\":{\"@type\":\"ContactPoint\",\"telephone\":\"+421-90-246-8050\",\"contactType\":\"customer service\",\"email\":\"info@digitalapplied.com\",\"availableLanguage\":[\"English\",\"Slovak\"],\"areaServed\":\"Worldwide\"},\"vatID\":\"SK2120914510\",\"taxID\":\"52125670\",\"identifier\":{\"@type\":\"PropertyValue\",\"propertyID\":\"Company ID\",\"value\":\"52125670\"},\"hasOfferCatalog\":{\"@type\":\"OfferCatalog\",\"name\":\"Digital Marketing Services\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"SEO Optimization\",\"url\":\"https://www.digitalapplied.com/services/agentic-seo\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"PPC Advertising\",\"url\":\"https://www.digitalapplied.com/services/paid-media\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Social Media Marketing\",\"url\":\"https://www.digitalapplied.com/services/social-media\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Web Development\",\"url\":\"https://www.digitalapplied.com/services/web-development\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Content Marketing\",\"url\":\"https://www.digitalapplied.com/services/content-engine\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Analytics & Insights\",\"url\":\"https://www.digitalapplied.com/services/analytics\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"eCommerce Solutions\",\"url\":\"https://www.digitalapplied.com/services/ecommerce\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"CRM & Automation\",\"url\":\"https://www.digitalapplied.com/services/crm-automation\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"AI & Digital Transformation\",\"url\":\"https://www.digitalapplied.com/services/ai-transformation\"}}]}}</script><div class=\"flex min-h-screen flex-col\"><nav class=\"sticky top-0 z-40 w-full border-border/60 border-b bg-background/80 backdrop-blur-md supports-backdrop-filter:bg-background/70\"><div class=\"mx-auto max-w-7xl px-4 md:px-8\"><div class=\"flex h-17 items-center justify-between\"><a aria-label=\"Digital Applied\" class=\"flex items-center\" href=\"/\"><img alt=\"Digital Applied\" width=\"1556\" height=\"280\" decoding=\"async\" data-nimg=\"1\" class=\"h-6 w-auto\" style=\"color:transparent\" src=\"/logo-black.svg\"/></a><div class=\"hidden items-center gap-1 md:flex\"><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/services\">Services</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/ai-tools\">AI Tools</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/blog\">Blog</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/about\">About</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/contact\">Contact</a></div><div class=\"hidden items-center gap-2.5 md:flex\"><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/auth/login\">Log in</a><a data-slot=\"button\" data-variant=\"default\" data-size=\"sm\" class=\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 gap-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 h-9.5 rounded-lg px-4\" href=\"/get-started\">Start engines</a></div><button data-slot=\"sheet-trigger\" data-variant=\"ghost\" data-size=\"icon\" class=\"group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-9 md:hidden\" aria-label=\"Open menu\" type=\"button\" aria-haspopup=\"dialog\" aria-expanded=\"false\" aria-controls=\"radix-_R_habvb_\" data-state=\"closed\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-menu h-5 w-5\" aria-hidden=\"true\"><path d=\"M4 5h16\"></path><path d=\"M4 12h16\"></path><path d=\"M4 19h16\"></path></svg></button></div></div></nav><main class=\"grow\"><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"@id\":\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026#article\",\"headline\":\"Amp Turned Agents Into Always-On Services This Week\",\"description\":\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\",\"url\":\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\",\"datePublished\":\"2026-07-26T00:00:00+01:00\",\"dateModified\":\"2026-07-26T00:00:00+01:00\",\"author\":{\"@type\":\"Organization\",\"@id\":\"https://www.digitalapplied.com/authors/digital-applied-team#author\",\"name\":\"Digital Applied Team\",\"url\":\"https://www.digitalapplied.com/authors/digital-applied-team\"},\"publisher\":{\"@id\":\"https://www.digitalapplied.com/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026/article-image\"},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026#webpage\"},\"isPartOf\":{\"@id\":\"https://www.digitalapplied.com/#website\"},\"articleSection\":\"CRM & Automation\",\"keywords\":\"Amp event-driven orbs, self-scheduling agents, agent webhook trigger security, always-on AI agents, Amp orbs OIDC workload identity, agent as a service 2026, durable agent triggers\",\"about\":[{\"@type\":\"Thing\",\"name\":\"amp\"},{\"@type\":\"Thing\",\"name\":\"agent-automation\"},{\"@type\":\"Thing\",\"name\":\"webhooks\"},{\"@type\":\"Thing\",\"name\":\"event-driven-agents\"},{\"@type\":\"Thing\",\"name\":\"workload-identity\"},{\"@type\":\"Thing\",\"name\":\"agent-security\"},{\"@type\":\"Thing\",\"name\":\"workflow-automation\"}]}</script><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://www.digitalapplied.com/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://www.digitalapplied.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CRM & Automation\",\"item\":\"https://www.digitalapplied.com/blog/category/crm-automation\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Amp Turned Agents Into Always-On Services This Week\"}]}</script><div aria-hidden=\"true\" class=\"pointer-events-none fixed inset-x-0 top-0 z-40 h-[2px] overflow-hidden\"><div class=\"h-full bg-linear-to-r from-[var(--color-ignition)] to-[var(--color-ignition-2)] transition-[width] duration-100 ease-linear\" style=\"width:0%\"></div></div><nav aria-label=\"Breadcrumb\" class=\"border-white/5 border-b bg-[#0a0a0b] text-white/55\"><ol class=\"mx-auto flex max-w-[1320px] items-center gap-2 px-4 py-3.5 font-mono text-[11px] uppercase tracking-[0.1em] md:px-8\"><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/\">Home</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/blog\">Blog</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/blog/category/crm-automation\">CRM &amp; Automation</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><span class=\"text-white\">Amp Event-Driven Orbs</span></li></ol></nav><section class=\"relative isolate overflow-hidden bg-[#0a0a0b] pt-14 text-white\"><div aria-hidden=\"true\" class=\"mask-[radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)] pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.035)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.035)_1px,transparent_1px)] bg-size-[56px_56px] [-webkit-mask-image:radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-[-5%] left-[-5%] size-[620px] blur-2xl [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.03)_40%,transparent_70%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-[20%] right-[-5%] size-[520px] blur-2xl [background:radial-gradient(circle,rgba(77,107,254,0.16),rgba(77,107,254,0.02)_40%,transparent_70%)]\"></div><div class=\"relative z-2 mx-auto max-w-[1320px] px-4 md:px-8\"><div class=\"mb-9 flex flex-wrap items-center gap-3\"><span class=\"rounded-sm border border-ignition/30 bg-ignition/10 px-3 py-1.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\">CRM &amp; Automation</span><span class=\"rounded-sm bg-ignition-2 px-3 py-1.5 font-medium font-mono text-[#0a0a0b] text-[11px] uppercase tracking-[0.14em]\"><span class=\"mr-1.5 inline-block size-[5px] animate-[ignition-pulse_1.2s_infinite] rounded-full bg-[#0a0a0b] align-[1px]\"></span>New Release</span><span class=\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\">12<!-- --> min read</span><span class=\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\">Published <!-- -->July 26, 2026</span></div><p class=\"m-0 mb-[18px] max-w-[900px] text-[17px] text-white/72 leading-normal tracking-[-0.005em]\">Five releases in seven days ·<!-- --> <span class=\"font-serif text-ignition-2 italic\">the webhook URL is the credential</span> <!-- -->· outbound auth hardened, inbound not</p><h1 class=\"m-0 mb-6 max-w-[1100px] font-normal text-[clamp(40px,5.4vw,76px)] text-white leading-none tracking-[-0.035em]\">Amp Turned Agents Into<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">Always-On</em> <!-- -->Services This Week</h1><p class=\"m-0 mb-11 max-w-[760px] text-[18px] text-white/72 leading-[1.6]\">Between July 17 and July 23, 2026, Amp’s changelog logged five releases that convert coding agents from session-bound tools into persistent services: agent-to-agent messaging, the Puck meta-agent plus a Slack integration, self-scheduling, multiplayer orbs, and event-driven orbs. The part ops teams should read twice is the trigger security model — Amp’s own docs call the webhook URL a credential.</p><div class=\"mb-12 flex flex-wrap items-center gap-5\"><div class=\"flex items-center gap-3\"><div class=\"flex size-11 items-center justify-center rounded-full bg-[linear-gradient(135deg,var(--color-ignition),var(--color-ignition-2))] font-medium font-mono text-[#0a0a0b] text-[14px]\">DA</div><div><div class=\"font-medium text-[14px] text-white leading-[1.2]\">Digital Applied Team</div><div class=\"mt-0.5 font-mono text-[10.5px] text-white/55 uppercase tracking-[0.08em]\">Senior strategists · Published Jul 26, 2026</div></div></div><div class=\"flex flex-wrap gap-x-6 gap-y-2 border-white/10 border-l pl-6 font-mono text-[11px] text-white/50 uppercase tracking-widest max-sm:gap-x-4 max-sm:border-l-0 max-sm:pl-0\"><div>Published<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">Jul 26, 2026</span></div><div>Read time<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">12 min</span></div><div>Sources<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">Amp changelog + Plugin API docs</span></div></div></div><div class=\"mb-14 grid grid-cols-2 gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 md:grid-cols-4\"><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">Releases in one window</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">5</div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">Jul 17–23, 2026</div><div class=\"mt-3 inline-flex items-center gap-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\"><span aria-hidden=\"true\">▼</span>7-day span</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">Webhook handler deadline</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">30<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">s</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">hard AbortSignal cutoff</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">OIDC → webhooks gap</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">9<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">days</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">Jul 14 → Jul 23</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">Delivery guarantee</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">≥1×</div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">at-least-once, dedup by id</div></div></div></div></section><section class=\"relative bg-white dark:bg-zinc-950\"><div class=\"mx-auto grid max-w-[1320px] grid-cols-1 gap-10 px-6 py-16 md:px-8 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-14 xl:grid-cols-[260px_minmax(0,1fr)_280px]\"><aside class=\"sticky top-[84px] hidden self-start lg:block\"><div><div class=\"mb-4 flex items-center gap-2 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-4 bg-ignition\"></span>Table of contents</div><ul class=\"flex flex-col gap-0.5 border-zinc-200 border-l dark:border-zinc-800\"><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#takeaways\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">00</span><span>Key takeaways</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#release-week\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">01</span><span>Five releases, seven days</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#event-driven-orbs\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">02</span><span>How event-driven orbs work</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#security-model\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">03</span><span>The security model, precisely</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#oidc-contrast\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">04</span><span>Outbound hardened, inbound not</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#governance-ledger\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">05</span><span>Capability vs governance ledger</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#always-on-context\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">06</span><span>The always-on category</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#ops-playbook\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">07</span><span>Ops playbook before you wire it</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#conclusion\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">08</span><span>Conclusion</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#faq\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">09</span><span>FAQ</span></a></li></ul></div></aside><article class=\"prose-none min-w-0\"><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p class=\"lede\">Amp shipped event-driven orbs on July 23, 2026 — the fifth release in a seven-day run that turns its coding agents into always-on, self-scheduling services that no longer need a human, or even an open session, to start working. An orb can now wake because CI failed, because someone opened a Linear issue, because a monitor fired, or because any service on the internet sent an HTTP request to a durable webhook URL.</p><p>That last clause is where operations and CRM teams should slow down. Amp’s own documentation says it plainly: the webhook URL is a credential. For the GitHub integration, Amp verifies the vendor’s cryptographic webhook signature before processing. For everything else — Linear, Discord, monitors, any generic HTTP sender — the documented security model is a secret, unguessable URL plus idempotency-key deduplication. If that URL leaks, whoever holds it holds the trigger.</p><p>To be clear about sourcing: this is changelog-sourced product news. Every fact below comes from Amp’s own pages — the news posts, the Plugin API reference, and the chronicle index — cross-checked against the Releasebot changelog mirror. No independent tech press had covered this release cluster as of July 26, 2026. This guide reconstructs the week, walks the webhook mechanics, separates the two trigger security models Amp actually documents, and lays out what a business should govern before pointing real CRM events at an agent that never sleeps.</p></div><div class=\"my-12 scroll-mt-[90px] border-zinc-950 border-t-2 pt-7 dark:border-white\" id=\"takeaways\"><div class=\"mb-6 flex items-center gap-2.5 font-mono text-[11px] text-zinc-950 uppercase tracking-[0.14em] dark:text-white\"><span class=\"size-1.5 rounded-full bg-ignition shadow-[0_0_8px_var(--color-ignition)]\"></span>Key takeaways</div><ol class=\"m-0 list-none p-0\"><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">01</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Five releases in seven days made agents persistent.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Agent-to-agent messaging (Jul 17), the Puck meta-agent plus Slack (Jul 20), self-scheduling (Jul 21), multiplayer orbs (Jul 22), and event-driven orbs (Jul 23) — the tightest capability run we could find in Amp’s public changelog.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">02</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">The webhook URL is the credential — Amp says so itself.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Event-driven orbs expose durable capability URLs. Amp’s docs instruct users to keep the URL private and remove it when no longer needed. No expiry, scoping, or rotation mechanism is shown for the URL itself.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">03</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Signature verification is GitHub-only, not blanket.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">The event-driven-orbs page documents cryptographic signature verification for the GitHub integration specifically. The general createWebhook() reference documents URL secrecy plus idempotency-key dedup for all other senders.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">04</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Outbound auth got hardened nine days before inbound shipped.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">On July 14, Amp replaced injected static secrets with OIDC workload identity — short-lived, tightly scoped tokens — for orbs calling other services. The inbound trigger surface that followed on July 23 got a bearer URL instead.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">05</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">No documented budget or wake-rate cap on the new autonomy.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Amp’s self-scheduling page documents no cap on how often an agent can re-wake itself. That is an absence in the documentation, not proof of unlimited design — but it makes your subscription allotment the only visible ceiling.</span></div></li></ol></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"release-week\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">01<!-- --> — <!-- -->What Shipped</span>Five releases,<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">seven</em> <!-- -->days — the week agents stopped ending.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Some quick vocabulary first. An “orb” is Amp’s name for an ephemeral remote VM — in the company’s words,<!-- --> <a class=\"link\" href=\"https://ampcode.com/news/agents-in-orbs\" rel=\"noopener noreferrer\" target=\"_blank\">“machines where agents can run without supervision”</a>, introduced June 30, 2026 with a 32GB RAM / 16 vCPU base spec and automatic sleep when idle. And Amp itself is no longer a Sourcegraph internal tool: it has operated as an independent company, Amp Frontier Corporation, since December 2025, with the CLI renamed from the Sourcegraph npm scope in May 2026.</p><p>Onto that orb substrate, Amp’s changelog landed five releases between July 17 and July 23 — a seven-day window that is, reading its own<!-- --> <a class=\"link\" href=\"https://ampcode.com/chronicle\" rel=\"noopener noreferrer\" target=\"_blank\">chronicle index</a>, the tightest capability run we could find in the product’s public history. Read them in order and the direction is unmistakable: each one removes another reason an agent would need a human present.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Jul 17</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">From Agent to Agent</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">agent-to-agent messaging</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Agents can spawn other agents, message them, and exchange files across Amp threads. Peers can run in orbs, on the local machine, or on any other machine running amp — including delegating a bug as a ‘side quest’ to a spawned orb thread.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">ampcode.com/news/from-agent-to-agent</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Jul 20</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Puck + Slack</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">meta-agent · channel trigger</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Puck is a persistent meta-agent on ampcode.com that spawns and coordinates other agents, investigates issues, and archives work — Amp calls it an experiment. The same day, Amp landed in Slack: @-mention it in a channel to trigger bug fixes, feature spikes, and codebase Q&amp;A.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">ampcode.com/news/meet-puck</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Jul 21</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Right on Schedule</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">self-scheduling agents</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Agents set their own schedules, wake themselves up, and resume with their saved prompt and full prior context. Amp’s examples: daily slowest-query digs with Slack notification, feature-flag cleanup reminders, and hourly error triage that spawns fix threads.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">ampcode.com/news/schedule</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Jul 22</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Multiplayer</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">shared orb control</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Invite workspace members to share control of a running orb: message the agent directly, view its portal, see file changes, and use a shared terminal. Sessions are time-boxed via a TTL field on thread creation; the default duration is undisclosed.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">ampcode.com/news/multiplayer</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-ignition-2\"><span class=\"size-1.5 rounded-full bg-current\"></span>Jul 23</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-white\">Event-Driven Orbs</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\">durable webhook triggers</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-white/72\">Orbs receive requests and react to outside events — a CI failure on GitHub, a new Linear issue, a monitor alert, a Discord event, or any service capable of sending an HTTP request. The release that makes everything above triggerable from outside.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">ampcode.com/news/event-driven-orbs</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Individually, each release is incremental. Composed, they change the product category. Amp states outright that self-scheduling “works great with Slack, Puck, and spawning other agents” — and in the multiplayer announcement it frames the orb as the platform’s de facto unit of work, where “the lines between description, solution, code, and computation are all blurring and merging into the orb.” A scheduled agent that can message peer agents, spawn new orbs, post to Slack, and now be woken by external events is not a coding assistant with extra features. It is a long-running service whose deploys happen to be conversations.</p></div><blockquote class=\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\">&quot;Agents can now set their own schedules, wake themselves up, and keep working.&quot;<cite class=\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\">— Amp product docs, Right on Schedule (July 21, 2026)</cite></blockquote><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"event-driven-orbs\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">02<!-- --> — <!-- -->The Mechanics</span>How event-driven orbs<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">actually</em> <!-- -->work.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The trigger surface is not a generic platform-wide endpoint. Each webhook is generated as a project-specific TypeScript plugin, registered through the Amp Plugin API’s <code>createWebhook()</code> <!-- -->call. The registration takes a key of 1–128 characters, an optional headers allowlist, and a handler function — and returns a URL the docs label a “capability URL.” That handler is where the always-on behavior lives: it can append the event to an existing thread, spawn a brand-new orb thread, hold durable state across invocations, or call external APIs.</p><p>Three operational properties matter for anyone who has run webhook infrastructure before. First, delivery is<!-- --> <strong>at least once, not exactly once</strong> — the docs say so explicitly, and the event object carries an <code>id</code> field that exists specifically as an idempotency key for deduplication. Second, handlers run against a<!-- --> <strong>hard 30-second processing deadline</strong>, enforced by an<!-- --> <code>AbortSignal</code> that Amp fires at the cutoff. Third, the event payload arrives with the raw body, lowercased headers, and an ISO-8601 received-at timestamp — the handler decides what becomes agent work. If you want the general engineering discipline behind that first property, our reference on<!-- --> <a class=\"link\" href=\"/blog/webhook-reliability-idempotency-retries-engineering-reference-2026\">building webhook handlers around at-least-once delivery</a> <!-- -->covers the dedup, retry, and ordering patterns that apply here verbatim — Amp’s <code>WebhookEvent.id</code> is a textbook live example.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Handler deadline</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Hard processing cutoff</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">30<span class=\"font-mono font-normal text-[14px] text-ignition\">s</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">WebhookHandlerContext carries an AbortSignal that Amp aborts at a 30-second deadline. Long work belongs in a spawned orb thread, not in the handler itself — the handler is a router, not a worker.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">AbortSignal-enforced</span></div></div></div><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Delivery guarantee</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">At-least-once delivery</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">≥1<span class=\"font-mono font-normal text-[14px] text-ignition\">×</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Events are delivered at least once, never exactly once. The WebhookEvent.id field is documented explicitly as an idempotency key — handler code that is not duplicate-tolerant will eventually double-fire agent work.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">dedup via WebhookEvent.id</span></div></div></div><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Registration</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">createWebhook() key cap</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">128<span class=\"font-mono font-normal text-[14px] text-ignition\">chars</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Each webhook registers with a 1–128 character key, an optional headers allowlist, and a handler. Spawned work is placed via executor type: the local machine, a fresh cloud orb, or a specific named runner.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">project-scoped plugin</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The placement options are worth a second look. A handler that spawns work chooses one of Amp’s four current execution modes — low, medium, high, or ultra, the naming Amp settled on July 9 — and one of three executor placements: <code>local</code>, <code>orb</code>, or a named runner machine. In other words, an inbound HTTP request can start compute on a cloud VM, on the registering developer’s laptop, or on any named machine in the fleet. That flexibility is genuinely useful, and it is also exactly why the question of who can send that request deserves its own section.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"security-model\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">03<!-- --> — <!-- -->Trigger Security</span>Two security models, one word:<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">precisely</em> <!-- -->what is verified.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Here is the distinction that a quick read of the announcement will miss, and it is the security point of this entire release. Amp documents <strong>two different trust models</strong> for inbound events, and they are not equivalent.</p><p><strong>For GitHub, verification is cryptographic.</strong> The event-driven-orbs page states that Amp verifies GitHub’s webhook signature and then starts a fresh orb thread with trusted repository, event, issue, and actor metadata. The design even separates trust layers deliberately: the verified metadata comes from Amp’s verification layer, while the issue body itself “remains untrusted input, not agent instructions” — an explicit mitigation against the classic malicious-GitHub-issue prompt injection.</p><p><strong>For every other sender, the URL itself is the secret.</strong> <!-- -->The general <code>createWebhook()</code> reference — the mechanism behind Linear, Discord, monitors, and arbitrary HTTP senders — documents URL secrecy plus idempotency-key deduplication as the security model. It does not document per-request signature verification across all event sources. That means for the general case, possession of the URL is authorization: there is no documented expiry on the URL, no documented scoping of what a given sender may trigger, and rotation is manual — you “tell Amp to remove it when you no longer need it.”</p></div><blockquote class=\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\">&quot;The webhook URL is a credential. Keep it private, and tell Amp to remove it when you no longer need it.&quot;<cite class=\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\">— Amp product docs, Event Driven Orbs (July 23, 2026)</cite></blockquote><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">Why this distinction is load-bearing</span><div class=\"text-[15.5px] text-white leading-[1.6]\">A secret-URL-only model means<!-- --> <em class=\"font-serif text-white italic\">the URL is the credential</em>. It will live in the sending service’s config, in CI variables, in monitoring dashboards, possibly in logs — every place a bearer token leaks from, with none of the scanning infrastructure that watches for leaked API keys. The GitHub path shows Amp knows how to do signature verification; the general path shows it has not yet been extended to every sender. Treat any non-GitHub webhook URL exactly as you would a production API key, because functionally that is what it is.</div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>None of this is unusual for a v1 webhook surface — plenty of mature platforms started with capability URLs. What makes it worth flagging on day three rather than day three hundred is what sits behind the URL: not a row in a database, but an agent that can run code, spend compute, message other agents, and act without anyone watching. The blast radius of a leaked trigger URL scales with the autonomy of the thing it triggers.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"oidc-contrast\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">04<!-- --> — <!-- -->The Contrast</span>Outbound got<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">OIDC</em>; inbound got a secret URL.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The sharpest way to see the gap is to read the July 23 release against one Amp shipped nine days earlier. On July 14 —<!-- --> <a class=\"link\" href=\"https://ampcode.com/news/secrets-of-the-orb\" rel=\"noopener noreferrer\" target=\"_blank\">“Secrets of the Orb”</a> <!-- -->— Amp eliminated long-lived secrets injected into orbs for calling<!-- --> <em>other</em> services, replacing them with OIDC-based workload identity: short-lived tokens carrying explicit claims for workspace, project, user, thread, email, issuer, audience, subject, and expiration. Amp’s own words: “tokens are all short-lived and tightly scoped to the operations that project needs,” with zero config required from developers.</p><p>That is a genuinely modern credential story — expiry, scoping, auditability, per-thread attribution. And it makes the inbound asymmetry impossible to unsee: the same platform that decided static bearer secrets were unacceptable for orbs calling out shipped, nine days later, a static bearer URL as the general mechanism for the outside world calling in. Outbound authentication got workload identity; inbound triggering got URL secrecy. Neither Amp’s docs nor any press coverage frames these two releases as a contrast — seeing it requires reading five changelog entries across nine days side by side — but for anyone deciding whether to wire business events into this system, it is the single most useful fact of the week.</p><p>The fair reading is directional, not damning: the July 14 release proves the team treats credential hygiene as a first-class engineering problem, which makes it reasonable to expect the inbound surface to mature the same way. Until it does, the asymmetry is yours to manage. For the wider discipline — why agents should hold their own scoped, short-lived, revocable identities rather than borrowed human credentials — see our playbook on<!-- --> <a class=\"link\" href=\"/blog/agent-identity-credentials-non-human-access-2026-playbook\">how non-human agent identity and credentials should be scoped</a>; Amp’s OIDC claims structure is close to that playbook’s recommended shape for outbound calls, which is exactly why the inbound gap stands out.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"governance-ledger\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">05<!-- --> — <!-- -->The Ledger</span>Capability shipped vs<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">governance</em> <!-- -->shipped, release by release.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Nobody has laid the week’s releases side by side against what each one did — or did not — ship in terms of controls. The table below does exactly that, built entirely from each release’s own primary page. The pattern in the last two columns is the argument of this post made legible: the governance groundwork landed before the capability week, and the capability week itself shipped autonomy faster than controls.</p></div><div class=\"my-7 overflow-x-auto rounded-xl border border-zinc-200 dark:border-zinc-800\"><table class=\"w-full min-w-[880px] border-collapse text-left text-[13px]\"><caption class=\"sr-only\">Ledger of Amp releases from July 14 to July 23, 2026, comparing the autonomous capability each release added against the identity, credential, audit, and budget controls documented alongside it.</caption><thead><tr class=\"bg-[#0a0a0b] text-white\"><th class=\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\" scope=\"col\">Date (2026)</th><th class=\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\" scope=\"col\">Release</th><th class=\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\" scope=\"col\">New autonomous capability</th><th class=\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\" scope=\"col\">Identity / credential control alongside</th><th class=\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\" scope=\"col\">Audit / budget control alongside</th></tr></thead><tbody><tr class=\"bg-zinc-100 dark:bg-zinc-900\"><th class=\"px-3 py-2 font-medium font-mono text-[10.5px] text-zinc-600 uppercase tracking-[0.1em] dark:text-zinc-400\" colSpan=\"5\" scope=\"colgroup\">Governance groundwork — outbound calls</th></tr><tr class=\"border-zinc-200 border-t dark:border-zinc-800\"><th class=\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\" scope=\"row\">Jul 14</th><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Secrets of the Orb</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">None — pure credential-hygiene release</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">OIDC workload identity: short-lived, tightly scoped tokens replace injected static secrets</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Token claims attribute every outbound call to a workspace, project, user, and thread</td></tr><tr class=\"bg-zinc-100 dark:bg-zinc-900\"><th class=\"px-3 py-2 font-medium font-mono text-[10.5px] text-zinc-600 uppercase tracking-[0.1em] dark:text-zinc-400\" colSpan=\"5\" scope=\"colgroup\">The capability week — five releases in seven days (Jul 17–23)</th></tr><tr class=\"border-zinc-200 border-t dark:border-zinc-800\"><th class=\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\" scope=\"row\">Jul 17</th><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">From Agent to Agent</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Agents spawn, message, and exchange files with other agents — in orbs, locally, or on remote machines</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">None documented</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">None documented</td></tr><tr class=\"border-zinc-200 border-t dark:border-zinc-800\"><th class=\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\" scope=\"row\">Jul 20</th><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Puck + Amp in Slack</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Persistent meta-agent coordinates other agents; @-mention in Slack triggers work from chat</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">None documented</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">None documented</td></tr><tr class=\"border-zinc-200 border-t dark:border-zinc-800\"><th class=\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\" scope=\"row\">Jul 21</th><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Right on Schedule</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Agents set their own schedules and re-wake themselves with full prior context</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">None documented</td><td class=\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\">No wake-frequency cap or budget guardrail documented on the release page</td></tr><tr class=\"border-zinc-200 border-t dark:border-zinc-800\"><th class=\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\" scope=\"row\">Jul 22</th><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Multiplayer</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Workspace members share live control of a running orb — messages, portal, file changes, shared terminal</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Workspace-membership access; sessions time-boxed via a TTL field (default undisclosed)</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Shared portal and terminal add real-time visibility for teammates</td></tr><tr class=\"border-zinc-200 border-t dark:border-zinc-800\"><th class=\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\" scope=\"row\">Jul 23</th><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Event-Driven Orbs</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Any HTTP-capable service can wake an orb via a durable webhook</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">GitHub: cryptographic signature verification. All other senders: secret capability URL, manual removal</td><td class=\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\">Idempotency-key dedup; 30-second handler deadline</td></tr></tbody></table></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Sources: each row’s own release page on ampcode.com plus the Plugin API reference, retrieved July 26, 2026 — with one exception: the Jul 20 Slack detail is chronicle-summary-level only, because its own release page did not resolve when we fetched it. “None documented” means exactly that — an absence in the published pages, not a confirmed absence of internal controls. Amp may well enforce limits it has not written down. But governance you cannot read is governance you cannot audit against, and for an ops team doing vendor due diligence, the documented surface is the surface.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"always-on-context\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">06<!-- --> — <!-- -->The Category</span>The always-on agent category is<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">consolidating</em> <!-- -->fast.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Amp is not inventing this category alone. Cursor got there first on the scheduled side — our<!-- --> <a class=\"link\" href=\"/blog/cursor-automations-always-on-agentic-coding-agents-guide\">guide to Cursor’s always-on automation model</a> <!-- -->covers its Automations architecture in full. What Amp’s week adds to the category is the inbound half: not just agents that run on a schedule, but agents any external system can wake on demand, plus the agent-to-agent fabric for what happens after they wake.</p><p>The same week, the pendulum swung the other way elsewhere: Anthropic’s changelog arc added<!-- --> <a class=\"link\" href=\"/blog/claude-code-subagent-depth-limits-budget-caps-2026\">hard subagent depth limits and budget caps to Claude Code</a> <!-- -->— one vendor adding brakes in the same seven days another added throttle. That divergence, more than any single feature, is the trend line: the vendors racing to make agents persistent are now differentiating on how much governance ships in the box.</p><p>Our forward read: the capability side of always-on agents is close to settled — schedules, webhooks, chat triggers, and agent-to-agent handoff will be table stakes across every serious agent platform within a quarter or two. The unsettled axis is operational trust. Amp’s own July 14 release shows the direction mature platforms will take — short-lived, scoped, claims-carrying identity — and the reasonable expectation is that inbound triggers across the industry converge on signed or identity-bound events the way outbound calls already have. Teams adopting now should plan for that convergence rather than wait for it: the governance you wrap around a v1 trigger surface today is the same governance you will want when the platform hardens underneath it.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">Budget surface, as documented</span><div class=\"text-[15.5px] text-white leading-[1.6]\">The only published spend envelope around all this autonomy is Amp’s subscription beta (July 18): <strong>Megawatt at $20/month</strong> — 750 hours of small orbs, $20 of included agent usage, low and medium modes only — and <strong>Gigawatt at $200/month</strong> — 1,000 hours of large orbs, $200 of included usage, all modes. Beyond the allotment, usage links to a ChatGPT subscription or paid credits, and pay-as-you-go API-rate pricing remains available. With<!-- --> <em class=\"font-serif text-white italic\">no documented wake-rate cap</em> <!-- -->on self-scheduling, that allotment is the only hard ceiling you can currently point to in writing.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"ops-playbook\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">07<!-- --> — <!-- -->Ops Playbook</span>Before you wire<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">business events</em> <!-- -->into an agent that never sleeps.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The reason this post sits in our CRM and automation category rather than developer tooling: the obvious next move for any ops team reading Amp’s changelog is to point business events at it. New lead created, deal stage changed, support ticket opened, payment failed — these are exactly the “any service capable of sending an HTTP request” events the release invites. And an agent with no session boundary and no human in the loop inverts the operational assumptions most teams inherit from their existing automation stack. Three things become load-bearing that used to be nice-to-have: budget, audit trail, and credential hygiene.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Budget</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Set the spend ceiling before the trigger</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">A session-bound agent stops spending when you close the laptop; a self-scheduling one does not. With no documented wake-rate cap, your subscription allotment is the only visible ceiling — size it deliberately, and alert on burn rate, not just balance.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Cap first, wire second</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Audit trail</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-white\">Log which event woke which agent, and why</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-white/72\">At-least-once delivery plus agents that spawn agents means reconstructing an incident requires a trail: event id, source, handler decision, threads spawned, actions taken. Build it at the handler boundary — it is the one chokepoint every wake passes through.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\">Design the trail now</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Credential hygiene</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Treat every webhook URL as a production API key</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">For non-GitHub senders the URL is the credential: no expiry, no scoping, manual removal. Store it in a secrets manager, never in shared configs or dashboards, rotate on staff changes, and remove URLs the moment a workflow is retired.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Rotate + scope</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Human-in-the-loop</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Decide where a person signs off</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">No session boundary means nobody is implicitly watching. Decide explicitly which actions an event-woken agent may complete alone — and which (customer-facing messages, CRM writes, anything irreversible) queue for approval instead.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Gate the blast radius</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The audit-trail point deserves the most emphasis, because it is the one you cannot retrofit after an incident. Our<!-- --> <a class=\"link\" href=\"/blog/agent-audit-trail-design-7-best-practices-2026\">guide to designing audit trails for agents that act without a human present</a> <!-- -->walks the full pattern; the short version is that Amp’s own primitives — the event id, the received-at timestamp, the trusted metadata on GitHub events — give you the raw inputs, but the correlation layer is yours to build. This is also, candidly, the work we do for clients: our<!-- --> <a class=\"link\" href=\"/services/crm-automation\">CRM automation engagements</a> <!-- -->increasingly consist of wiring event-driven agents into pipelines with exactly these guardrails in place from day one, and our<!-- --> <a class=\"link\" href=\"/services/ai-transformation\">AI transformation practice</a> <!-- -->handles the governance side — budgets, approval gates, and credential policy for non-human actors — before the first production event fires.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"conclusion\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">08<!-- --> — <!-- -->Conclusion</span>The week the session boundary<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">dissolved</em>.</h2><div class=\"relative my-10 overflow-hidden rounded-2xl bg-[#0a0a0b] p-8 text-white\"><div aria-hidden=\"true\" class=\"pointer-events-none absolute right-[-20%] bottom-[-30%] size-[400px] [background:radial-gradient(circle,rgba(255,107,26,0.12),transparent_60%)]\"></div><div class=\"relative mb-3.5 flex items-center gap-2.5 font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-ignition shadow-[0_0_6px_var(--color-ignition)]\"></span>Changelog-sourced, July 26, 2026</div><h3 class=\"relative m-0 mb-4 font-medium text-[22px] text-white leading-[1.2] tracking-[-0.015em]\">Agents became services this week. Governance is now your job.</h3><div class=\"relative space-y-3 text-[15.5px] text-white/80 leading-[1.65]\"><p>Amp’s five-release week is the clearest single-vendor statement yet that coding agents are becoming<!-- --> <em class=\"font-serif text-ignition-2 italic\">persistent services</em> <!-- -->— schedulable, triggerable, multiplayer, and able to delegate to each other. All of it is documented only in Amp’s own changelog and API reference; no independent press had touched it as of this writing. That does not make it less real — it makes reading the primary pages carefully more important.</p><p>The precise finding worth carrying: trigger security is split. GitHub events get cryptographic signature verification and a deliberate trusted-metadata / untrusted-content separation; everything else gets a secret capability URL that Amp itself calls a credential. Nine days before shipping that inbound surface, Amp replaced static outbound secrets with short-lived OIDC workload identity — proof the team knows what mature credential design looks like, and the standard its own inbound path should be held to.</p><p>For ops and CRM teams, the move is not to wait. The capability is genuinely useful today, and the gaps are all manageable with discipline you control: a deliberate spend ceiling, an audit trail built at the handler boundary, webhook URLs treated as production keys, and explicit approval gates on irreversible actions. Agents that never sleep are here. The teams that win with them will be the ones that governed them before the first event fired.</p></div></div></article><aside class=\"sticky top-[84px] hidden flex-col gap-5 self-start xl:flex\"><div class=\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Share dispatch</span><div class=\"flex flex-col gap-2\"><div class=\"flex flex-wrap gap-2\"><a aria-label=\"Share on X\" class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" href=\"https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.digitalapplied.com%2Fblog%2Famp-event-driven-orbs-self-scheduling-agents-2026&amp;text=Amp%20Turned%20Agents%20Into%20Always-On%20Services%20This%20Week\" rel=\"noopener noreferrer\" target=\"_blank\"><svg aria-hidden=\"true\" class=\"size-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"></path></svg> X</a><a aria-label=\"Share on LinkedIn\" class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" href=\"https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.digitalapplied.com%2Fblog%2Famp-event-driven-orbs-self-scheduling-agents-2026\" rel=\"noopener noreferrer\" target=\"_blank\"><svg aria-hidden=\"true\" class=\"size-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.266 2.37 4.266 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.063 2.063 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452z\"></path></svg> LinkedIn</a></div><button class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" type=\"button\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-link2 lucide-link-2 size-3.5\" aria-hidden=\"true\"><path d=\"M9 17H7A5 5 0 0 1 7 7h2\"></path><path d=\"M15 7h2a5 5 0 1 1 0 10h-2\"></path><line x1=\"8\" x2=\"16\" y1=\"12\" y2=\"12\"></line></svg>Copy link</button></div></div><div class=\"relative overflow-hidden rounded-2xl bg-[#0a0a0b] p-5 text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:14px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><span class=\"mb-3.5 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.12em]\">AI Insights</span><h4 class=\"m-0 mb-2.5 font-medium text-[15px] text-white leading-[1.3] tracking-[-0.01em]\">Deep dives on AI marketing and development.</h4><p class=\"m-0 mb-3.5 text-[12.5px] text-white/65 leading-normal\">Agentic development, frontier AI models, and data-driven strategies. No recycled AI takes.</p><form class=\"flex flex-col gap-2\"><input aria-label=\"Email address\" autoComplete=\"email\" class=\"w-full rounded-md border border-white/15 bg-black/35 px-3 py-2.5 font-sans text-[13px] text-white outline-none focus:border-ignition disabled:opacity-60\" inputMode=\"email\" placeholder=\"you@work.com\" required=\"\" type=\"email\" name=\"email\" value=\"\"/><input aria-hidden=\"true\" autoComplete=\"off\" class=\"absolute left-[-9999px] h-0 w-0 opacity-0\" tabindex=\"-1\" type=\"text\" name=\"website\" value=\"\"/><button class=\"inline-flex h-auto w-full items-center justify-center rounded-md bg-white py-2.5 font-medium text-[13px] text-zinc-950 transition-colors hover:bg-white/90 disabled:cursor-not-allowed disabled:opacity-60\" type=\"submit\">Subscribe</button></form></div><div class=\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Release window</span><h4 class=\"m-0 mb-2.5 font-medium text-[15px] text-zinc-950 dark:text-white\">July 17–23, 2026</h4><div class=\"mb-1 font-mono text-[12px] text-zinc-950 dark:text-white\">ampcode.com/chronicle</div><p class=\"m-0 text-[12px] text-zinc-500 leading-normal\">Every claim in this post traces to Amp’s own changelog and Plugin API reference — no independent press coverage of this release cluster existed as of July 26, 2026. Verify current behavior against the primary pages before wiring production events.</p></div></aside></div></section><section class=\"relative isolate overflow-hidden bg-[#0a0a0b] py-20 text-white\"><div aria-hidden=\"true\" class=\"pointer-events-none absolute inset-0 [-webkit-mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)] [background-image:linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] [background-size:56px_56px] [mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-1/2 left-1/2 size-[900px] -translate-x-1/2 -translate-y-1/2 blur-[30px] [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.04)_30%,transparent_65%)]\"></div><div class=\"relative z-[2] mx-auto grid max-w-[1320px] items-center gap-14 px-4 md:px-8 lg:grid-cols-[1.3fr_1fr]\"><div><span class=\"mb-4.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>Wire events to agents, safely</span><h2 class=\"m-0 mb-4.5 font-light text-[clamp(30px,3.8vw,50px)] leading-[1.04] tracking-[-0.03em]\">Always-on agents only pay off when the<!-- --> <em class=\"bg-clip-text font-normal font-serif text-transparent italic\" style=\"background-image:linear-gradient(180deg, #fff 40%, var(--color-ignition-2) 80%, var(--color-ignition) 100%)\">governance</em> <!-- -->ships with them.</h2><p class=\"m-0 mb-7 max-w-[520px] text-[16px] text-white/72 leading-[1.6]\">Our team designs event-driven agent pipelines with the guardrails built in — budgets, audit trails, credential policy, and approval gates — so always-on automation works for your ops team instead of surprising it.</p><div class=\"mb-6 flex flex-wrap gap-3\"><a class=\"group relative inline-flex h-[52px] items-center justify-center gap-2 overflow-hidden rounded-lg bg-[#0a0a0b] px-7 font-medium text-[15px] text-white shadow-[0_0_0_1px_#0a0a0b,0_10px_30px_-10px_rgba(255,107,26,0.4)] transition-transform hover:-translate-y-0.5\" href=\"/get-started\"><span class=\"relative z-[1]\">Get started</span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right relative z-[1] size-4 transition-transform group-hover:translate-x-0.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></a><a class=\"inline-flex h-[52px] items-center justify-center gap-2 rounded-lg border border-white/15 bg-white/5 px-7 font-medium text-[15px] text-white transition-colors hover:border-white/30 hover:bg-white/10\" href=\"/services/crm-automation\">Explore CRM automation</a></div><div class=\"flex flex-wrap gap-x-7 gap-y-2 font-mono text-[11px] text-white/55 uppercase tracking-[0.1em]\"><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Free consultation</span><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Expert guidance</span><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Tailored solutions</span></div></div><div class=\"relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.04] p-7\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:18px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><span class=\"mb-3.5 block font-mono text-[11px] text-ignition-2 uppercase tracking-[0.14em]\">What we work on</span><h4 class=\"m-0 mb-3.5 font-medium text-[19px] text-white tracking-[-0.01em]\">Event-driven agent engagements</h4><ul class=\"m-0 list-none p-0\"><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>CRM event → agent pipelines with approval gates</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Audit-trail design for non-human actors</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Webhook credential policy &amp; rotation runbooks</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Budget ceilings &amp; burn-rate alerting for agent fleets</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Vendor due diligence on agent platform security</li></ul></div></div></section><section class=\"border-zinc-200 border-t bg-white py-24 dark:border-zinc-800 dark:bg-zinc-950\" id=\"faq\"><div class=\"mx-auto max-w-[960px] px-4 md:px-8\"><div class=\"mb-12\"><div class=\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>FAQ · Amp always-on agents</div><h2 class=\"m-0 font-normal text-[clamp(32px,4vw,48px)] text-zinc-950 leading-[1.05] tracking-[-0.03em] dark:text-white\">Always-on agents,<!-- --> <em class=\"font-normal font-serif italic\">answered honestly.</em></h2></div><div class=\"border-zinc-200 border-t dark:border-zinc-800\"><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-0\" aria-expanded=\"true\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What exactly did Amp ship between July 17 and 23, 2026?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all rotate-45 border-ignition bg-ignition text-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button><div class=\"mt-3.5 max-w-[760px] text-[15px] text-zinc-600 leading-[1.65] dark:text-zinc-400\" id=\"faq-answer-0\">Five releases in a seven-day window, per Amp’s own changelog: agent-to-agent messaging on July 17 (agents spawn, message, and exchange files with other agents), the Puck meta-agent plus a Slack integration on July 20, self-scheduling on July 21 (agents set their own schedules and re-wake with full prior context), multiplayer orbs on July 22 (workspace members share live control of a running orb), and event-driven orbs on July 23 (orbs wake in response to external HTTP events). Together they convert Amp’s agents from session-bound tools into persistent services. All of this is documented on ampcode.com’s news pages and chronicle index; no independent tech press had covered the cluster as of July 26, 2026.</div></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-1\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What is an Amp orb?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-2\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>How do event-driven orbs work technically?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-3\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Are Amp’s webhook triggers cryptographically verified?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-4\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Does Amp limit how often a self-scheduled agent can wake itself?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-5\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What does Amp cost as of late July 2026?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-6\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Should we connect CRM or business events to always-on agents yet?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div></div></div></section><section class=\"bg-zinc-100 py-24 dark:bg-zinc-900\"><div class=\"mx-auto max-w-[1320px] px-4 md:px-8\"><div class=\"mb-10\"><div class=\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>Related dispatches</div><h2 class=\"m-0 font-normal text-[clamp(30px,3.6vw,44px)] text-zinc-950 leading-[1.05] tracking-[-0.025em] dark:text-white\">Continue exploring<!-- --> <em class=\"font-normal font-serif italic\">agentic automation.</em></h2></div><div class=\"grid gap-4 md:grid-cols-3\"><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/agent-identity-credentials-non-human-access-2026-playbook\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Giving Agents Their Own Identity, Not Your Credentials</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 26, 2026<!-- --> · <!-- -->14<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/build-whatsapp-lead-capture-crm-agent-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Build a WhatsApp Lead-Capture Agent for Your CRM Stack</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Build a WhatsApp lead-capture agent on Meta&#x27;s Cloud API: inbound webhook, in-chat qualification with Flows, and a routed CRM record, with no BSP required.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 15, 2026<!-- --> · <!-- -->12<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/zoho-agentic-crm-automation-2026-smb-playbook\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Zoho Agentic CRM Automation: The 2026 SMB Playbook</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Zoho CRM layers workflow rules, Blueprint, CommandCenter, and Zia agents into a four-tier automation stack. An SMB playbook for agentic lead routing.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>June 22, 2026<!-- --> · <!-- -->12<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/marketing-automation-ai-agents-make-zapier-n8n-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Marketing Automation AI Agents: Make vs Zapier vs n8n</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Comparison of marketing automation platforms with AI agent capabilities in 2026. Make, Zapier, and n8n evaluated for agent workflows, pricing, and scale.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>April 1, 2026<!-- --> · <!-- -->17<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/perplexity-computer-multi-model-ai-agent-guide\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Perplexity Computer: Multi-Model AI Agent Guide</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Perplexity Computer orchestrates 19 AI models as specialized sub-agents for autonomous web research, file management, and workflow execution. Pricing and setup.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>February 27, 2026<!-- --> · <!-- -->13<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/basis-ai-100m-agentic-accounting-tax-audit-guide\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Basis AI $100M: Agentic Accounting Tax and Audit</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Basis AI raises $100M Series B at $1.15B valuation for agentic accounting. How AI agents transform tax preparation, audit workflows, and financial compliance.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>March 1, 2026<!-- --> · <!-- -->11<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a></div></div></section><!--$--><!--/$--></main><footer class=\"border-white/10 border-t bg-[#0a0a0b] py-16 text-white/60\"><div class=\"mx-auto grid max-w-7xl gap-12 px-4 md:px-8 lg:grid-cols-[1.4fr_1fr_1fr_1fr_1fr]\"><div><a aria-label=\"Digital Applied\" class=\"inline-block\" href=\"/\"><img alt=\"Digital Applied\" loading=\"lazy\" width=\"160\" height=\"40\" decoding=\"async\" data-nimg=\"1\" style=\"color:transparent;height:24px;width:auto\" src=\"/logo-white.svg\"/></a><p class=\"mt-4 max-w-[320px] text-sm leading-relaxed\">An agentic growth partner for teams that would rather ship than schedule. Full-service digital marketing, delivered in days.</p><div class=\"mt-6\"><div class=\"flex gap-4 text-white/50\"><a aria-label=\"Follow us on X (Twitter)\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://x.com/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>X (Twitter)</title><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"></path></svg></a><a aria-label=\"Follow us on Facebook\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.facebook.com/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>Facebook</title><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"></path></svg></a><a aria-label=\"Follow us on Instagram\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.instagram.com/digital_applied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>Instagram</title><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z\"></path></svg></a><a aria-label=\"Follow us on LinkedIn\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.linkedin.com/company/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>LinkedIn</title><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"></path></svg></a></div></div></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Services</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/agentic-seo\">SEO</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/paid-media\">PPC</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/content-engine\">Content</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/web-development\">Web Dev</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/crm-automation\">CRM</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Company</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/about\">About</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/#process\">Process</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/contact\">Contact</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Resources</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog\">Blog</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/ai-tools\">AI Tools</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/privacy-policy\">Privacy</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/terms-of-service\">Terms</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Topics</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/ai-development\">AI Development</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/seo\">SEO</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/marketing\">Marketing</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/ecommerce\">eCommerce</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/business\">Business</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/crm-automation\">CRM &amp; Automation</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/development\">Development</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/tags\">All Topics →</a></li></ul></div></div><div class=\"mx-auto mt-12 flex max-w-7xl flex-col items-start justify-between gap-3 border-white/10 border-t px-4 pt-6 font-mono text-[11px] text-white/40 uppercase tracking-widest sm:flex-row sm:items-center md:px-8\"><span>© <!-- -->2026<!-- --> Digital Applied</span><span>All systems nominal</span></div></footer></div><script src=\"/_next/static/chunks/0fh1k_r~b~e_o.js\" id=\"_R_\" async=\"\"></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,\"1:\\\"$Sreact.fragment\\\"\\n2:I[636356,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"GoogleTagManager\\\"]\\n3:I[728231,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"TooltipProvider\\\"]\\n4:I[989144,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\"]\\n5:I[818602,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\"]\\n6:I[636768,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/13b9o4nx8cmv5.js\\\"],\\\"default\\\"]\\ne:I[153782,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\",1]\\n:HL[\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"style\\\"]\\n:HL[\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"style\\\"]\\n:HL[\\\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n7:Td63,\"])</script><script>self.__next_f.push([1,\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"LocalBusiness\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/#organization\\\",\\\"name\\\":\\\"Digital Applied\\\",\\\"legalName\\\":\\\"Digital Applied, s. r. o.\\\",\\\"url\\\":\\\"https://www.digitalapplied.com\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/logo-black.svg\\\",\\\"width\\\":\\\"512\\\",\\\"height\\\":\\\"512\\\"},\\\"image\\\":\\\"https://www.digitalapplied.com/opengraph-image\\\",\\\"description\\\":\\\"International digital marketing agency specializing in SEO, PPC, social media marketing, and AI-powered digital transformation for global clients\\\",\\\"foundingDate\\\":\\\"2019-05-01\\\",\\\"telephone\\\":\\\"+421-90-246-8050\\\",\\\"email\\\":\\\"info@digitalapplied.com\\\",\\\"address\\\":{\\\"@type\\\":\\\"PostalAddress\\\",\\\"streetAddress\\\":\\\"Priemyselná 668/7\\\",\\\"addressLocality\\\":\\\"Bratislava\\\",\\\"addressRegion\\\":\\\"Bratislava\\\",\\\"postalCode\\\":\\\"821 09\\\",\\\"addressCountry\\\":\\\"SK\\\"},\\\"geo\\\":{\\\"@type\\\":\\\"GeoCoordinates\\\",\\\"latitude\\\":48.142672,\\\"longitude\\\":17.168666},\\\"sameAs\\\":[\\\"https://x.com/digitalapplied\\\",\\\"https://www.facebook.com/digitalapplied\\\",\\\"https://www.instagram.com/digital_applied\\\",\\\"https://www.linkedin.com/company/digitalapplied\\\"],\\\"areaServed\\\":[{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"United States\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"United Kingdom\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"Canada\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"Australia\\\"},{\\\"@type\\\":\\\"Place\\\",\\\"name\\\":\\\"European Union\\\"},{\\\"@type\\\":\\\"Place\\\",\\\"name\\\":\\\"Worldwide\\\"}],\\\"priceRange\\\":\\\"€€€-€€€€\\\",\\\"paymentAccepted\\\":[\\\"Credit Card\\\",\\\"Wire Transfer\\\",\\\"PayPal\\\"],\\\"currenciesAccepted\\\":\\\"EUR, USD, GBP\\\",\\\"openingHoursSpecification\\\":[{\\\"@type\\\":\\\"OpeningHoursSpecification\\\",\\\"dayOfWeek\\\":[\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\"],\\\"opens\\\":\\\"07:30\\\",\\\"closes\\\":\\\"17:00\\\"},{\\\"@type\\\":\\\"OpeningHoursSpecification\\\",\\\"dayOfWeek\\\":\\\"Saturday\\\",\\\"opens\\\":\\\"08:00\\\",\\\"closes\\\":\\\"11:00\\\"}],\\\"contactPoint\\\":{\\\"@type\\\":\\\"ContactPoint\\\",\\\"telephone\\\":\\\"+421-90-246-8050\\\",\\\"contactType\\\":\\\"customer service\\\",\\\"email\\\":\\\"info@digitalapplied.com\\\",\\\"availableLanguage\\\":[\\\"English\\\",\\\"Slovak\\\"],\\\"areaServed\\\":\\\"Worldwide\\\"},\\\"vatID\\\":\\\"SK2120914510\\\",\\\"taxID\\\":\\\"52125670\\\",\\\"identifier\\\":{\\\"@type\\\":\\\"PropertyValue\\\",\\\"propertyID\\\":\\\"Company ID\\\",\\\"value\\\":\\\"52125670\\\"},\\\"hasOfferCatalog\\\":{\\\"@type\\\":\\\"OfferCatalog\\\",\\\"name\\\":\\\"Digital Marketing Services\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"SEO Optimization\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/agentic-seo\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"PPC Advertising\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/paid-media\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Social Media Marketing\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/social-media\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Web Development\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/web-development\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Content Marketing\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/content-engine\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Analytics \\u0026 Insights\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/analytics\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"eCommerce Solutions\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/ecommerce\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"CRM \\u0026 Automation\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/crm-automation\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"AI \\u0026 Digital Transformation\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/ai-transformation\\\"}}]}}\"])</script><script>self.__next_f.push([1,\"0:{\\\"P\\\":null,\\\"c\\\":[\\\"\\\",\\\"blog\\\",\\\"amp-event-driven-orbs-self-scheduling-agents-2026\\\"],\\\"q\\\":\\\"\\\",\\\"i\\\":false,\\\"f\\\":[[[\\\"\\\",{\\\"children\\\":[\\\"(marketing)\\\",{\\\"children\\\":[\\\"blog\\\",{\\\"children\\\":[\\\"amp-event-driven-orbs-self-scheduling-agents-2026\\\",{\\\"children\\\":[\\\"__PAGE__\\\",{}]}]}]}]},\\\"$undefined\\\",\\\"$undefined\\\",16],[[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[\\\"$\\\",\\\"link\\\",\\\"0\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"link\\\",\\\"1\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-1\\\",{\\\"src\\\":\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-2\\\",{\\\"src\\\":\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-3\\\",{\\\"src\\\":\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]],[\\\"$\\\",\\\"html\\\",null,{\\\"className\\\":\\\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable instrument_serif_535d8616-module__GDyPrG__variable font-sans\\\",\\\"lang\\\":\\\"en\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L2\\\",null,{\\\"gtmId\\\":\\\"GTM-NGSFB45\\\"}],[\\\"$\\\",\\\"head\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"link\\\",null,{\\\"href\\\":\\\"/manifest.json\\\",\\\"rel\\\":\\\"manifest\\\"}],[\\\"$\\\",\\\"link\\\",null,{\\\"href\\\":\\\"/feed.xml\\\",\\\"rel\\\":\\\"alternate\\\",\\\"title\\\":\\\"Digital Applied Blog\\\",\\\"type\\\":\\\"application/rss+xml\\\"}],[\\\"$\\\",\\\"meta\\\",null,{\\\"content\\\":\\\"#18181b\\\",\\\"name\\\":\\\"theme-color\\\"}],[\\\"$\\\",\\\"meta\\\",null,{\\\"content\\\":\\\"DigitalApplied\\\",\\\"name\\\":\\\"apple-mobile-web-app-title\\\"}]]}],[\\\"$\\\",\\\"body\\\",null,{\\\"className\\\":\\\"antialiased\\\",\\\"suppressHydrationWarning\\\":true,\\\"children\\\":[\\\"$\\\",\\\"$L3\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":[[\\\"$\\\",\\\"$L6\\\",null,{}],[]],\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]}]}]]}]]}],{\\\"children\\\":[[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-1\\\",{\\\"src\\\":\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]],[[\\\"$\\\",\\\"script\\\",null,{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"$7\\\"},\\\"type\\\":\\\"application/ld+json\\\"}],\\\"$L8\\\"]]}],{\\\"children\\\":[\\\"$L9\\\",{\\\"children\\\":[\\\"$La\\\",{\\\"children\\\":[\\\"$Lb\\\",{},null,false,null]},null,false,\\\"$@c\\\"]},null,false,null]},null,false,null]},null,false,null],\\\"$Ld\\\",false]],\\\"m\\\":\\\"$undefined\\\",\\\"G\\\":[\\\"$e\\\",[\\\"$Lf\\\",\\\"$L10\\\"]],\\\"S\\\":true,\\\"h\\\":null,\\\"s\\\":\\\"$undefined\\\",\\\"l\\\":\\\"$undefined\\\",\\\"p\\\":\\\"$undefined\\\",\\\"d\\\":\\\"$undefined\\\",\\\"b\\\":\\\"0HHMAUnIFEhQnyhJt2Zxv\\\"}\\n\"])</script><script>self.__next_f.push([1,\"11:I[261824,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"LaunchBanner\\\"]\\n12:I[621915,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"HoverPrefetchLink\\\"]\\n13:I[103403,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"Image\\\"]\\n14:I[489752,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"MobileNav\\\"]\\n1f:I[953520,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogProgressBar\\\"]\\n29:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"ViewportBoundary\\\"]\\n2b:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"MetadataBoundary\\\"]\\n2c:\\\"$Sreact.suspense\\\"\\n\"])</script><script>self.__next_f.push([1,\"8:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex min-h-screen flex-col\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L11\\\",null,{}],[\\\"$\\\",\\\"nav\\\",null,{\\\"className\\\":\\\"sticky top-0 z-40 w-full border-border/60 border-b bg-background/80 backdrop-blur-md supports-backdrop-filter:bg-background/70\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto max-w-7xl px-4 md:px-8\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex h-17 items-center justify-between\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"aria-label\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"flex items-center\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":[\\\"$\\\",\\\"$L13\\\",null,{\\\"alt\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"h-6 w-auto\\\",\\\"height\\\":280,\\\"priority\\\":true,\\\"src\\\":\\\"/logo-black.svg\\\",\\\"width\\\":1556}]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden items-center gap-1 md:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",\\\"/services\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/services\\\",\\\"children\\\":\\\"Services\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/ai-tools\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/ai-tools\\\",\\\"children\\\":\\\"AI Tools\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/blog\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/about\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/about\\\",\\\"children\\\":\\\"About\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/contact\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/contact\\\",\\\"children\\\":\\\"Contact\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden items-center gap-2.5 md:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/auth/login\\\",\\\"children\\\":\\\"Log in\\\"}],[\\\"$\\\",\\\"$L12\\\",null,{\\\"href\\\":\\\"/get-started\\\",\\\"children\\\":\\\"Start engines\\\",\\\"data-slot\\\":\\\"button\\\",\\\"data-variant\\\":\\\"default\\\",\\\"data-size\\\":\\\"sm\\\",\\\"className\\\":\\\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\\u0026_svg]:pointer-events-none [\\u0026_svg]:shrink-0 [\\u0026_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 gap-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 h-9.5 rounded-lg px-4\\\",\\\"ref\\\":null}]]}],[\\\"$\\\",\\\"$L14\\\",null,{\\\"items\\\":[{\\\"href\\\":\\\"/services\\\",\\\"label\\\":\\\"Services\\\"},{\\\"href\\\":\\\"/ai-tools\\\",\\\"label\\\":\\\"AI Tools\\\"},{\\\"href\\\":\\\"/blog\\\",\\\"label\\\":\\\"Blog\\\"},{\\\"href\\\":\\\"/about\\\",\\\"label\\\":\\\"About\\\"},{\\\"href\\\":\\\"/contact\\\",\\\"label\\\":\\\"Contact\\\"}]}]]}]}]}],[\\\"$\\\",\\\"main\\\",null,{\\\"className\\\":\\\"grow\\\",\\\"children\\\":[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":[[\\\"$\\\",\\\"$L6\\\",null,{}],[]],\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]}],[\\\"$\\\",\\\"footer\\\",null,{\\\"className\\\":\\\"border-white/10 border-t bg-[#0a0a0b] py-16 text-white/60\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto grid max-w-7xl gap-12 px-4 md:px-8 lg:grid-cols-[1.4fr_1fr_1fr_1fr_1fr]\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"aria-label\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"inline-block\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":[\\\"$\\\",\\\"$L13\\\",null,{\\\"alt\\\":\\\"Digital Applied\\\",\\\"height\\\":40,\\\"src\\\":\\\"/logo-white.svg\\\",\\\"style\\\":{\\\"height\\\":24,\\\"width\\\":\\\"auto\\\"},\\\"width\\\":160}]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"mt-4 max-w-[320px] text-sm leading-relaxed\\\",\\\"children\\\":\\\"An agentic growth partner for teams that would rather ship than schedule. Full-service digital marketing, delivered in days.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-6\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex gap-4 text-white/50\\\",\\\"children\\\":[\\\"$L15\\\",\\\"$L16\\\",\\\"$L17\\\",\\\"$L18\\\"]}]}]]}],\\\"$L19\\\",\\\"$L1a\\\",\\\"$L1b\\\",\\\"$L1c\\\"]}],\\\"$L1d\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"9:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":\\\"$undefined\\\",\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]]}]\\na:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":\\\"$undefined\\\",\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]]}]\\n1e:T6c0,\"])</script><script>self.__next_f.push([1,\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BlogPosting\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026#article\\\",\\\"headline\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\",\\\"description\\\":\\\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\",\\\"datePublished\\\":\\\"2026-07-26T00:00:00+01:00\\\",\\\"dateModified\\\":\\\"2026-07-26T00:00:00+01:00\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/authors/digital-applied-team#author\\\",\\\"name\\\":\\\"Digital Applied Team\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/authors/digital-applied-team\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://www.digitalapplied.com/#organization\\\"},\\\"image\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026/article-image\\\"},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026#webpage\\\"},\\\"isPartOf\\\":{\\\"@id\\\":\\\"https://www.digitalapplied.com/#website\\\"},\\\"articleSection\\\":\\\"CRM \\u0026 Automation\\\",\\\"keywords\\\":\\\"Amp event-driven orbs, self-scheduling agents, agent webhook trigger security, always-on AI agents, Amp orbs OIDC workload identity, agent as a service 2026, durable agent triggers\\\",\\\"about\\\":[{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"amp\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"agent-automation\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"webhooks\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"event-driven-agents\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"workload-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"agent-security\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"workflow-automation\\\"}]}\"])</script><script>self.__next_f.push([1,\"b:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[[\\\"$\\\",\\\"script\\\",\\\"blog-schema-BlogPosting-0\\\",{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"$1e\\\"},\\\"type\\\":\\\"application/ld+json\\\"}],[\\\"$\\\",\\\"script\\\",\\\"blog-schema-BreadcrumbList-1\\\",{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"{\\\\\\\"@context\\\\\\\":\\\\\\\"https://schema.org\\\\\\\",\\\\\\\"@type\\\\\\\":\\\\\\\"BreadcrumbList\\\\\\\",\\\\\\\"itemListElement\\\\\\\":[{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":1,\\\\\\\"name\\\\\\\":\\\\\\\"Home\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":2,\\\\\\\"name\\\\\\\":\\\\\\\"Blog\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/blog\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":3,\\\\\\\"name\\\\\\\":\\\\\\\"CRM \\u0026 Automation\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/blog/category/crm-automation\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":4,\\\\\\\"name\\\\\\\":\\\\\\\"Amp Turned Agents Into Always-On Services This Week\\\\\\\"}]}\\\"},\\\"type\\\":\\\"application/ld+json\\\"}]],[\\\"$\\\",\\\"$L1f\\\",null,{}],[\\\"$\\\",\\\"nav\\\",null,{\\\"aria-label\\\":\\\"Breadcrumb\\\",\\\"className\\\":\\\"border-white/5 border-b bg-[#0a0a0b] text-white/55\\\",\\\"children\\\":[\\\"$\\\",\\\"ol\\\",null,{\\\"className\\\":\\\"mx-auto flex max-w-[1320px] items-center gap-2 px-4 py-3.5 font-mono text-[11px] uppercase tracking-[0.1em] md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"Home\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":\\\"Home\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"Blog\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"CRM \\u0026 Automation\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/blog/category/crm-automation\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"Amp Event-Driven Orbs\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[\\\"$L20\\\",false]}]]}]}],\\\"$L21\\\",\\\"$L22\\\",\\\"$L23\\\",\\\"$L24\\\",\\\"$L25\\\"],[\\\"$L26\\\"],\\\"$L27\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"28:[]\\nc:\\\"$W28\\\"\\nd:[\\\"$\\\",\\\"$1\\\",\\\"h\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L29\\\",null,{\\\"children\\\":\\\"$L2a\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"hidden\\\":true,\\\"children\\\":[\\\"$\\\",\\\"$L2b\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$2c\\\",null,{\\\"name\\\":\\\"Next.Metadata\\\",\\\"children\\\":\\\"$L2d\\\"}]}]}],[\\\"$\\\",\\\"meta\\\",null,{\\\"name\\\":\\\"next-size-adjust\\\",\\\"content\\\":\\\"\\\"}]]}]\\nf:[\\\"$\\\",\\\"link\\\",\\\"0\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}]\\n10:[\\\"$\\\",\\\"link\\\",\\\"1\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"2e:I[960562,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"\\\"]\\n32:I[485094,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogToc\\\"]\\n53:I[529530,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"default\\\"]\\n57:I[827892,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogFaq\\\"]\\n5e:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"OutletBoundary\\\"]\\n15:[\\\"$\\\",\\\"$L2e\\\",null,{\\\"aria-label\\\":\\\"Follow us on X (Twitter)\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://x.com/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"X (Twitter)\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\\\"}]]}]}]\\n16:[\\\"$\\\",\\\"$L2e\\\",null,{\\\"aria-label\\\":\\\"Follow us on Facebook\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.facebook.com/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"Facebook\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\\\"}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"17:[\\\"$\\\",\\\"$L2e\\\",null,{\\\"aria-label\\\":\\\"Follow us on Instagram\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.instagram.com/digital_applied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"Instagram\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z\\\"}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"18:[\\\"$\\\",\\\"$L2e\\\",null,{\\\"aria-label\\\":\\\"Follow us on LinkedIn\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.linkedin.com/company/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"LinkedIn\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\\\"}]]}]}]\\n19:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Services\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/services/agentic-seo\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/agentic-seo\\\",\\\"children\\\":\\\"SEO\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/paid-media\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/paid-media\\\",\\\"children\\\":\\\"PPC\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/content-engine\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/content-engine\\\",\\\"children\\\":\\\"Content\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/web-development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/web-development\\\",\\\"children\\\":\\\"Web Dev\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/crm-automation\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"CRM\\\"}]}]]}]]}]\\n1a:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Company\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/about\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/about\\\",\\\"children\\\":\\\"About\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/#process\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/#process\\\",\\\"children\\\":\\\"Process\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/contact\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/contact\\\",\\\"children\\\":\\\"Contact\\\"}]}]]}]]}]\\n1b:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Resources\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/blog\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/ai-tools\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/ai-tools\\\",\\\"children\\\":\\\"AI Tools\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/privacy-policy\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/privacy-policy\\\",\\\"children\\\":\\\"Privacy\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/terms-of-service\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/terms-of-service\\\",\\\"children\\\":\\\"Terms\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"1c:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Topics\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/blog/category/ai-development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/ai-development\\\",\\\"children\\\":\\\"AI Development\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/seo\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/seo\\\",\\\"children\\\":\\\"SEO\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/marketing\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/marketing\\\",\\\"children\\\":\\\"Marketing\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/ecommerce\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/ecommerce\\\",\\\"children\\\":\\\"eCommerce\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/business\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/business\\\",\\\"children\\\":\\\"Business\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/crm-automation\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/crm-automation\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/development\\\",\\\"children\\\":\\\"Development\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/tags\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/tags\\\",\\\"children\\\":\\\"All Topics →\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"1d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto mt-12 flex max-w-7xl flex-col items-start justify-between gap-3 border-white/10 border-t px-4 pt-6 font-mono text-[11px] text-white/40 uppercase tracking-widest sm:flex-row sm:items-center md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"© \\\",2026,\\\" Digital Applied\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":\\\"All systems nominal\\\"}]]}]\\n20:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white\\\",\\\"children\\\":\\\"Amp Event-Driven Orbs\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"21:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative isolate overflow-hidden bg-[#0a0a0b] pt-14 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"mask-[radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)] pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.035)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.035)_1px,transparent_1px)] bg-size-[56px_56px] [-webkit-mask-image:radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-[-5%] left-[-5%] size-[620px] blur-2xl [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.03)_40%,transparent_70%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-[20%] right-[-5%] size-[520px] blur-2xl [background:radial-gradient(circle,rgba(77,107,254,0.16),rgba(77,107,254,0.02)_40%,transparent_70%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative z-2 mx-auto max-w-[1320px] px-4 md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-9 flex flex-wrap items-center gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-ignition/30 bg-ignition/10 px-3 py-1.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm bg-ignition-2 px-3 py-1.5 font-medium font-mono text-[#0a0a0b] text-[11px] uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mr-1.5 inline-block size-[5px] animate-[ignition-pulse_1.2s_infinite] rounded-full bg-[#0a0a0b] align-[1px]\\\"}],\\\"New Release\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\\\",\\\"children\\\":[12,\\\" min read\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\\\",\\\"children\\\":[\\\"Published \\\",\\\"July 26, 2026\\\"]}]]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-[18px] max-w-[900px] text-[17px] text-white/72 leading-normal tracking-[-0.005em]\\\",\\\"children\\\":[\\\"Five releases in seven days ·\\\",\\\" \\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"the webhook URL is the credential\\\"}],\\\" \\\",\\\"· outbound auth hardened, inbound not\\\"]}],[\\\"$\\\",\\\"h1\\\",null,{\\\"className\\\":\\\"m-0 mb-6 max-w-[1100px] font-normal text-[clamp(40px,5.4vw,76px)] text-white leading-none tracking-[-0.035em]\\\",\\\"children\\\":[\\\"Amp Turned Agents Into\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"Always-On\\\"}],\\\" \\\",\\\"Services This Week\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-11 max-w-[760px] text-[18px] text-white/72 leading-[1.6]\\\",\\\"children\\\":\\\"Between July 17 and July 23, 2026, Amp’s changelog logged five releases that convert coding agents from session-bound tools into persistent services: agent-to-agent messaging, the Puck meta-agent plus a Slack integration, self-scheduling, multiplayer orbs, and event-driven orbs. The part ops teams should read twice is the trigger security model — Amp’s own docs call the webhook URL a credential.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-12 flex flex-wrap items-center gap-5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex size-11 items-center justify-center rounded-full bg-[linear-gradient(135deg,var(--color-ignition),var(--color-ignition-2))] font-medium font-mono text-[#0a0a0b] text-[14px]\\\",\\\"children\\\":\\\"DA\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-medium text-[14px] text-white leading-[1.2]\\\",\\\"children\\\":\\\"Digital Applied Team\\\"}],\\\"$L2f\\\"]}]]}],\\\"$L30\\\"]}],\\\"$L31\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"33:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"22:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative bg-white dark:bg-zinc-950\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto grid max-w-[1320px] grid-cols-1 gap-10 px-6 py-16 md:px-8 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-14 xl:grid-cols-[260px_minmax(0,1fr)_280px]\\\",\\\"children\\\":[[\\\"$\\\",\\\"aside\\\",null,{\\\"className\\\":\\\"sticky top-[84px] hidden self-start lg:block\\\",\\\"children\\\":[\\\"$\\\",\\\"$L32\\\",null,{\\\"items\\\":[{\\\"id\\\":\\\"takeaways\\\",\\\"label\\\":\\\"Key takeaways\\\",\\\"number\\\":\\\"00\\\"},{\\\"id\\\":\\\"release-week\\\",\\\"label\\\":\\\"Five releases, seven days\\\",\\\"number\\\":\\\"01\\\"},{\\\"id\\\":\\\"event-driven-orbs\\\",\\\"label\\\":\\\"How event-driven orbs work\\\",\\\"number\\\":\\\"02\\\"},{\\\"id\\\":\\\"security-model\\\",\\\"label\\\":\\\"The security model, precisely\\\",\\\"number\\\":\\\"03\\\"},{\\\"id\\\":\\\"oidc-contrast\\\",\\\"label\\\":\\\"Outbound hardened, inbound not\\\",\\\"number\\\":\\\"04\\\"},{\\\"id\\\":\\\"governance-ledger\\\",\\\"label\\\":\\\"Capability vs governance ledger\\\",\\\"number\\\":\\\"05\\\"},{\\\"id\\\":\\\"always-on-context\\\",\\\"label\\\":\\\"The always-on category\\\",\\\"number\\\":\\\"06\\\"},{\\\"id\\\":\\\"ops-playbook\\\",\\\"label\\\":\\\"Ops playbook before you wire it\\\",\\\"number\\\":\\\"07\\\"},{\\\"id\\\":\\\"conclusion\\\",\\\"label\\\":\\\"Conclusion\\\",\\\"number\\\":\\\"08\\\"},{\\\"id\\\":\\\"faq\\\",\\\"label\\\":\\\"FAQ\\\",\\\"number\\\":\\\"09\\\"}]}]}],[\\\"$\\\",\\\"article\\\",null,{\\\"className\\\":\\\"prose-none min-w-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$33\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"lede\\\",\\\"children\\\":\\\"Amp shipped event-driven orbs on July 23, 2026 — the fifth release in a seven-day run that turns its coding agents into always-on, self-scheduling services that no longer need a human, or even an open session, to start working. An orb can now wake because CI failed, because someone opened a Linear issue, because a monitor fired, or because any service on the internet sent an HTTP request to a durable webhook URL.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"That last clause is where operations and CRM teams should slow down. Amp’s own documentation says it plainly: the webhook URL is a credential. For the GitHub integration, Amp verifies the vendor’s cryptographic webhook signature before processing. For everything else — Linear, Discord, monitors, any generic HTTP sender — the documented security model is a secret, unguessable URL plus idempotency-key deduplication. If that URL leaks, whoever holds it holds the trigger.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"To be clear about sourcing: this is changelog-sourced product news. Every fact below comes from Amp’s own pages — the news posts, the Plugin API reference, and the chronicle index — cross-checked against the Releasebot changelog mirror. No independent tech press had covered this release cluster as of July 26, 2026. This guide reconstructs the week, walks the webhook mechanics, separates the two trigger security models Amp actually documents, and lays out what a business should govern before pointing real CRM events at an agent that never sleeps.\\\"}]]}],\\\"$L34\\\",\\\"$L35\\\",\\\"$L36\\\",\\\"$L37\\\",\\\"$L38\\\",\\\"$L39\\\",\\\"$L3a\\\",\\\"$L3b\\\",\\\"$L3c\\\",\\\"$L3d\\\",\\\"$L3e\\\",\\\"$L3f\\\",\\\"$L40\\\",\\\"$L41\\\",\\\"$L42\\\",\\\"$L43\\\",\\\"$L44\\\",\\\"$L45\\\",\\\"$L46\\\",\\\"$L47\\\",\\\"$L48\\\",\\\"$L49\\\",\\\"$L4a\\\",\\\"$L4b\\\",\\\"$L4c\\\",\\\"$L4d\\\",\\\"$L4e\\\",\\\"$L4f\\\",\\\"$L50\\\",\\\"$L51\\\"]}],\\\"$L52\\\"]}]}]\\n\"])</script><script>self.__next_f.push([1,\"23:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative isolate overflow-hidden bg-[#0a0a0b] py-20 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute inset-0 [-webkit-mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)] [background-image:linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] [background-size:56px_56px] [mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-1/2 left-1/2 size-[900px] -translate-x-1/2 -translate-y-1/2 blur-[30px] [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.04)_30%,transparent_65%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative z-[2] mx-auto grid max-w-[1320px] items-center gap-14 px-4 md:px-8 lg:grid-cols-[1.3fr_1fr]\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-4.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"h-px w-5 bg-ignition\\\"}],\\\"Wire events to agents, safely\\\"]}],[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mb-4.5 font-light text-[clamp(30px,3.8vw,50px)] leading-[1.04] tracking-[-0.03em]\\\",\\\"children\\\":[\\\"Always-on agents only pay off when the\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"bg-clip-text font-normal font-serif text-transparent italic\\\",\\\"style\\\":{\\\"backgroundImage\\\":\\\"linear-gradient(180deg, #fff 40%, var(--color-ignition-2) 80%, var(--color-ignition) 100%)\\\"},\\\"children\\\":\\\"governance\\\"}],\\\" \\\",\\\"ships with them.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-7 max-w-[520px] text-[16px] text-white/72 leading-[1.6]\\\",\\\"children\\\":\\\"Our team designs event-driven agent pipelines with the guardrails built in — budgets, audit trails, credential policy, and approval gates — so always-on automation works for your ops team instead of surprising it.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-6 flex flex-wrap gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"group relative inline-flex h-[52px] items-center justify-center gap-2 overflow-hidden rounded-lg bg-[#0a0a0b] px-7 font-medium text-[15px] text-white shadow-[0_0_0_1px_#0a0a0b,0_10px_30px_-10px_rgba(255,107,26,0.4)] transition-transform hover:-translate-y-0.5\\\",\\\"href\\\":\\\"/get-started\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"relative z-[1]\\\",\\\"children\\\":\\\"Get started\\\"}],[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":[[\\\"path\\\",{\\\"d\\\":\\\"M7 7h10v10\\\",\\\"key\\\":\\\"1tivn9\\\"}],[\\\"path\\\",{\\\"d\\\":\\\"M7 17 17 7\\\",\\\"key\\\":\\\"1vkiza\\\"}]],\\\"className\\\":\\\"lucide-arrow-up-right relative z-[1] size-4 transition-transform group-hover:translate-x-0.5\\\"}]]}],[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"inline-flex h-[52px] items-center justify-center gap-2 rounded-lg border border-white/15 bg-white/5 px-7 font-medium text-[15px] text-white transition-colors hover:border-white/30 hover:bg-white/10\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"Explore CRM automation\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-wrap gap-x-7 gap-y-2 font-mono text-[11px] text-white/55 uppercase tracking-[0.1em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",\\\"0\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Free consultation\\\"]}],[\\\"$\\\",\\\"span\\\",\\\"1\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Expert guidance\\\"]}],[\\\"$\\\",\\\"span\\\",\\\"2\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Tailored solutions\\\"]}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.04] p-7\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"18px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],\\\"$L54\\\",\\\"$L55\\\",\\\"$L56\\\"]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"24:[\\\"$\\\",\\\"$L57\\\",null,{\\\"eyebrow\\\":\\\"FAQ · Amp always-on agents\\\",\\\"id\\\":\\\"faq\\\",\\\"items\\\":[{\\\"question\\\":\\\"What exactly did Amp ship between July 17 and 23, 2026?\\\",\\\"answer\\\":\\\"Five releases in a seven-day window, per Amp’s own changelog: agent-to-agent messaging on July 17 (agents spawn, message, and exchange files with other agents), the Puck meta-agent plus a Slack integration on July 20, self-scheduling on July 21 (agents set their own schedules and re-wake with full prior context), multiplayer orbs on July 22 (workspace members share live control of a running orb), and event-driven orbs on July 23 (orbs wake in response to external HTTP events). Together they convert Amp’s agents from session-bound tools into persistent services. All of this is documented on ampcode.com’s news pages and chronicle index; no independent tech press had covered the cluster as of July 26, 2026.\\\"},{\\\"question\\\":\\\"What is an Amp orb?\\\",\\\"answer\\\":\\\"An orb is Amp’s term for an ephemeral remote VM — in Amp’s words, machines where agents can run without supervision. When you create a new thread you get a fresh orb containing your code, plugins, and the tools the agent needs. Orbs were introduced on June 30, 2026 with a base spec of 32GB RAM and 16 CPU cores, billed per minute with automatic sleep when idle; configurable CPU and memory sizing followed on July 3. By the multiplayer release, Amp was describing the orb as the platform’s de facto unit of work. Note that Amp is an independent company (Amp Frontier Corporation, since December 2025), no longer a Sourcegraph internal tool.\\\"},{\\\"question\\\":\\\"How do event-driven orbs work technically?\\\",\\\"answer\\\":\\\"Each webhook is a project-specific TypeScript plugin registered via the Plugin API’s createWebhook() call, which takes a key of 1 to 128 characters, an optional headers allowlist, and a handler function, and returns a capability URL. When an event arrives, the handler receives the raw body, lowercased headers, an ISO-8601 timestamp, and an id field used as an idempotency key. Delivery is at-least-once, so handlers must tolerate duplicates. Handlers run against a hard 30-second deadline enforced by an AbortSignal, and can append to an existing thread, spawn a new orb thread in any of four execution modes, hold durable state, or call external APIs — with spawned work placed locally, in a cloud orb, or on a named runner machine.\\\"},{\\\"question\\\":\\\"Are Amp’s webhook triggers cryptographically verified?\\\",\\\"answer\\\":\\\"Only the GitHub integration is documented that way. For GitHub events, Amp verifies the vendor’s webhook signature and starts the orb thread with trusted repository, event, issue, and actor metadata, while treating the issue body itself as untrusted input rather than agent instructions — an explicit prompt-injection mitigation. For all other senders — Linear, Discord, monitors, generic HTTP — the documented security model is URL secrecy plus idempotency-key deduplication: the webhook URL itself is the credential, with no documented expiry or scoping and manual removal when no longer needed. Amp’s docs say this directly. Treat non-GitHub webhook URLs exactly as you would production API keys.\\\"},{\\\"question\\\":\\\"Does Amp limit how often a self-scheduled agent can wake itself?\\\",\\\"answer\\\":\\\"No cap, rate limit, or budget guardrail is documented on the self-scheduling release page — an agent can set its own schedule and re-wake itself with its saved prompt and full prior context. To be precise: that is an absence in the published documentation, not confirmation that no internal limits exist; Amp may enforce controls it has not written down. The only published spend envelope is the subscription allotment — Megawatt’s 750 orb-hours and $20 of included usage, or Gigawatt’s 1,000 hours and $200 — plus whatever credits or linked subscription sit beyond it. Until Amp documents a wake-rate control, treat your subscription tier as the effective ceiling and monitor burn rate.\\\"},{\\\"question\\\":\\\"What does Amp cost as of late July 2026?\\\",\\\"answer\\\":\\\"Amp launched a subscription beta on July 18, 2026 alongside its original pay-as-you-go API-rate pricing. Megawatt costs $20/month and includes 750 hours of small orbs plus $20 of agent usage, limited to low and medium execution modes. Gigawatt costs $200/month with 1,000 hours of large orbs, $200 of included usage, and access to all modes including high and ultra. Beyond the included allotment, users link a ChatGPT subscription or add paid credits. Orb compute itself is billed per minute, and the base-tier rate quoted at the June 30 launch predates the July 3 configurable-sizing release, so verify current rates on ampcode.com before budgeting.\\\"},{\\\"question\\\":\\\"Should we connect CRM or business events to always-on agents yet?\\\",\\\"answer\\\":\\\"Selectively, with governance in place first. The capability is real and the ops use cases — lead-created triage, deal-stage follow-ups, ticket enrichment — map naturally onto event-driven triggers. But an agent with no session boundary and no human in the loop makes three things load-bearing: a spend ceiling (set the subscription tier deliberately and alert on burn rate), an audit trail (log which event woke which agent and what it did, built at the handler boundary), and credential hygiene (store webhook URLs in a secrets manager, rotate on staff changes, remove retired URLs). Gate irreversible actions — customer-facing messages, CRM writes — behind human approval until you have operational history. Start with low-risk, reversible workflows and expand as the trail proves out.\\\"}],\\\"title\\\":\\\"$L58\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"25:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"bg-zinc-100 py-24 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto max-w-[1320px] px-4 md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-10\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"h-px w-5 bg-ignition\\\"}],\\\"Related dispatches\\\"]}],[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 font-normal text-[clamp(30px,3.6vw,44px)] text-zinc-950 leading-[1.05] tracking-[-0.025em] dark:text-white\\\",\\\"children\\\":[\\\"Continue exploring\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif italic\\\",\\\"children\\\":\\\"agentic automation.\\\"}]]}],\\\"$undefined\\\"]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"grid gap-4 md:grid-cols-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",\\\"agent-identity-credentials-non-human-access-2026-playbook\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/agent-identity-credentials-non-human-access-2026-playbook\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 26, 2026\\\",\\\" · \\\",14,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$23:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}],[\\\"$\\\",\\\"$L12\\\",\\\"build-whatsapp-lead-capture-crm-agent-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/build-whatsapp-lead-capture-crm-agent-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Build a WhatsApp Lead-Capture Agent for Your CRM Stack\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Build a WhatsApp lead-capture agent on Meta's Cloud API: inbound webhook, in-chat qualification with Flows, and a routed CRM record, with no BSP required.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 15, 2026\\\",\\\" · \\\",12,\\\" min\\\"]}],\\\"$L59\\\"]}]]}],\\\"$L5a\\\",\\\"$L5b\\\",\\\"$L5c\\\",\\\"$L5d\\\"]}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"26:[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/10xegheq_2_g2.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]\\n27:[\\\"$\\\",\\\"$L5e\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$2c\\\",null,{\\\"name\\\":\\\"Next.MetadataOutlet\\\",\\\"children\\\":\\\"$@5f\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"81:I[338137,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogShareButtons\\\"]\\n82:I[372967,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogNewsletterForm\\\"]\\n2f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-0.5 font-mono text-[10.5px] text-white/55 uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Senior strategists · Published Jul 26, 2026\\\"}]\\n30:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-wrap gap-x-6 gap-y-2 border-white/10 border-l pl-6 font-mono text-[11px] text-white/50 uppercase tracking-widest max-sm:gap-x-4 max-sm:border-l-0 max-sm:pl-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"Published\\\",{\\\"children\\\":[\\\"Published\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"Jul 26, 2026\\\"}]]}],[\\\"$\\\",\\\"div\\\",\\\"Read time\\\",{\\\"children\\\":[\\\"Read time\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"12 min\\\"}]]}],[\\\"$\\\",\\\"div\\\",\\\"Sources\\\",{\\\"children\\\":[\\\"Sources\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"Amp changelog + Plugin API docs\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"31:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-14 grid grid-cols-2 gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 md:grid-cols-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"Releases in one window\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Releases in one window\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":\\\"5\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"Jul 17–23, 2026\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 inline-flex items-center gap-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"children\\\":\\\"▼\\\"}],\\\"7-day span\\\"]}],null]}],[\\\"$\\\",\\\"div\\\",\\\"Webhook handler deadline\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Webhook handler deadline\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"30\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"s\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"hard AbortSignal cutoff\\\"}],null,null]}],[\\\"$\\\",\\\"div\\\",\\\"OIDC → webhooks gap\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"OIDC → webhooks gap\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"9\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"days\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"Jul 14 → Jul 23\\\"}],null,null]}],[\\\"$\\\",\\\"div\\\",\\\"Delivery guarantee\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Delivery guarantee\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":\\\"≥1×\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"at-least-once, dedup by id\\\"}],null,null]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"34:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-12 scroll-mt-[90px] border-zinc-950 border-t-2 pt-7 dark:border-white\\\",\\\"id\\\":\\\"takeaways\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-6 flex items-center gap-2.5 font-mono text-[11px] text-zinc-950 uppercase tracking-[0.14em] dark:text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition shadow-[0_0_8px_var(--color-ignition)]\\\"}],\\\"Key takeaways\\\"]}],[\\\"$\\\",\\\"ol\\\",null,{\\\"className\\\":\\\"m-0 list-none p-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"Five releases in seven days made agents persistent.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"01\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Five releases in seven days made agents persistent.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Agent-to-agent messaging (Jul 17), the Puck meta-agent plus Slack (Jul 20), self-scheduling (Jul 21), multiplayer orbs (Jul 22), and event-driven orbs (Jul 23) — the tightest capability run we could find in Amp’s public changelog.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"The webhook URL is the credential — Amp says so itself.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"02\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"The webhook URL is the credential — Amp says so itself.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Event-driven orbs expose durable capability URLs. Amp’s docs instruct users to keep the URL private and remove it when no longer needed. No expiry, scoping, or rotation mechanism is shown for the URL itself.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"Signature verification is GitHub-only, not blanket.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"03\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Signature verification is GitHub-only, not blanket.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"The event-driven-orbs page documents cryptographic signature verification for the GitHub integration specifically. The general createWebhook() reference documents URL secrecy plus idempotency-key dedup for all other senders.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"Outbound auth got hardened nine days before inbound shipped.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"04\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Outbound auth got hardened nine days before inbound shipped.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"On July 14, Amp replaced injected static secrets with OIDC workload identity — short-lived, tightly scoped tokens — for orbs calling other services. The inbound trigger surface that followed on July 23 got a bearer URL instead.\\\"}]]}]]}],\\\"$L60\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"35:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"release-week\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"01\\\",\\\" — \\\",\\\"What Shipped\\\"]}],[\\\"Five releases,\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"seven\\\"}],\\\" \\\",\\\"days — the week agents stopped ending.\\\"]]}]\\n61:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30036:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$61\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Some quick vocabulary first. An “orb” is Amp’s name for an ephemeral remote VM — in the company’s words,\\\",\\\" \\\",[\\\"$\\\",\\\"a\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"https://ampcode.com/news/agents-in-orbs\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":\\\"“machines where agents can run without supervision”\\\"}],\\\", introduced June 30, 2026 with a 32GB RAM / 16 vCPU base spec and automatic sleep when idle. And Amp itself is no longer a Sourcegraph internal tool: it has operated as an independent company, Amp Frontier Corporation, since December 2025, with the CLI renamed from the Sourcegraph npm scope in May 2026.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Onto that orb substrate, Amp’s changelog landed five releases between July 17 and July 23 — a seven-day window that is, reading its own\\\",\\\" \\\",[\\\"$\\\",\\\"a\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"https://ampcode.com/chronicle\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":\\\"chronicle index\\\"}],\\\", the tightest capability run we could find in the product’s public history. Read them in order and the direction is unmistakable: each one removes another reason an agent would need a human present.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"37:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Jul 17\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"From Agent to Agent\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"agent-to-agent messaging\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Agents can spawn other agents, message them, and exchange files across Amp threads. Peers can run in orbs, on the local machine, or on any other machine running amp — including delegating a bug as a ‘side quest’ to a spawned orb thread.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"ampcode.com/news/from-agent-to-agent\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Jul 20\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Puck + Slack\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"meta-agent · channel trigger\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Puck is a persistent meta-agent on ampcode.com that spawns and coordinates other agents, investigates issues, and archives work — Amp calls it an experiment. The same day, Amp landed in Slack: @-mention it in a channel to trigger bug fixes, feature spikes, and codebase Q\\u0026A.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"ampcode.com/news/meet-puck\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",\\\"$L62\\\",\\\"$L63\\\",\\\"$L64\\\"]}],\\\"$L65\\\",\\\"$L66\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"67:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30038:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$67\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Individually, each release is incremental. Composed, they change the product category. Amp states outright that self-scheduling “works great with Slack, Puck, and spawning other agents” — and in the multiplayer announcement it frames the orb as the platform’s de facto unit of work, where “the lines between description, solution, code, and computation are all blurring and merging into the orb.” A scheduled agent that can message peer agents, spawn new orbs, post to Slack, and now be woken by external events is not a coding assistant with extra features. It is a long-running service whose deploys happen to be conversations.\\\"}]}]\\n39:[\\\"$\\\",\\\"blockquote\\\",null,{\\\"className\\\":\\\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\\\",\\\"children\\\":[\\\"\\\\\\\"Agents can now set their own schedules, wake themselves up, and keep working.\\\\\\\"\\\",[\\\"$\\\",\\\"cite\\\",null,{\\\"className\\\":\\\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\\\",\\\"children\\\":\\\"— Amp product docs, Right on Schedule (July 21, 2026)\\\"}]]}]\\n3a:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"event-driven-orbs\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"02\\\",\\\" — \\\",\\\"The Mechanics\\\"]}],[\\\"How event-driven orbs\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"actually\\\"}],\\\" \\\",\\\"work.\\\"]]}]\\n68:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_l\"])</script><script>self.__next_f.push([1,\"i]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$68\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The trigger surface is not a generic platform-wide endpoint. Each webhook is generated as a project-specific TypeScript plugin, registered through the Amp Plugin API’s \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"createWebhook()\\\"}],\\\" \\\",\\\"call. The registration takes a key of 1–128 characters, an optional headers allowlist, and a handler function — and returns a URL the docs label a “capability URL.” That handler is where the always-on behavior lives: it can append the event to an existing thread, spawn a brand-new orb thread, hold durable state across invocations, or call external APIs.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Three operational properties matter for anyone who has run webhook infrastructure before. First, delivery is\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"at least once, not exactly once\\\"}],\\\" — the docs say so explicitly, and the event object carries an \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"id\\\"}],\\\" field that exists specifically as an idempotency key for deduplication. Second, handlers run against a\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"hard 30-second processing deadline\\\"}],\\\", enforced by an\\\",\\\" \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"AbortSignal\\\"}],\\\" that Amp fires at the cutoff. Third, the event payload arrives with the raw body, lowercased headers, and an ISO-8601 received-at timestamp — the handler decides what becomes agent work. If you want the general engineering discipline behind that first property, our reference on\\\",\\\" \\\",[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/webhook-reliability-idempotency-retries-engineering-reference-2026\\\",\\\"children\\\":\\\"building webhook handlers around at-least-once delivery\\\"}],\\\" \\\",\\\"covers the dedup, retry, and ordering patterns that apply here verbatim — Amp’s \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"WebhookEvent.id\\\"}],\\\" is a textbook live example.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"3c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Handler deadline\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Hard processing cutoff\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"30\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"s\\\"}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"WebhookHandlerContext carries an AbortSignal that Amp aborts at a 30-second deadline. Long work belongs in a spawned orb thread, not in the handler itself — the handler is a router, not a worker.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"AbortSignal-enforced\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Delivery guarantee\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"At-least-once delivery\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"≥1\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"×\\\"}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Events are delivered at least once, never exactly once. The WebhookEvent.id field is documented explicitly as an idempotency key — handler code that is not duplicate-tolerant will eventually double-fire agent work.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"dedup via WebhookEvent.id\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[\\\"$L69\\\",\\\"$L6a\\\"]}],\\\"$L6b\\\",\\\"$L6c\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"6d:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-3003d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$6d\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The placement options are worth a second look. A handler that spawns work chooses one of Amp’s four current execution modes — low, medium, high, or ultra, the naming Amp settled on July 9 — and one of three executor placements: \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"local\\\"}],\\\", \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"orb\\\"}],\\\", or a named runner machine. In other words, an inbound HTTP request can start compute on a cloud VM, on the registering developer’s laptop, or on any named machine in the fleet. That flexibility is genuinely useful, and it is also exactly why the question of who can send that request deserves its own section.\\\"]}]}]\\n3e:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"security-model\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"03\\\",\\\" — \\\",\\\"Trigger Security\\\"]}],[\\\"Two security models, one word:\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"precisely\\\"}],\\\" \\\",\\\"what is verified.\\\"]]}]\\n6e:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$6e\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Here is the distinction that a quick read of the announcement will miss, and it is the security point of this entire release. Amp documents \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"two different trust models\\\"}],\\\" for inbound events, and they are not equivalent.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"For GitHub, verification is cryptographic.\\\"}],\\\" The event-driven-orbs page states that Amp verifies GitHub’s webhook signature and then starts a fresh orb thread with trusted repository, event, issue, and actor metadata. The design even separates trust layers deliberately: the verified metadata comes from Amp’s verification layer, while the issue body itself “remains untrusted input, not agent instructions” — an explicit mitigation against the classic malicious-GitHub-issue prompt injection.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"For every other sender, the URL itself is the secret.\\\"}],\\\" \\\",\\\"The general \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"createWebhook()\\\"}],\\\" reference — the mechanism behind Linear, Discord, monitors, and arbitrary HTTP senders — documents URL secrecy plus idempotency-key deduplication as the security model. It does not document per-request signature verification across all event sources. That means for the general case, possession of the URL is authorization: there is no documented expiry on the URL, no documented scoping of what a given sender may trigger, and rotation is manual — you “tell Amp to remove it when you no longer need it.”\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"40:[\\\"$\\\",\\\"blockquote\\\",null,{\\\"className\\\":\\\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\\\",\\\"children\\\":[\\\"\\\\\\\"The webhook URL is a credential. Keep it private, and tell Amp to remove it when you no longer need it.\\\\\\\"\\\",[\\\"$\\\",\\\"cite\\\",null,{\\\"className\\\":\\\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\\\",\\\"children\\\":\\\"— Amp product docs, Event Driven Orbs (July 23, 2026)\\\"}]]}]\\n41:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"Why this distinction is load-bearing\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"A secret-URL-only model means\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"the URL is the credential\\\"}],\\\". It will live in the sending service’s config, in CI variables, in monitoring dashboards, possibly in logs — every place a bearer token leaks from, with none of the scanning infrastructure that watches for leaked API keys. The GitHub path shows Amp knows how to do signature verification; the general path shows it has not yet been extended to every sender. Treat any non-GitHub webhook URL exactly as you would a production API key, because functionally that is what it is.\\\"]}]]}]\\n6f:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30042:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$6f\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"None of this is unusual for a v1 webhook surface — plenty of mature platforms started with capability URLs. What makes it worth flagging on day three rather than day three hundred is what sits behind the URL: not a row in a database, but an agent that can run code, spend compute, message other agents, and act without anyone watching. The blast radius of a leaked trigger URL scales with the autonomy of the thing it triggers.\\\"}]}]\\n43:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"oidc-contrast\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"04\\\",\\\" — \\\",\\\"The Contrast\\\"]}],[\\\"Outbound got\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"OIDC\\\"}],\\\"; inbound got a secret URL.\\\"]]}]\\n70:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a\"])</script><script>self.__next_f.push([1,\".link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"44:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$70\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The sharpest way to see the gap is to read the July 23 release against one Amp shipped nine days earlier. On July 14 —\\\",\\\" \\\",[\\\"$\\\",\\\"a\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"https://ampcode.com/news/secrets-of-the-orb\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":\\\"“Secrets of the Orb”\\\"}],\\\" \\\",\\\"— Amp eliminated long-lived secrets injected into orbs for calling\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"children\\\":\\\"other\\\"}],\\\" services, replacing them with OIDC-based workload identity: short-lived tokens carrying explicit claims for workspace, project, user, thread, email, issuer, audience, subject, and expiration. Amp’s own words: “tokens are all short-lived and tightly scoped to the operations that project needs,” with zero config required from developers.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"That is a genuinely modern credential story — expiry, scoping, auditability, per-thread attribution. And it makes the inbound asymmetry impossible to unsee: the same platform that decided static bearer secrets were unacceptable for orbs calling out shipped, nine days later, a static bearer URL as the general mechanism for the outside world calling in. Outbound authentication got workload identity; inbound triggering got URL secrecy. Neither Amp’s docs nor any press coverage frames these two releases as a contrast — seeing it requires reading five changelog entries across nine days side by side — but for anyone deciding whether to wire business events into this system, it is the single most useful fact of the week.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The fair reading is directional, not damning: the July 14 release proves the team treats credential hygiene as a first-class engineering problem, which makes it reasonable to expect the inbound surface to mature the same way. Until it does, the asymmetry is yours to manage. For the wider discipline — why agents should hold their own scoped, short-lived, revocable identities rather than borrowed human credentials — see our playbook on\\\",\\\" \\\",\\\"$L71\\\",\\\"; Amp’s OIDC claims structure is close to that playbook’s recommended shape for outbound calls, which is exactly why the inbound gap stands out.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"45:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"governance-ledger\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"05\\\",\\\" — \\\",\\\"The Ledger\\\"]}],[\\\"Capability shipped vs\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"governance\\\"}],\\\" \\\",\\\"shipped, release by release.\\\"]]}]\\n72:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30046:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$72\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Nobody has laid the week’s releases side by side against what each one did — or did not — ship in terms of controls. The table below does exactly that, built entirely from each release’s own primary page. The pattern in the last two columns is the argument of this post made legible: the governance groundwork landed before the capability week, and the capability week itself shipped autonomy faster than controls.\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"47:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-7 overflow-x-auto rounded-xl border border-zinc-200 dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"table\\\",null,{\\\"className\\\":\\\"w-full min-w-[880px] border-collapse text-left text-[13px]\\\",\\\"children\\\":[[\\\"$\\\",\\\"caption\\\",null,{\\\"className\\\":\\\"sr-only\\\",\\\"children\\\":\\\"Ledger of Amp releases from July 14 to July 23, 2026, comparing the autonomous capability each release added against the identity, credential, audit, and budget controls documented alongside it.\\\"}],[\\\"$\\\",\\\"thead\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Date (2026)\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Release\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"New autonomous capability\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Identity / credential control alongside\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium font-mono text-[11px] uppercase tracking-[0.08em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Audit / budget control alongside\\\"}]]}]}],[\\\"$\\\",\\\"tbody\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"bg-zinc-100 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2 font-medium font-mono text-[10.5px] text-zinc-600 uppercase tracking-[0.1em] dark:text-zinc-400\\\",\\\"colSpan\\\":5,\\\"scope\\\":\\\"colgroup\\\",\\\"children\\\":\\\"Governance groundwork — outbound calls\\\"}]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"border-zinc-200 border-t dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Jul 14\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Secrets of the Orb\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"None — pure credential-hygiene release\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"OIDC workload identity: short-lived, tightly scoped tokens replace injected static secrets\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Token claims attribute every outbound call to a workspace, project, user, and thread\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"bg-zinc-100 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2 font-medium font-mono text-[10.5px] text-zinc-600 uppercase tracking-[0.1em] dark:text-zinc-400\\\",\\\"colSpan\\\":5,\\\"scope\\\":\\\"colgroup\\\",\\\"children\\\":\\\"The capability week — five releases in seven days (Jul 17–23)\\\"}]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"border-zinc-200 border-t dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Jul 17\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"From Agent to Agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Agents spawn, message, and exchange files with other agents — in orbs, locally, or on remote machines\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"None documented\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"None documented\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"border-zinc-200 border-t dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Jul 20\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Puck + Amp in Slack\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Persistent meta-agent coordinates other agents; @-mention in Slack triggers work from chat\\\"}],\\\"$L73\\\",\\\"$L74\\\"]}],\\\"$L75\\\",\\\"$L76\\\",\\\"$L77\\\"]}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"78:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30048:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$78\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Sources: each row’s own release page on ampcode.com plus the Plugin API reference, retrieved July 26, 2026 — with one exception: the Jul 20 Slack detail is chronicle-summary-level only, because its own release page did not resolve when we fetched it. “None documented” means exactly that — an absence in the published pages, not a confirmed absence of internal controls. Amp may well enforce limits it has not written down. But governance you cannot read is governance you cannot audit against, and for an ops team doing vendor due diligence, the documented surface is the surface.\\\"}]}]\\n49:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"always-on-context\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"06\\\",\\\" — \\\",\\\"The Category\\\"]}],[\\\"The always-on agent category is\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"consolidating\\\"}],\\\" \\\",\\\"fast.\\\"]]}]\\n79:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"4a:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$79\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Amp is not inventing this category alone. Cursor got there first on the scheduled side — our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/cursor-automations-always-on-agentic-coding-agents-guide\\\",\\\"children\\\":\\\"guide to Cursor’s always-on automation model\\\"}],\\\" \\\",\\\"covers its Automations architecture in full. What Amp’s week adds to the category is the inbound half: not just agents that run on a schedule, but agents any external system can wake on demand, plus the agent-to-agent fabric for what happens after they wake.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The same week, the pendulum swung the other way elsewhere: Anthropic’s changelog arc added\\\",\\\" \\\",[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/claude-code-subagent-depth-limits-budget-caps-2026\\\",\\\"children\\\":\\\"hard subagent depth limits and budget caps to Claude Code\\\"}],\\\" \\\",\\\"— one vendor adding brakes in the same seven days another added throttle. That divergence, more than any single feature, is the trend line: the vendors racing to make agents persistent are now differentiating on how much governance ships in the box.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Our forward read: the capability side of always-on agents is close to settled — schedules, webhooks, chat triggers, and agent-to-agent handoff will be table stakes across every serious agent platform within a quarter or two. The unsettled axis is operational trust. Amp’s own July 14 release shows the direction mature platforms will take — short-lived, scoped, claims-carrying identity — and the reasonable expectation is that inbound triggers across the industry converge on signed or identity-bound events the way outbound calls already have. Teams adopting now should plan for that convergence rather than wait for it: the governance you wrap around a v1 trigger surface today is the same governance you will want when the platform hardens underneath it.\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"4b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"Budget surface, as documented\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"The only published spend envelope around all this autonomy is Amp’s subscription beta (July 18): \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Megawatt at $20/month\\\"}],\\\" — 750 hours of small orbs, $20 of included agent usage, low and medium modes only — and \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Gigawatt at $200/month\\\"}],\\\" — 1,000 hours of large orbs, $200 of included usage, all modes. Beyond the allotment, usage links to a ChatGPT subscription or paid credits, and pay-as-you-go API-rate pricing remains available. With\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"no documented wake-rate cap\\\"}],\\\" \\\",\\\"on self-scheduling, that allotment is the only hard ceiling you can currently point to in writing.\\\"]}]]}]\\n4c:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"ops-playbook\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"07\\\",\\\" — \\\",\\\"Ops Playbook\\\"]}],[\\\"Before you wire\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"business events\\\"}],\\\" \\\",\\\"into an agent that never sleeps.\\\"]]}]\\n7a:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-3004d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$7a\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The reason this post sits in our CRM and automation category rather than developer tooling: the obvious next move for any ops team reading Amp’s changelog is to point business events at it. New lead created, deal stage changed, support ticket opened, payment failed — these are exactly the “any service capable of sending an HTTP request” events the release invites. And an agent with no session boundary and no human in the loop inverts the operational assumptions most teams inherit from their existing automation stack. Three things become load-bearing that used to be nice-to-have: budget, audit trail, and credential hygiene.\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"4e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Budget\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Set the spend ceiling before the trigger\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"A session-bound agent stops spending when you close the laptop; a self-scheduling one does not. With no documented wake-rate cap, your subscription allotment is the only visible ceiling — size it deliberately, and alert on burn rate, not just balance.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Cap first, wire second\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"16px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Audit trail\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-white\\\",\\\"children\\\":\\\"Log which event woke which agent, and why\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-white/72\\\",\\\"children\\\":\\\"At-least-once delivery plus agents that spawn agents means reconstructing an incident requires a trail: event id, source, handler decision, threads spawned, actions taken. Build it at the handler boundary — it is the one chokepoint every wake passes through.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\\\",\\\"children\\\":\\\"Design the trail now\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[\\\"$L7b\\\",\\\"$L7c\\\"]}],\\\"$L7d\\\",\\\"$L7e\\\"]}],\\\"$L7f\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"80:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-3004f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$80\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The audit-trail point deserves the most emphasis, because it is the one you cannot retrofit after an incident. Our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agent-audit-trail-design-7-best-practices-2026\\\",\\\"children\\\":\\\"guide to designing audit trails for agents that act without a human present\\\"}],\\\" \\\",\\\"walks the full pattern; the short version is that Amp’s own primitives — the event id, the received-at timestamp, the trusted metadata on GitHub events — give you the raw inputs, but the correlation layer is yours to build. This is also, candidly, the work we do for clients: our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"CRM automation engagements\\\"}],\\\" \\\",\\\"increasingly consist of wiring event-driven agents into pipelines with exactly these guardrails in place from day one, and our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/services/ai-transformation\\\",\\\"children\\\":\\\"AI transformation practice\\\"}],\\\" \\\",\\\"handles the governance side — budgets, approval gates, and credential policy for non-human actors — before the first production event fires.\\\"]}]}]\\n50:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"conclusion\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"08\\\",\\\" — \\\",\\\"Conclusion\\\"]}],[\\\"The week the session boundary\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"dissolved\\\"}],\\\".\\\"]]}]\\n\"])</script><script>self.__next_f.push([1,\"51:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-10 overflow-hidden rounded-2xl bg-[#0a0a0b] p-8 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute right-[-20%] bottom-[-30%] size-[400px] [background:radial-gradient(circle,rgba(255,107,26,0.12),transparent_60%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative mb-3.5 flex items-center gap-2.5 font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition shadow-[0_0_6px_var(--color-ignition)]\\\"}],\\\"Changelog-sourced, July 26, 2026\\\"]}],[\\\"$\\\",\\\"h3\\\",null,{\\\"className\\\":\\\"relative m-0 mb-4 font-medium text-[22px] text-white leading-[1.2] tracking-[-0.015em]\\\",\\\"children\\\":\\\"Agents became services this week. Governance is now your job.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative space-y-3 text-[15.5px] text-white/80 leading-[1.65]\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Amp’s five-release week is the clearest single-vendor statement yet that coding agents are becoming\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"persistent services\\\"}],\\\" \\\",\\\"— schedulable, triggerable, multiplayer, and able to delegate to each other. All of it is documented only in Amp’s own changelog and API reference; no independent press had touched it as of this writing. That does not make it less real — it makes reading the primary pages carefully more important.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The precise finding worth carrying: trigger security is split. GitHub events get cryptographic signature verification and a deliberate trusted-metadata / untrusted-content separation; everything else gets a secret capability URL that Amp itself calls a credential. Nine days before shipping that inbound surface, Amp replaced static outbound secrets with short-lived OIDC workload identity — proof the team knows what mature credential design looks like, and the standard its own inbound path should be held to.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"For ops and CRM teams, the move is not to wait. The capability is genuinely useful today, and the gaps are all manageable with discipline you control: a deliberate spend ceiling, an audit trail built at the handler boundary, webhook URLs treated as production keys, and explicit approval gates on irreversible actions. Agents that never sleep are here. The teams that win with them will be the ones that governed them before the first event fired.\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"52:[\\\"$\\\",\\\"aside\\\",null,{\\\"className\\\":\\\"sticky top-[84px] hidden flex-col gap-5 self-start xl:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Share dispatch\\\"}],[\\\"$\\\",\\\"$L81\\\",null,{\\\"shareTitle\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\",\\\"shareUrl\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative overflow-hidden rounded-2xl bg-[#0a0a0b] p-5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"14px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AI Insights\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-2.5 font-medium text-[15px] text-white leading-[1.3] tracking-[-0.01em]\\\",\\\"children\\\":\\\"Deep dives on AI marketing and development.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-3.5 text-[12.5px] text-white/65 leading-normal\\\",\\\"children\\\":\\\"Agentic development, frontier AI models, and data-driven strategies. No recycled AI takes.\\\"}],[\\\"$\\\",\\\"$L82\\\",null,{\\\"source\\\":\\\"$undefined\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Release window\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-2.5 font-medium text-[15px] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"July 17–23, 2026\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-1 font-mono text-[12px] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"ampcode.com/chronicle\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[12px] text-zinc-500 leading-normal\\\",\\\"children\\\":\\\"Every claim in this post traces to Amp’s own changelog and Plugin API reference — no independent press coverage of this release cluster existed as of July 26, 2026. Verify current behavior against the primary pages before wiring production events.\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"54:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[11px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"What we work on\\\"}]\\n55:[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-3.5 font-medium text-[19px] text-white tracking-[-0.01em]\\\",\\\"children\\\":\\\"Event-driven agent engagements\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"56:[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"m-0 list-none p-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"0\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"CRM event → agent pipelines with approval gates\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"1\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Audit-trail design for non-human actors\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"2\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Webhook credential policy \\u0026 rotation runbooks\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"3\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Budget ceilings \\u0026 burn-rate alerting for agent fleets\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"4\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Vendor due diligence on agent platform security\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"58:[\\\"Always-on agents,\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif italic\\\",\\\"children\\\":\\\"answered honestly.\\\"}]]\\n59:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$23:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5a:[\\\"$\\\",\\\"$L12\\\",\\\"zoho-agentic-crm-automation-2026-smb-playbook\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/zoho-agentic-crm-automation-2026-smb-playbook\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Zoho Agentic CRM Automation: The 2026 SMB Playbook\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Zoho CRM layers workflow rules, Blueprint, CommandCenter, and Zia agents into a four-tier automation stack. An SMB playbook for agentic lead routing.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"June 22, 2026\\\",\\\" · \\\",12,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$23:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5b:[\\\"$\\\",\\\"$L12\\\",\\\"marketing-automation-ai-agents-make-zapier-n8n-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/marketing-automation-ai-agents-make-zapier-n8n-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Marketing Automation AI Agents: Make vs Zapier vs n8n\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Comparison of marketing automation platforms with AI agent capabilities in 2026. Make, Zapier, and n8n evaluated for agent workflows, pricing, and scale.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"April 1, 2026\\\",\\\" · \\\",17,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$23:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5c:[\\\"$\\\",\\\"$L12\\\",\\\"perplexity-computer-multi-model-ai-agent-guide\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/perplexity-computer-multi-model-ai-agent-guide\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Perplexity Computer: Multi-Model AI Agent Guide\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Perplexity Computer orchestrates 19 AI models as specialized sub-agents for autonomous web research, file management, and workflow execution. Pricing and setup.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"February 27, 2026\\\",\\\" · \\\",13,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$23:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5d:[\\\"$\\\",\\\"$L12\\\",\\\"basis-ai-100m-agentic-accounting-tax-audit-guide\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/basis-ai-100m-agentic-accounting-tax-audit-guide\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Basis AI $100M: Agentic Accounting Tax and Audit\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Basis AI raises $100M Series B at $1.15B valuation for agentic accounting. How AI agents transform tax preparation, audit workflows, and financial compliance.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"March 1, 2026\\\",\\\" · \\\",11,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L53\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$23:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"60:[\\\"$\\\",\\\"li\\\",\\\"No documented budget or wake-rate cap on the new autonomy.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"05\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"No documented budget or wake-rate cap on the new autonomy.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Amp’s self-scheduling page documents no cap on how often an agent can re-wake itself. That is an absence in the documentation, not proof of unlimited design — but it makes your subscription allotment the only visible ceiling.\\\"}]]}]]}]\\n62:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Jul 21\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Right on Schedule\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"self-scheduling agents\\\"}]}]]}]\\n63:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n64:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Agents set their own schedules, wake themselves up, and resume with their saved prompt and full prior context. Amp’s examples: daily slowest-query digs with Slack notification, feature-flag cleanup reminders, and hourly error triage that spawns fix threads.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"ampcode.com/news/schedule\\\"}]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"65:[\\\"$\\\",\\\"div\\\",\\\"3\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Jul 22\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Multiplayer\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"shared orb control\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Invite workspace members to share control of a running orb: message the agent directly, view its portal, see file changes, and use a shared terminal. Sessions are time-boxed via a TTL field on thread creation; the default duration is undisclosed.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"ampcode.com/news/multiplayer\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"66:[\\\"$\\\",\\\"div\\\",\\\"4\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"16px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-ignition-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Jul 23\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-white\\\",\\\"children\\\":\\\"Event-Driven Orbs\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\\\",\\\"children\\\":\\\"durable webhook triggers\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-white/72\\\",\\\"children\\\":\\\"Orbs receive requests and react to outside events — a CI failure on GitHub, a new Linear issue, a monitor alert, a Discord event, or any service capable of sending an HTTP request. The release that makes everything above triggerable from outside.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"ampcode.com/news/event-driven-orbs\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"69:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Registration\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"createWebhook() key cap\\\"}]]}]\\n6a:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"128\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"chars\\\"}]]}]\\n6b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n6c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Each webhook registers with a 1–128 character key, an optional headers allowlist, and a handler. Spawned work is placed via executor type: the local machine, a fresh cloud orb, or a specific named runner.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"project-scoped plugin\\\"}]}]]}]\\n71:[\\\"$\\\",\\\"$L2e\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agent-identity-credentials-non-human-access-2026-playbook\\\",\\\"children\\\":\\\"how non-human agent identity and credentials should be scoped\\\"}]\\n73:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"None documented\\\"}]\\n74:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"None documented\\\"}]\\n75:[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"border-zinc-200 border-t dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Jul 21\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Right on Schedule\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Agents set their own schedules and re-wake themselves with full prior context\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"None documented\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"No wake-frequency cap or budget guardrail documented on the release page\\\"}]]}]\\n76:[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"border-zinc-200 border-t dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Jul 22\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Multiplayer\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Workspace members share live control of a running orb — messages, portal, file changes, shared terminal\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Workspace-membership access; sessions time-boxed via a TTL field (default undisclosed)\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Shared portal and terminal add real-time visibility for teammates\\\"}]]}]\\n77:[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"border-zinc-200 border-t dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 font-medium text-[12px] text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Jul 23\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Event-Driven Orbs\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Any HTTP-capable service can wake an orb via a durable webhook\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"GitHub: cryptographic signature verification. Al\"])</script><script>self.__next_f.push([1,\"l other senders: secret capability URL, manual removal\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-3 py-2.5 text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":\\\"Idempotency-key dedup; 30-second handler deadline\\\"}]]}]\\n7b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Credential hygiene\\\"]}]\\n7c:[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Treat every webhook URL as a production API key\\\"}]\\n7d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n7e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"For non-GitHub senders the URL is the credential: no expiry, no scoping, manual removal. Store it in a secrets manager, never in shared configs or dashboards, rotate on staff changes, and remove URLs the moment a workflow is retired.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Rotate + scope\\\"}]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"7f:[\\\"$\\\",\\\"div\\\",\\\"3\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Human-in-the-loop\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Decide where a person signs off\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"No session boundary means nobody is implicitly watching. Decide explicitly which actions an event-woken agent may complete alone — and which (customer-facing messages, CRM writes, anything irreversible) queue for approval instead.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Gate the blast radius\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"2a:[[\\\"$\\\",\\\"meta\\\",\\\"0\\\",{\\\"charSet\\\":\\\"utf-8\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"1\\\",{\\\"name\\\":\\\"viewport\\\",\\\"content\\\":\\\"width=device-width, initial-scale=1, maximum-scale=5\\\"}]]\\n\"])</script><script>self.__next_f.push([1,\"2d:[[\\\"$\\\",\\\"title\\\",\\\"0\\\",{\\\"children\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"1\\\",{\\\"name\\\":\\\"description\\\",\\\"content\\\":\\\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"2\\\",{\\\"name\\\":\\\"author\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"3\\\",{\\\"name\\\":\\\"keywords\\\",\\\"content\\\":\\\"Amp event-driven orbs,self-scheduling agents,agent webhook trigger security,always-on AI agents,Amp orbs OIDC workload identity,agent as a service 2026,durable agent triggers\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"4\\\",{\\\"name\\\":\\\"creator\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"5\\\",{\\\"name\\\":\\\"publisher\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"6\\\",{\\\"name\\\":\\\"robots\\\",\\\"content\\\":\\\"index, follow\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"7\\\",{\\\"name\\\":\\\"googlebot\\\",\\\"content\\\":\\\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\\\"}],[\\\"$\\\",\\\"link\\\",\\\"8\\\",{\\\"rel\\\":\\\"canonical\\\",\\\"href\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"9\\\",{\\\"property\\\":\\\"og:title\\\",\\\"content\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"10\\\",{\\\"property\\\":\\\"og:description\\\",\\\"content\\\":\\\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"11\\\",{\\\"property\\\":\\\"og:url\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"12\\\",{\\\"property\\\":\\\"og:image\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026/article-image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"13\\\",{\\\"property\\\":\\\"og:image:type\\\",\\\"content\\\":\\\"image/png\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"14\\\",{\\\"property\\\":\\\"og:image:width\\\",\\\"content\\\":\\\"1200\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"15\\\",{\\\"property\\\":\\\"og:image:height\\\",\\\"content\\\":\\\"630\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"16\\\",{\\\"property\\\":\\\"og:image:alt\\\",\\\"content\\\":\\\"Amp Turned Agents Into Always-On Services This Week - Digital Applied Blog\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"17\\\",{\\\"property\\\":\\\"og:type\\\",\\\"content\\\":\\\"article\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"18\\\",{\\\"property\\\":\\\"article:published_time\\\",\\\"content\\\":\\\"2026-07-26\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"19\\\",{\\\"property\\\":\\\"article:modified_time\\\",\\\"content\\\":\\\"2026-07-26\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"20\\\",{\\\"property\\\":\\\"article:author\\\",\\\"content\\\":\\\"Digital Applied Team\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"21\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"amp\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"22\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"agent-automation\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"23\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"webhooks\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"24\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"event-driven-agents\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"25\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"workload-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"26\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"agent-security\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"27\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"workflow-automation\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"28\\\",{\\\"name\\\":\\\"twitter:card\\\",\\\"content\\\":\\\"summary_large_image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"29\\\",{\\\"name\\\":\\\"twitter:title\\\",\\\"content\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"30\\\",{\\\"name\\\":\\\"twitter:description\\\",\\\"content\\\":\\\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"31\\\",{\\\"name\\\":\\\"twitter:image\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/amp-event-driven-orbs-self-scheduling-agents-2026/article-image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"32\\\",{\\\"name\\\":\\\"twitter:image:alt\\\",\\\"content\\\":\\\"Amp Turned Agents Into Always-On Services This Week - Digital Applied Blog\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"33\\\",{\\\"name\\\":\\\"twitter:image:type\\\",\\\"content\\\":\\\"image/png\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"34\\\",{\\\"name\\\":\\\"twitter:image:width\\\",\\\"content\\\":\\\"1200\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"35\\\",{\\\"name\\\":\\\"twitter:image:height\\\",\\\"content\\\":\\\"630\\\"}],[\\\"$\\\",\\\"link\\\",\\\"36\\\",{\\\"rel\\\":\\\"icon\\\",\\\"href\\\":\\\"/favicon.ico?favicon.0hms~afauq~g0.ico\\\",\\\"sizes\\\":\\\"48x48\\\",\\\"type\\\":\\\"image/x-icon\\\"}],[\\\"$\\\",\\\"link\\\",\\\"37\\\",{\\\"rel\\\":\\\"icon\\\",\\\"href\\\":\\\"/icon.svg?icon.074~muy3rpvs~.svg\\\",\\\"sizes\\\":\\\"any\\\",\\\"type\\\":\\\"image/svg+xml\\\"}],[\\\"$\\\",\\\"link\\\",\\\"38\\\",{\\\"rel\\\":\\\"apple-touch-icon\\\",\\\"href\\\":\\\"/apple-icon.png?apple-icon.0z2i6746e9zp1.png\\\",\\\"sizes\\\":\\\"180x180\\\",\\\"type\\\":\\\"image/png\\\"}],\\\"$L83\\\"]\\n\"])</script><script>self.__next_f.push([1,\"5f:null\\n\"])</script><script>self.__next_f.push([1,\"84:I[692313,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"IconMark\\\"]\\n83:[\\\"$\\\",\\\"$L84\\\",\\\"39\\\",{}]\\n\"])</script></body></html>","snapshot_chars":293244,"live_check":"changed"},{"url":"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook","committed_hash":"sha256:d988e8042688911578677bc30a141833fca252a1b9cf432cc7baed3c9906d525","committed_hash_short":"sha256:d988e804…9906d525","mime_type":"text/html","committed_at":"2026-07-26T22:00:24.256737+00:00","content_snapshot":"<!DOCTYPE html><html class=\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable instrument_serif_535d8616-module__GDyPrG__variable font-sans\" lang=\"en\"><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=5\"/><link rel=\"preload\" href=\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" href=\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\" as=\"font\" crossorigin=\"\" type=\"font/woff2\"/><link rel=\"preload\" as=\"image\" href=\"/logo-black.svg\"/><link rel=\"stylesheet\" href=\"/_next/static/chunks/0x5hulsdcv16j.css\" data-precedence=\"next\"/><link rel=\"stylesheet\" href=\"/_next/static/chunks/1375h7jyi~127.css\" data-precedence=\"next\"/><link rel=\"preload\" as=\"script\" fetchPriority=\"low\" href=\"/_next/static/chunks/0fh1k_r~b~e_o.js\"/><script src=\"/_next/static/chunks/02j3b3kqw16o_.js\" async=\"\"></script><script src=\"/_next/static/chunks/0xo94uum3hbeo.js\" async=\"\"></script><script src=\"/_next/static/chunks/0k8x.hopn~dbb.js\" async=\"\"></script><script src=\"/_next/static/chunks/15~sw-y0t5qla.js\" async=\"\"></script><script src=\"/_next/static/chunks/0_zt5gdwndu-o.js\" async=\"\"></script><script src=\"/_next/static/chunks/turbopack-0r2lweie01gnn.js\" async=\"\"></script><script src=\"/_next/static/chunks/0vfhqx7irdtsp.js\" async=\"\"></script><script src=\"/_next/static/chunks/0yze7hvbcp5.x.js\" async=\"\"></script><script src=\"/_next/static/chunks/0zod1seoish6v.js\" async=\"\"></script><script src=\"/_next/static/chunks/0h9.k2fyk8cqu.js\" async=\"\"></script><script src=\"/_next/static/chunks/13b9o4nx8cmv5.js\" async=\"\"></script><script src=\"/_next/static/chunks/0bok.jphy_~lu.js\" async=\"\"></script><script src=\"/_next/static/chunks/039fygmp~-jt3.js\" async=\"\"></script><script src=\"/_next/static/chunks/10xegheq_2_g2.js\" async=\"\"></script><link rel=\"preload\" href=\"https://www.googletagmanager.com/gtm.js?id=GTM-NGSFB45\" as=\"script\"/><link href=\"/manifest.json\" rel=\"manifest\"/><link href=\"/feed.xml\" rel=\"alternate\" title=\"Digital Applied Blog\" type=\"application/rss+xml\"/><meta content=\"#18181b\" name=\"theme-color\"/><meta content=\"DigitalApplied\" name=\"apple-mobile-web-app-title\"/><meta name=\"next-size-adjust\" content=\"\"/><title>Giving Agents Their Own Identity, Not Your Credentials</title><meta name=\"description\" content=\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\"/><meta name=\"author\" content=\"Digital Applied\"/><meta name=\"keywords\" content=\"agent identity credentials,non-human identity management,SPIFFE SVID short-lived credentials,workload identity federation agents,GitHub App installation token scope,AWS IAM Roles Anywhere,AI agent audit trail\"/><meta name=\"creator\" content=\"Digital Applied\"/><meta name=\"publisher\" content=\"Digital Applied\"/><meta name=\"robots\" content=\"index, follow\"/><meta name=\"googlebot\" content=\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"/><link rel=\"canonical\" href=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\"/><meta property=\"og:title\" content=\"Giving Agents Their Own Identity, Not Your Credentials\"/><meta property=\"og:description\" content=\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\"/><meta property=\"og:url\" content=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\"/><meta property=\"og:image\" content=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\"/><meta property=\"og:image:type\" content=\"image/png\"/><meta property=\"og:image:width\" content=\"1200\"/><meta property=\"og:image:height\" content=\"630\"/><meta property=\"og:image:alt\" content=\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\"/><meta property=\"og:type\" content=\"article\"/><meta property=\"article:published_time\" content=\"2026-07-26\"/><meta property=\"article:modified_time\" content=\"2026-07-26\"/><meta property=\"article:author\" content=\"Digital Applied Team\"/><meta property=\"article:tag\" content=\"agent-identity\"/><meta property=\"article:tag\" content=\"non-human-identity\"/><meta property=\"article:tag\" content=\"workload-identity\"/><meta property=\"article:tag\" content=\"spiffe\"/><meta property=\"article:tag\" content=\"oauth\"/><meta property=\"article:tag\" content=\"access-control\"/><meta property=\"article:tag\" content=\"audit-logging\"/><meta name=\"twitter:card\" content=\"summary_large_image\"/><meta name=\"twitter:title\" content=\"Giving Agents Their Own Identity, Not Your Credentials\"/><meta name=\"twitter:description\" content=\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\"/><meta name=\"twitter:image\" content=\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\"/><meta name=\"twitter:image:alt\" content=\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\"/><meta name=\"twitter:image:type\" content=\"image/png\"/><meta name=\"twitter:image:width\" content=\"1200\"/><meta name=\"twitter:image:height\" content=\"630\"/><link rel=\"icon\" href=\"/favicon.ico?favicon.0hms~afauq~g0.ico\" sizes=\"48x48\" type=\"image/x-icon\"/><link rel=\"icon\" href=\"/icon.svg?icon.074~muy3rpvs~.svg\" sizes=\"any\" type=\"image/svg+xml\"/><link rel=\"apple-touch-icon\" href=\"/apple-icon.png?apple-icon.0z2i6746e9zp1.png\" sizes=\"180x180\" type=\"image/png\"/><script src=\"/_next/static/chunks/03~yq9q893hmn.js\" noModule=\"\"></script></head><body class=\"antialiased\"><div hidden=\"\"><!--$--><!--/$--></div><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"LocalBusiness\",\"@id\":\"https://www.digitalapplied.com/#organization\",\"name\":\"Digital Applied\",\"legalName\":\"Digital Applied, s. r. o.\",\"url\":\"https://www.digitalapplied.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.digitalapplied.com/logo-black.svg\",\"width\":\"512\",\"height\":\"512\"},\"image\":\"https://www.digitalapplied.com/opengraph-image\",\"description\":\"International digital marketing agency specializing in SEO, PPC, social media marketing, and AI-powered digital transformation for global clients\",\"foundingDate\":\"2019-05-01\",\"telephone\":\"+421-90-246-8050\",\"email\":\"info@digitalapplied.com\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Priemyselná 668/7\",\"addressLocality\":\"Bratislava\",\"addressRegion\":\"Bratislava\",\"postalCode\":\"821 09\",\"addressCountry\":\"SK\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":48.142672,\"longitude\":17.168666},\"sameAs\":[\"https://x.com/digitalapplied\",\"https://www.facebook.com/digitalapplied\",\"https://www.instagram.com/digital_applied\",\"https://www.linkedin.com/company/digitalapplied\"],\"areaServed\":[{\"@type\":\"Country\",\"name\":\"United States\"},{\"@type\":\"Country\",\"name\":\"United Kingdom\"},{\"@type\":\"Country\",\"name\":\"Canada\"},{\"@type\":\"Country\",\"name\":\"Australia\"},{\"@type\":\"Place\",\"name\":\"European Union\"},{\"@type\":\"Place\",\"name\":\"Worldwide\"}],\"priceRange\":\"€€€-€€€€\",\"paymentAccepted\":[\"Credit Card\",\"Wire Transfer\",\"PayPal\"],\"currenciesAccepted\":\"EUR, USD, GBP\",\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],\"opens\":\"07:30\",\"closes\":\"17:00\"},{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":\"Saturday\",\"opens\":\"08:00\",\"closes\":\"11:00\"}],\"contactPoint\":{\"@type\":\"ContactPoint\",\"telephone\":\"+421-90-246-8050\",\"contactType\":\"customer service\",\"email\":\"info@digitalapplied.com\",\"availableLanguage\":[\"English\",\"Slovak\"],\"areaServed\":\"Worldwide\"},\"vatID\":\"SK2120914510\",\"taxID\":\"52125670\",\"identifier\":{\"@type\":\"PropertyValue\",\"propertyID\":\"Company ID\",\"value\":\"52125670\"},\"hasOfferCatalog\":{\"@type\":\"OfferCatalog\",\"name\":\"Digital Marketing Services\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"SEO Optimization\",\"url\":\"https://www.digitalapplied.com/services/agentic-seo\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"PPC Advertising\",\"url\":\"https://www.digitalapplied.com/services/paid-media\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Social Media Marketing\",\"url\":\"https://www.digitalapplied.com/services/social-media\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Web Development\",\"url\":\"https://www.digitalapplied.com/services/web-development\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Content Marketing\",\"url\":\"https://www.digitalapplied.com/services/content-engine\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Analytics & Insights\",\"url\":\"https://www.digitalapplied.com/services/analytics\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"eCommerce Solutions\",\"url\":\"https://www.digitalapplied.com/services/ecommerce\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"CRM & Automation\",\"url\":\"https://www.digitalapplied.com/services/crm-automation\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"AI & Digital Transformation\",\"url\":\"https://www.digitalapplied.com/services/ai-transformation\"}}]}}</script><div class=\"flex min-h-screen flex-col\"><nav class=\"sticky top-0 z-40 w-full border-border/60 border-b bg-background/80 backdrop-blur-md supports-backdrop-filter:bg-background/70\"><div class=\"mx-auto max-w-7xl px-4 md:px-8\"><div class=\"flex h-17 items-center justify-between\"><a aria-label=\"Digital Applied\" class=\"flex items-center\" href=\"/\"><img alt=\"Digital Applied\" width=\"1556\" height=\"280\" decoding=\"async\" data-nimg=\"1\" class=\"h-6 w-auto\" style=\"color:transparent\" src=\"/logo-black.svg\"/></a><div class=\"hidden items-center gap-1 md:flex\"><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/services\">Services</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/ai-tools\">AI Tools</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/blog\">Blog</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/about\">About</a><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/contact\">Contact</a></div><div class=\"hidden items-center gap-2.5 md:flex\"><a class=\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\" href=\"/auth/login\">Log in</a><a data-slot=\"button\" data-variant=\"default\" data-size=\"sm\" class=\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 gap-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 h-9.5 rounded-lg px-4\" href=\"/get-started\">Start engines</a></div><button data-slot=\"sheet-trigger\" data-variant=\"ghost\" data-size=\"icon\" class=\"group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-9 md:hidden\" aria-label=\"Open menu\" type=\"button\" aria-haspopup=\"dialog\" aria-expanded=\"false\" aria-controls=\"radix-_R_habvb_\" data-state=\"closed\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-menu h-5 w-5\" aria-hidden=\"true\"><path d=\"M4 5h16\"></path><path d=\"M4 12h16\"></path><path d=\"M4 19h16\"></path></svg></button></div></div></nav><main class=\"grow\"><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"@id\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#article\",\"headline\":\"Giving Agents Their Own Identity, Not Your Credentials\",\"description\":\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\",\"url\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\",\"datePublished\":\"2026-07-26T00:00:00+01:00\",\"dateModified\":\"2026-07-26T00:00:00+01:00\",\"author\":{\"@type\":\"Organization\",\"@id\":\"https://www.digitalapplied.com/authors/digital-applied-team#author\",\"name\":\"Digital Applied Team\",\"url\":\"https://www.digitalapplied.com/authors/digital-applied-team\"},\"publisher\":{\"@id\":\"https://www.digitalapplied.com/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\"},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#webpage\"},\"isPartOf\":{\"@id\":\"https://www.digitalapplied.com/#website\"},\"articleSection\":\"CRM & Automation\",\"keywords\":\"agent identity credentials, non-human identity management, SPIFFE SVID short-lived credentials, workload identity federation agents, GitHub App installation token scope, AWS IAM Roles Anywhere, AI agent audit trail\",\"about\":[{\"@type\":\"Thing\",\"name\":\"agent-identity\"},{\"@type\":\"Thing\",\"name\":\"non-human-identity\"},{\"@type\":\"Thing\",\"name\":\"workload-identity\"},{\"@type\":\"Thing\",\"name\":\"spiffe\"},{\"@type\":\"Thing\",\"name\":\"oauth\"},{\"@type\":\"Thing\",\"name\":\"access-control\"},{\"@type\":\"Thing\",\"name\":\"audit-logging\"}]}</script><script type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://www.digitalapplied.com/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://www.digitalapplied.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CRM & Automation\",\"item\":\"https://www.digitalapplied.com/blog/category/crm-automation\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Giving Agents Their Own Identity, Not Your Credentials\"}]}</script><div aria-hidden=\"true\" class=\"pointer-events-none fixed inset-x-0 top-0 z-40 h-[2px] overflow-hidden\"><div class=\"h-full bg-linear-to-r from-[var(--color-ignition)] to-[var(--color-ignition-2)] transition-[width] duration-100 ease-linear\" style=\"width:0%\"></div></div><nav aria-label=\"Breadcrumb\" class=\"border-white/5 border-b bg-[#0a0a0b] text-white/55\"><ol class=\"mx-auto flex max-w-[1320px] items-center gap-2 px-4 py-3.5 font-mono text-[11px] uppercase tracking-[0.1em] md:px-8\"><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/\">Home</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/blog\">Blog</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><a class=\"transition-colors hover:text-ignition-2\" href=\"/blog/category/crm-automation\">CRM &amp; Automation</a><span class=\"text-white/25\">/</span></li><li class=\"flex items-center gap-2\"><span class=\"text-white\">Agent Identity &amp; Credentials</span></li></ol></nav><section class=\"relative isolate overflow-hidden bg-[#0a0a0b] pt-14 text-white\"><div aria-hidden=\"true\" class=\"mask-[radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)] pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.035)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.035)_1px,transparent_1px)] bg-size-[56px_56px] [-webkit-mask-image:radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-[-5%] left-[-5%] size-[620px] blur-2xl [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.03)_40%,transparent_70%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-[20%] right-[-5%] size-[520px] blur-2xl [background:radial-gradient(circle,rgba(77,107,254,0.16),rgba(77,107,254,0.02)_40%,transparent_70%)]\"></div><div class=\"relative z-2 mx-auto max-w-[1320px] px-4 md:px-8\"><div class=\"mb-9 flex flex-wrap items-center gap-3\"><span class=\"rounded-sm border border-ignition/30 bg-ignition/10 px-3 py-1.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\">CRM &amp; Automation</span><span class=\"rounded-sm bg-ignition-2 px-3 py-1.5 font-medium font-mono text-[#0a0a0b] text-[11px] uppercase tracking-[0.14em]\"><span class=\"mr-1.5 inline-block size-[5px] animate-[ignition-pulse_1.2s_infinite] rounded-full bg-[#0a0a0b] align-[1px]\"></span>Playbook</span><span class=\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\">14<!-- --> min read</span><span class=\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\">Published <!-- -->July 26, 2026</span></div><p class=\"m-0 mb-[18px] max-w-[900px] text-[17px] text-white/72 leading-normal tracking-[-0.005em]\">Non-human identity ·<!-- --> <span class=\"font-serif text-ignition-2 italic\">short-lived</span> <!-- -->credentials · revocation measured in minutes</p><h1 class=\"m-0 mb-6 max-w-[1100px] font-normal text-[clamp(40px,5.4vw,76px)] text-white leading-none tracking-[-0.035em]\">Giving Agents Their Own<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">Identity</em>, Not Your Credentials</h1><p class=\"m-0 mb-11 max-w-[760px] text-[18px] text-white/72 leading-[1.6]\">An agent that borrows a human’s session, API key, or OAuth token inherits three problems at once: every action is attributed to a person, the scope is everything that person can touch, and revocation means locking that person out. Workload identity already solved this for services — this playbook maps the same machinery onto agents, per run.</p><div class=\"mb-12 flex flex-wrap items-center gap-5\"><div class=\"flex items-center gap-3\"><div class=\"flex size-11 items-center justify-center rounded-full bg-[linear-gradient(135deg,var(--color-ignition),var(--color-ignition-2))] font-medium font-mono text-[#0a0a0b] text-[14px]\">DA</div><div><div class=\"font-medium text-[14px] text-white leading-[1.2]\">Digital Applied Team</div><div class=\"mt-0.5 font-mono text-[10.5px] text-white/55 uppercase tracking-[0.08em]\">Senior strategists · Published Jul 26, 2026</div></div></div><div class=\"flex flex-wrap gap-x-6 gap-y-2 border-white/10 border-l pl-6 font-mono text-[11px] text-white/50 uppercase tracking-widest max-sm:gap-x-4 max-sm:border-l-0 max-sm:pl-0\"><div>Published<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">Jul 26, 2026</span></div><div>Read time<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">14 min</span></div><div>Sources<span class=\"mt-1 block text-[12px] text-white tracking-[0.04em]\">IETF, CSA &amp; vendor docs</span></div></div></div><div class=\"mb-14 grid grid-cols-2 gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 md:grid-cols-4\"><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">NHIs per human user</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">45<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">:1</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">enterprise average, per CSA</div><div class=\"mt-3 inline-flex items-center gap-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\"><span aria-hidden=\"true\">▲</span>144:1 cloud-native</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">GitHub App token</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">1<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">hr</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">installation token lifetime</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">AWS temp credentials</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">15<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">min</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">minimum session · max 12 hr</div></div><div class=\"relative bg-[#0a0a0b] px-5 py-6\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\">Fine-grained PAT</span><div class=\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\">30<span class=\"ml-0.5 font-mono text-[16px] text-ignition\">d</span></div><div class=\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\">default expiry · max 366 d</div></div></div></div></section><section class=\"relative bg-white dark:bg-zinc-950\"><div class=\"mx-auto grid max-w-[1320px] grid-cols-1 gap-10 px-6 py-16 md:px-8 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-14 xl:grid-cols-[260px_minmax(0,1fr)_280px]\"><aside class=\"sticky top-[84px] hidden self-start lg:block\"><div><div class=\"mb-4 flex items-center gap-2 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-4 bg-ignition\"></span>Table of contents</div><ul class=\"flex flex-col gap-0.5 border-zinc-200 border-l dark:border-zinc-800\"><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#takeaways\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">00</span><span>Key takeaways</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#borrowed\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">01</span><span>The borrowed-credential trap</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#third-category\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">02</span><span>Agents are a third category</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#mechanisms\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">03</span><span>The mechanism shelf</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#delegation\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">04</span><span>Delegation done precisely</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#matrix\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">05</span><span>The decision matrix</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#revocation\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">06</span><span>Revocation &amp; audit</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#rollout\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">07</span><span>A pragmatic rollout</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#conclusion\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">08</span><span>Conclusion</span></a></li><li><a class=\"-ml-px grid grid-cols-[32px_1fr] gap-2.5 border-l-2 px-3 py-2.5 text-[13px] leading-[1.4] tracking-[-0.005em] transition-colors border-transparent text-zinc-600 hover:bg-zinc-100 hover:text-zinc-950 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-white\" href=\"#faq\"><span class=\"pt-px font-mono text-[10.5px] tracking-[0.06em] text-zinc-500\">09</span><span>FAQ</span></a></li></ul></div></aside><article class=\"prose-none min-w-0\"><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p class=\"lede\">Agent identity is the least glamorous decision in an agentic build and the one most likely to hurt you later: when an AI agent runs on a human’s borrowed session, API key, or OAuth token, every action it takes is legally and forensically that person’s action, its access is whatever that person accumulated over years, and the only off switch also switches off the human.</p><p>This is not a hypothetical concern for some future fleet of autonomous agents. It is the default state of most agent deployments right now, because the fastest way to get an agent working is to paste in a key that already works. The infrastructure world spent the last decade solving the same problem for services — short-lived certificates, token exchange, federation — and in 2026 the major identity vendors began shipping agent-specific versions of that machinery.</p><p>This playbook covers why borrowed credentials fail, why agents are a third identity category distinct from both humans and classic service accounts, the named mechanisms that already exist (SPIFFE and SPIRE, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, RFC 8693 token exchange), and a decision matrix that maps five agent access patterns to an identity mechanism, a revocation path, and an audit granularity. It pairs with our<!-- --> <a class=\"link\" href=\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\">agentic RBAC design patterns guide</a> <!-- -->deliberately: RBAC governs what an identity may <em>do</em> once it exists — this post is about how that identity gets issued, scoped, rotated, and revoked in the first place.</p></div><div class=\"my-12 scroll-mt-[90px] border-zinc-950 border-t-2 pt-7 dark:border-white\" id=\"takeaways\"><div class=\"mb-6 flex items-center gap-2.5 font-mono text-[11px] text-zinc-950 uppercase tracking-[0.14em] dark:text-white\"><span class=\"size-1.5 rounded-full bg-ignition shadow-[0_0_8px_var(--color-ignition)]\"></span>Key takeaways</div><ol class=\"m-0 list-none p-0\"><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">01</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Borrowed credentials fail three ways at once.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">An agent on a human’s session or API key mis-attributes every action to a person, runs over-scoped by default, and cannot be revoked without locking that person out of their own accounts.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">02</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Agents are a third identity category.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Not human, not classic service account. Microsoft’s Entra documentation now carves agents out explicitly: they make dynamic decisions and adapt behavior, so identity must be issued per run and scoped per task.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">03</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">The mechanisms already exist and are shipping.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">SPIFFE/SPIRE issues auto-rotating SVIDs on workload attestation; workload identity federation eliminates key files; GitHub App tokens expire in 1 hour; AWS IAM Roles Anywhere trades an X.509 cert for 15-minute-to-12-hour credentials.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">04</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Delegation is not impersonation — RFC 8693 encodes the difference.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Token exchange carries a subject token (who the work is for) and an actor token (who is doing it), plus an audience parameter that restricts where the minted token is valid. Agent chains need all three.</span></div></li><li class=\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\"><span class=\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\">05</span><div><span class=\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\">Audit must name the run, not the bot.</span><span class=\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">A log line that says ‘the automation user did it’ is not reconstructible after an incident. Per-run correlation IDs, actor-plus-subject pairs, and parent-child lineage for sub-agents are the bar — with revocation measured in minutes.</span></div></li></ol></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"borrowed\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">01<!-- --> — <!-- -->The Failure Mode</span>Borrowed credentials fail<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">three</em> <!-- -->ways at once.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Walk through what actually happens when an agent inherits a human’s credentials — a session cookie lifted from a browser profile, a personal API key pasted into an environment variable, or an OAuth token granted to “you” that a background process now replays.</p><p><strong>First, attribution collapses.</strong> Every record the agent creates, every email it sends, every deletion it performs is logged as the human whose credential it holds. When something goes wrong at 2 a.m. on a Saturday, the audit trail points at a person who was asleep. There is no way, from the logs alone, to separate what the human did from what the agent did — which means there is no way to scope an incident, satisfy a compliance review, or defend the human.</p><p><strong>Second, scope is inherited, not designed.</strong> A human account accumulates access over years — old projects, admin roles granted for one migration and never removed, personal repositories next to production ones. The agent gets all of it. The task needed read access to one CRM module; the credential carries write access to the entire org. Classic personal access tokens are the sharpest version of this: before fine-grained scoping, a single token could reach every repository its owner could.</p><p><strong>Third, revocation takes the human down too.</strong> The only way to cut off an agent holding your session or key is to kill the session or rotate the key — locking you out of your own accounts mid-incident, breaking every other integration that shared the credential, and turning a contained problem into an outage. Anything that cannot be revoked independently was never really under control.</p><p>And the definition of “credential” is wider than most teams assume. This week’s Amp release made the point concretely: a durable webhook URL that triggers an agent functions as a credential — anyone holding the URL can invoke the agent — which is why Amp’s own docs treat those URLs as secrets and sign the payloads, as we covered in<!-- --> <a class=\"link\" href=\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\">our breakdown of Amp’s event-driven orbs</a>. Identity for agents is not just “which API key” — it is every artifact that grants the power to act.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">The trap in one sentence</span><div class=\"text-[15.5px] text-white leading-[1.6]\">A borrowed credential makes the agent<!-- --> <em class=\"font-serif text-white italic\">indistinguishable</em> <!-- -->from its human — which is precisely the property you never want. Attribution, scoping, and revocation all depend on the agent being a<!-- --> <strong>separate, named principal</strong> whose access can be granted, narrowed, and destroyed without touching anyone else.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"third-category\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">02<!-- --> — <!-- -->Identity Taxonomy</span>Agents are a<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">third</em> <!-- -->identity category.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Most 2026 coverage lumps everything non-human into one “non-human identity” bucket. That framing hides the decision that matters. In practice there are three categories with different lifecycles, and the tooling built for the first two fails on the third.</p><p>The scale problem is real regardless of whose count you trust. Per the Cloud Security Alliance’s May 2026 whitepaper on non-human identity governance, non-human identities — service accounts, API keys, OAuth tokens, machine certificates, agent credentials — outnumber human users by an average of 45:1 across enterprises, rising to 144:1 in cloud-native environments. Worth noting: different summaries of the CSA’s own research circulate different headline figures for this problem, which is itself a tell for how unsettled the industry’s accounting of its non-human population still is. Treat any single ratio as directional; the direction is unambiguous.</p><p>Microsoft’s Entra documentation puts the operational gap plainly: “It’s also hard to track when a workload identity is created or when it should be revoked.” That sentence describes classic service accounts. Agents make it worse, and Microsoft now says so explicitly — its workload-identity docs carve out AI agents as a distinct category of machine identity: “Unlike traditional workloads that execute predetermined logic, AI agents make dynamic decisions and adapt behavior.”</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Category 01</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Human identity</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">Interactive · MFA · session-bound</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Built around a person who can answer a prompt: passwords, MFA challenges, conditional access, re-authentication on risk signals. None of that machinery fires when the caller is a process — there is nobody to approve the push notification.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">Traditional IAM’s home turf</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\"><span class=\"size-1.5 rounded-full bg-current\"></span>Category 02</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\">Service account</h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">Long-lived · few · rarely rotated</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Predetermined logic, stable scope, a handful per system. The classic failure is the forgotten key — powerful, unowned, unrotated for years — but at least the behavior behind it is static and reviewable.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">Classic non-human identity</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-ignition-2\"><span class=\"size-1.5 rounded-full bg-current\"></span>Category 03</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-white\">Agent<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">identity</em></h5><div class=\"self-start\"><span class=\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\">Dynamic · many · issued per run</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] leading-[1.6] text-white/72\">Agents decide what to do at runtime, spawn sub-agents, and multiply faster than any review cycle. Identity has to be issued per run, scoped per task, expire on its own, and die without collateral damage to a human or a fleet.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\">Entra Agent ID · CSA agentic IAM</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The vendor proof that this third category is real: Microsoft Entra Agent ID — documentation first published April 14, 2026 and updated June 24, 2026 — is a shipping identity framework specifically for AI agents, layered on Entra, speaking OAuth 2.0, MCP, and A2A. Its design choices read like a checklist of everything borrowed credentials get wrong: “agent identity blueprints” mint individual agent identities from templates with tracked parent-child relationships, so one policy governs every instance spawned from the same template; third-party agents built on non-Microsoft platforms — Microsoft names AWS Bedrock and n8n — can be brought under the same governance via an auth SDK sidecar or standard workload identity federation. Licensing is its own snapshot-in-time detail (full functionality sits behind Microsoft 365 E7 or an E5 add-on, with standalone Entra tiers below that), but the architectural signal matters more than the packaging: Microsoft decided agents need their own principal type.</p><p>The same conclusion is coming from the standards side. NIST’s zero-trust architecture guidance treats every machine-to-machine call as requiring explicit authorization regardless of network position — no implicit trust for being “inside the VPC” — which is the baseline assumption every mechanism in the next section builds on.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"mechanisms\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">03<!-- --> — <!-- -->Named Mechanisms</span>The mechanism shelf:<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">short-lived</em> <!-- -->beats long-lived, everywhere.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>None of this requires inventing anything. Four families of mechanism, all shipping today, already issue exactly the kind of credential an agent should hold: short-lived, workload-scoped, audit-attributable, and revocable on their own.</p><h3>SPIFFE / SPIRE — identity from attestation, not secrets</h3><p>SPIFFE (Secure Production Identity Framework For Everyone) issues short-lived cryptographic identity documents called SVIDs — X.509 certificates or JWTs — to workloads. The decisive property is that issuance is tied to <strong>workload attestation</strong>: SPIRE verifies what the workload actually is at runtime, rather than trusting whoever holds a pre-provisioned secret. SVIDs rotate automatically, and trust domains can federate across organizations. For agents, that means the identity follows the running process, not a string in an env file.</p><h3>Workload identity federation — the end of the key file</h3><p>Google Cloud’s workload identity federation lets an external workload — on-prem, another cloud, a CI/CD runner, an AI agent — present a credential from its own identity provider, which Google’s Security Token Service validates and exchanges for a short-lived Google Cloud token. No long-lived service-account key file is ever distributed. It federates against AWS, Azure, Active Directory, GitHub and GitLab OIDC, Kubernetes, Okta, and any generic OIDC or SAML 2.0 provider, and supports both direct IAM grants to the federated identity and service-account impersonation.</p></div><blockquote class=\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\">&quot;Service account keys are powerful credentials, and can present a security risk if they are not managed correctly.&quot;<cite class=\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\">— Google Cloud IAM documentation, workload identity federation</cite></blockquote><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><h3>AWS IAM Roles Anywhere — certificates in, sessions out</h3><p>AWS’s version replaces the long-lived Access Key ID and Secret Access Key pair with an X.509 certificate presented by the workload, exchanged for temporary STS credentials valid from 15 minutes up to 12 hours. The supporting Credential Helper is under active development inside this year’s window — v1.8.0 (March 5, 2026) added ML-DSA post-quantum signature support, and v1.8.4 (June 9, 2026) patched security vulnerabilities — a useful signal that cert-based machine credentials are a maintained, first-class path, not a legacy corner.</p><h3>GitHub App installation tokens &amp; fine-grained PATs</h3><p>GitHub offers the most concrete everyday example. A GitHub App installation access token expires one hour after issuance, can never exceed what the app itself was granted, and can be scoped down further at request time — to a subset of repositories (up to 500) and a subset of permissions. GitHub has also introduced a stateless installation token format that replaces the old opaque 40-character string with a self-describing, verifiable credential. Fine-grained personal access tokens complete the picture for human-adjacent automation: 30-day default expiry, extendable to 366 days (or “never,” where org policy permits), scoped to a single user or org and to named repositories — unlike classic PATs, which granted blanket access to everything their owner could reach.</p><p>Two adjacent playbooks pair with this shelf. Rotation cadence and storage for whatever secrets remain is covered in our<!-- --> <a class=\"link\" href=\"/blog/secrets-management-api-key-rotation-2026-engineering-reference\">secrets management and API key rotation reference</a>, and for a concrete consumer-facing version of “hand the agent a scoped credential instead of your login,” see how<!-- --> <a class=\"link\" href=\"/blog/1password-claude-secure-credential-agentic-browsing-2026\">1Password brokers credentials for agentic browsing</a>.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">GitHub App token</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Installation token lifetime</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">1<span class=\"font-mono font-normal text-[14px] text-ignition\">hr</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Expires one hour after issuance, capped at the app’s own grants, and downscopable at request time to specific repositories (up to 500) and permissions.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">Stateless verifiable format</span></div></div></div><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">AWS IAM Roles Anywhere</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Minimum session lifetime</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">15<span class=\"font-mono font-normal text-[14px] text-ignition\">min</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">An X.509 certificate is exchanged for temporary STS credentials valid from 15 minutes to 12 hours. No long-lived access-key pair is ever distributed.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">Helper v1.8.4 · Jun 2026</span></div></div></div><div class=\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\"><div class=\"flex flex-1 flex-col gap-1.5\"><div class=\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Fine-grained PAT</div><h5 class=\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\">Default expiration</h5></div><div class=\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\">30<span class=\"font-mono font-normal text-[14px] text-ignition\">d</span></div></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\">Scoped to one user or org and to named repositories and permissions; extendable to 366 days, or ‘never’ where org policy allows — versus classic PATs’ blanket reach.</p><div class=\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\"><span class=\"font-mono text-[10px] text-ignition uppercase tracking-widest\">Classic PATs: blanket access</span></div></div></div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"delegation\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">04<!-- --> — <!-- -->On-Behalf-Of</span>Delegation is not<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">impersonation</em>.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The hardest agent-identity case is the most common one: an agent acting on behalf of a specific human. Get this wrong and you are back to the borrowed-credential trap with extra steps. The formal machinery for getting it right has existed since January 2020: RFC 8693, OAuth 2.0 Token Exchange — a Standards Track RFC defining an HTTP/JSON protocol for trading one security token for another.</p><p>RFC 8693 draws exactly the distinction this post is about.<!-- --> <strong>Impersonation</strong> means the new token’s holder becomes indistinguishable from the original subject, taking on all of its rights — the protocol-level formalization of the trap in Section 01.<!-- --> <strong>Delegation</strong> means the acting party keeps its own separate identity while exercising rights granted by the subject — it acts as an agent of the subject rather than becoming it. The request format encodes the difference structurally: a required<!-- --> <code>subject_token</code> identifies who the request is on behalf of, and an optional <code>actor_token</code> identifies who is actually making the call. Both identities survive into the minted token, which is what makes the downstream audit trail reconstructible.</p><p>The third piece is the <code>audience</code> parameter: the client names the specific downstream service the token is being requested for, and the authorization server mints an<!-- --> <strong>audience-restricted</strong> token valid there and nowhere else. An agent that needs to read a calendar gets a token the CRM will reject. Notably, RFC 8693 leaves the token formats themselves out of scope — it is a protocol shell, which is why Google, Microsoft, GitHub, and HashiCorp each implement the pattern with their own token types. The pattern transfers; the strings do not.</p><p>On the broader OAuth front, precision matters: OAuth 2.1 is still a draft, not a ratified RFC. It consolidates OAuth 2.0 with PKCE and native-app guidance, removes the implicit grant entirely, eliminates the resource-owner password grant, and makes PKCE mandatory for every authorization-code client. Directionally it is where agent-facing OAuth deployments should already be — but cite it as a draft, because that is what it is.</p><p>The Cloud Security Alliance’s agentic IAM paper (August 2025) pushes one step further for multi-agent systems: Decentralized Identifiers plus Verifiable Credentials as the identity anchor, with just-in-time credentials valid for narrow windows — its worked example is a 15-minute credential scoped to a single action on specific resources. Its rationale is the same gap RFC 8693 exists to close: traditional OAuth and SAML assumptions fall short because they lack secure, traceable delegation where agents act on behalf of users while keeping accountability chains intact — a gap that off-the-shelf OAuth deployments frequently leave unwired for agent chains even though the spec support exists.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">Where RBAC fits</span><div class=\"text-[15.5px] text-white leading-[1.6]\">These are complementary layers, not competing ones. This playbook covers how an agent identity is<!-- --> <em class=\"font-serif text-white italic\">issued, scoped, rotated, and revoked</em>. Our<!-- --> <a class=\"link\" href=\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\">agentic RBAC design patterns post</a> <!-- -->covers what that identity may <strong>do</strong> once it exists — roles, permission boundaries, and approval gates. You need both: perfect RBAC on a borrowed credential still mis-attributes every action, and a perfectly-issued identity with sloppy permissions is just a well-labeled skeleton key.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"matrix\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">05<!-- --> — <!-- -->Decision Matrix</span>Five access patterns,<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">one</em> <!-- -->table.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Vendor documentation explains each mechanism in isolation; nobody lines them up against the access patterns real agent deployments actually have. The matrix below is our mapping: for each of the five ways an agent typically obtains access, the identity mechanism that fits, the credential lifetime you should expect, the revocation path when something goes wrong, and the audit granularity you get for incident reconstruction.</p></div><div class=\"not-prose my-8 overflow-x-auto rounded-2xl border border-zinc-200 dark:border-zinc-800\"><table class=\"w-full border-collapse text-left text-[14px]\"><caption class=\"sr-only\">Agent identity decision matrix: five agent access patterns mapped to the identity mechanism that fits, typical credential lifetime, revocation path, and audit granularity. Compiled by Digital Applied from GitHub, Google Cloud, AWS, Microsoft Entra, SPIFFE, IETF RFC 8693, and Cloud Security Alliance documentation, retrieved July 2026.</caption><thead><tr class=\"bg-zinc-950 text-white dark:bg-zinc-900\"><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Access pattern</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Identity mechanism</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Typical credential lifetime</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Revocation path</th><th class=\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\" scope=\"col\">Audit granularity</th></tr></thead><tbody class=\"divide-y divide-zinc-200 dark:divide-zinc-800\"><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">CI/CD pipeline agent</th><td class=\"px-4 py-3\">Workload identity federation over OIDC, or a GitHub App installation token</td><td class=\"px-4 py-3 font-mono text-[13px]\">~1 hr (installation token); STS-issued short-lived</td><td class=\"px-4 py-3\">Disable the app installation or the federation pool — no shared secret to hunt down and rotate</td><td class=\"px-4 py-3\">Per-run correlation: pipeline run ID tied to each token issuance</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Human-delegated agent</th><td class=\"px-4 py-3\">RFC 8693 token exchange: subject token + actor token, audience-restricted</td><td class=\"px-4 py-3 font-mono text-[13px]\">Session-bound; expires with the delegation</td><td class=\"px-4 py-3\">Invalidate the user’s subject token or the agent’s actor token independently — neither locks out the other</td><td class=\"px-4 py-3\">Actor-plus-subject pair recorded on every downstream call</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Autonomous scheduled agent</th><td class=\"px-4 py-3\">Its own workload identity: SPIFFE/SPIRE SVID or a cloud-managed identity, issued on attestation</td><td class=\"px-4 py-3 font-mono text-[13px]\">Minutes to hours; SVIDs rotate automatically</td><td class=\"px-4 py-3\">Revoke the SVID or deny the attestation — no human account is touched</td><td class=\"px-4 py-3\">Per-certificate serial / per-invocation identity in every log line</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Sub-agent spawned by a parent</th><td class=\"px-4 py-3\">Child identity with a verifiable link to the parent (CSA delegation chains; Entra agent identity blueprints)</td><td class=\"px-4 py-3 font-mono text-[13px]\">Per-task; CSA’s worked example is a 15-min window</td><td class=\"px-4 py-3\">Kill the child credential without touching the parent — or revoke the parent to invalidate the chain</td><td class=\"px-4 py-3\">Per-child ID with parent lineage — multi-agent incidents stay reconstructible</td></tr><tr class=\"align-top text-zinc-700 dark:text-zinc-300\"><th class=\"px-4 py-3 font-medium text-zinc-950 dark:text-white\" scope=\"row\">Third-party / webhook-triggered agent</th><td class=\"px-4 py-3\">Signed webhook payload verified at ingress, then exchanged for a short-lived, downscoped token</td><td class=\"px-4 py-3 font-mono text-[13px]\">Per-invocation</td><td class=\"px-4 py-3\">Rotate the webhook secret; deny-list the compromised signature</td><td class=\"px-4 py-3\">Per-payload signature hash plus the issued-token record</td></tr></tbody></table></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Two readings of this table are worth making explicit. First, the lifetime column trends toward zero as autonomy rises: the less a human is in the loop at trigger time, the shorter the credential should live, because there is nobody watching to notice misuse in real time. Second, every revocation path in the table shares one property — it never requires locking a human out. That is the single test that tells you whether an agent has its own identity or is wearing someone else’s.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"revocation\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">06<!-- --> — <!-- -->Kill Switches</span>Revocation in<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">minutes</em>, audit by the run.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>Issuing the right credential is half the job. The other half is being able to destroy it fast and reconstruct what it did. The CSA’s May 2026 whitepaper sets a concrete bar for the first part: time-to-revoke measured in minutes, achieved through pre-authorized, automated revocation workflows triggered by exposure signals — not a ticket in a queue waiting for someone to manually deprovision an account. Its broader governance model has three parts: formal identity lifecycle management with assigned ownership for every non-human identity, zero standing privilege (just-in-time, task-scoped access with automatic expiry), and cryptographic workload attestation — naming SPIFFE/SPIRE specifically as the replacement for static API keys.</p><p>On the audit side, the bar is attribution to a specific agent<!-- --> <em>run</em>. A log line saying that the automation user did a few thousand things last Tuesday is not an audit trail; it is a confession that you cannot reconstruct the incident. The mechanisms in this playbook each carry their own answer — correlation IDs on CI runs, actor-subject pairs on delegated calls, certificate serials on SVIDs, lineage links on sub-agents, signature hashes on webhook invocations — and the vendor platforms are converging on the same requirement: Microsoft’s Entra Agent ID documentation states: “All agent authentication and activity is logged for compliance and audit.” It ships a dedicated agent sign-in and audit log surface, separate from human sign-in logs. What to actually record, and how to structure it so it survives an incident review, is the subject of our<!-- --> <a class=\"link\" href=\"/blog/agent-audit-trail-design-7-best-practices-2026\">agent audit trail design guide</a>.</p></div><div class=\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\"><span aria-hidden=\"true\" class=\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\"></span><span class=\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\">CSA on multi-agent accountability</span><div class=\"text-[15.5px] text-white leading-[1.6]\">The Cloud Security Alliance’s agentic IAM guidance is blunt on the two rules that keep agent fleets governable: “Grant agents only the minimum access required for their specific task.” And for the multi-agent case: “Sub-agents spawned by a parent agent are separate instances, each with a unique ID, but with a verifiable link back to the parent.” Unique identity per instance,<!-- --> <em class=\"font-serif text-white italic\">cryptographic lineage</em> <!-- -->across the chain. That combination is what turns a swarm incident from an anonymous blob into a reconstructible sequence.</div></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"rollout\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">07<!-- --> — <!-- -->Implementation</span>A pragmatic rollout<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">order</em>.</h2><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>You do not need SPIFFE in production by Friday. The failure mode to avoid is the opposite one: treating agent identity as a someday project while agents multiply on borrowed keys today. The sequence below is the order we use in client engagements, cheapest and highest-leverage first.</p></div><div class=\"my-8 flex flex-col gap-4\"><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Week one</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Inventory before mechanism</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">List every credential an agent currently holds — keys, tokens, sessions, and webhook URLs (they count). For each: whose is it, what can it reach, who owns its lifecycle, and how would you revoke it alone. The unowned entries are your risk register.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Start with ownership</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>First replacement</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-white\">Kill the<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">long-lived</em> <!-- -->keys</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-white/72\">CI/CD and cloud access convert fastest: swap stored secrets for OIDC-based workload identity federation and GitHub App installation tokens. No agent rewrite required — the platform mints short-lived credentials and the pasted keys get deleted.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\">Federation + app tokens</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Human-delegated agents</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">On-behalf-of, audience-restricted</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Where an agent acts for a specific user, move to RFC 8693-style token exchange: subject token plus actor token, audience-restricted to the one service the task needs. The agent stops being the user and starts acting for the user — visibly, in every log.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Token exchange</span></div></div></div><div class=\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\"><div class=\"flex flex-col gap-3 md:w-[220px] md:shrink-0\"><div class=\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\"></span>Multi-agent systems</div><h5 class=\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\">Lineage from day one</h5></div><div class=\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\"></div><div class=\"flex flex-1 flex-col justify-between gap-4\"><p class=\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\">Give every spawned sub-agent its own identifier with a verifiable link to its parent, and pre-authorize the revocation workflow before you need it. Retrofitting lineage onto a running fleet after an incident is the expensive version.</p><div class=\"self-start pt-1 md:self-end\"><span class=\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\">Parent-child IDs</span></div></div></div></div><div class=\"max-w-[720px] [&amp;_*:where(p,h3,ul)]:text-pretty [&amp;_a.link:hover]:bg-ignition/10 [&amp;_a.link:hover]:text-ignition [&amp;_a.link]:border-ignition [&amp;_a.link]:border-b [&amp;_a.link]:pb-px [&amp;_a.link]:font-medium [&amp;_a.link]:text-zinc-950 [&amp;_a.link]:transition-colors [&amp;_a.link]:dark:text-white [&amp;_code]:rounded-[4px] [&amp;_code]:bg-zinc-100 [&amp;_code]:px-1.5 [&amp;_code]:py-0.5 [&amp;_code]:font-mono [&amp;_code]:text-[0.88em] [&amp;_code]:text-zinc-950 [&amp;_code]:dark:bg-zinc-800 [&amp;_code]:dark:text-white [&amp;_h3]:mt-9 [&amp;_h3]:mb-3.5 [&amp;_h3]:font-medium [&amp;_h3]:text-[22px] [&amp;_h3]:text-zinc-950 [&amp;_h3]:leading-tight [&amp;_h3]:tracking-[-0.015em] [&amp;_h3]:dark:text-white [&amp;_p.lede]:mb-7 [&amp;_p.lede]:font-normal [&amp;_p.lede]:text-[19px] [&amp;_p.lede]:text-zinc-950 [&amp;_p.lede]:leading-[1.6] [&amp;_p.lede]:dark:text-white [&amp;_p]:mb-5 [&amp;_p]:text-[17px] [&amp;_p]:text-zinc-800 [&amp;_p]:leading-[1.7] [&amp;_p]:dark:text-zinc-200 [&amp;_strong]:font-semibold [&amp;_strong]:text-zinc-950 [&amp;_strong]:dark:text-white [&amp;_ul]:mb-6 [&amp;_ul]:ml-0 [&amp;_ul]:list-none [&amp;_ul]:p-0 [&amp;_ul_li]:relative [&amp;_ul_li]:mb-2.5 [&amp;_ul_li]:pl-[22px] [&amp;_ul_li]:text-[16px] [&amp;_ul_li]:text-zinc-700 [&amp;_ul_li]:leading-[1.6] [&amp;_ul_li]:before:absolute [&amp;_ul_li]:before:top-[11px] [&amp;_ul_li]:before:left-0.5 [&amp;_ul_li]:before:size-1.5 [&amp;_ul_li]:before:rounded-full [&amp;_ul_li]:before:bg-ignition [&amp;_ul_li]:before:content-[&#x27;&#x27;] [&amp;_ul_li]:dark:text-zinc-300\"><p>The interpretive point behind the sequence: agent identity is following the same arc service identity followed a decade ago, but compressed. Static keys gave way to short-lived certificates and federation for services over roughly ten years of painful migrations; agents are being pushed down that same path in quarters, not years, because the population is growing at machine speed and the actors behind the credentials make their own decisions. Our projection is that within a few product cycles, “give the agent its own identity” stops being an architecture choice and becomes a platform default — Entra Agent ID’s blueprints and GitHub’s stateless verifiable tokens are early versions of exactly that — and the differentiator shifts to the operational layer: who owns each identity, how fast revocation fires, and whether the audit trail names runs or blobs.</p><p>This matters most where agents touch systems of record. A CRM agent that can rewrite pipeline data on a borrowed admin login is the exact scenario the borrowed-credential trap describes — which is why identity design is part of every build in our<!-- --> <a class=\"link\" href=\"/services/crm-automation\">CRM automation practice</a>, and why broader agent governance — identity, permissions, audit, rollback — anchors our<!-- --> <a class=\"link\" href=\"/services/ai-transformation\">AI transformation engagements</a>. The teams that get this right early ship agents faster, not slower, because every new agent lands on rails that already exist.</p></div><h2 class=\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\" id=\"conclusion\"><span class=\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\">08<!-- --> — <!-- -->Conclusion</span>The test is<!-- --> <em class=\"font-normal font-serif text-ignition-2 italic\">revocation</em>.</h2><div class=\"relative my-10 overflow-hidden rounded-2xl bg-[#0a0a0b] p-8 text-white\"><div aria-hidden=\"true\" class=\"pointer-events-none absolute right-[-20%] bottom-[-30%] size-[400px] [background:radial-gradient(circle,rgba(255,107,26,0.12),transparent_60%)]\"></div><div class=\"relative mb-3.5 flex items-center gap-2.5 font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\"><span class=\"size-1.5 rounded-full bg-ignition shadow-[0_0_6px_var(--color-ignition)]\"></span>Agent identity, July 2026</div><h3 class=\"relative m-0 mb-4 font-medium text-[22px] text-white leading-[1.2] tracking-[-0.015em]\">If you can’t revoke the agent without locking out a human, the agent doesn’t have an identity.</h3><div class=\"relative space-y-3 text-[15.5px] text-white/80 leading-[1.65]\"><p>Everything in this playbook compresses into that one test. Borrowed credentials fail it by construction: attribution points at a person, scope was accumulated rather than designed, and the kill switch takes the human down with the agent. Separate, per-run identity passes it — and the machinery is not speculative. SPIFFE SVIDs, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, and RFC 8693 token exchange are all<!-- --> <em class=\"font-serif text-ignition-2 italic\">shipping</em>, documented, and in production at scale for services already.</p><p>The direction of travel is unambiguous even where the statistics are not. Non-human identities already outnumber humans by an order of magnitude on any count in circulation, the major identity vendors have begun treating agents as their own principal type, and the industry bodies converge on the same three-part prescription: owned lifecycles, zero standing privilege, and attestation-based issuance. What is still scarce is teams actually wiring it up before the incident instead of after.</p><p>Start with the inventory, kill the long-lived keys, and make every new agent land on its own identity by default. The cost is a few unglamorous engineering days now. The alternative is explaining to an auditor why the log says a sleeping employee deleted the production data — and why turning the agent off also turned off the employee.</p></div></div></article><aside class=\"sticky top-[84px] hidden flex-col gap-5 self-start xl:flex\"><div class=\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">Share dispatch</span><div class=\"flex flex-col gap-2\"><div class=\"flex flex-wrap gap-2\"><a aria-label=\"Share on X\" class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" href=\"https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.digitalapplied.com%2Fblog%2Fagent-identity-credentials-non-human-access-2026-playbook&amp;text=Giving%20Agents%20Their%20Own%20Identity%2C%20Not%20Your%20Credentials\" rel=\"noopener noreferrer\" target=\"_blank\"><svg aria-hidden=\"true\" class=\"size-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"></path></svg> X</a><a aria-label=\"Share on LinkedIn\" class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" href=\"https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.digitalapplied.com%2Fblog%2Fagent-identity-credentials-non-human-access-2026-playbook\" rel=\"noopener noreferrer\" target=\"_blank\"><svg aria-hidden=\"true\" class=\"size-3.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.266 2.37 4.266 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.063 2.063 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452z\"></path></svg> LinkedIn</a></div><button class=\"inline-flex h-9 min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md border border-zinc-200 bg-white px-3 font-medium text-[12.5px] text-zinc-600 transition-colors hover:border-zinc-900 hover:bg-zinc-100 hover:text-zinc-950 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-white dark:hover:text-white\" type=\"button\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-link2 lucide-link-2 size-3.5\" aria-hidden=\"true\"><path d=\"M9 17H7A5 5 0 0 1 7 7h2\"></path><path d=\"M15 7h2a5 5 0 1 1 0 10h-2\"></path><line x1=\"8\" x2=\"16\" y1=\"12\" y2=\"12\"></line></svg>Copy link</button></div></div><div class=\"relative overflow-hidden rounded-2xl bg-[#0a0a0b] p-5 text-white\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:14px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><span class=\"mb-3.5 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.12em]\">AI Insights</span><h4 class=\"m-0 mb-2.5 font-medium text-[15px] text-white leading-[1.3] tracking-[-0.01em]\">Deep dives on AI operations and automation.</h4><p class=\"m-0 mb-3.5 text-[12.5px] text-white/65 leading-normal\">Agentic development, CRM automation, and data-driven strategies. No recycled AI takes.</p><form class=\"flex flex-col gap-2\"><input aria-label=\"Email address\" autoComplete=\"email\" class=\"w-full rounded-md border border-white/15 bg-black/35 px-3 py-2.5 font-sans text-[13px] text-white outline-none focus:border-ignition disabled:opacity-60\" inputMode=\"email\" placeholder=\"you@work.com\" required=\"\" type=\"email\" name=\"email\" value=\"\"/><input aria-hidden=\"true\" autoComplete=\"off\" class=\"absolute left-[-9999px] h-0 w-0 opacity-0\" tabindex=\"-1\" type=\"text\" name=\"website\" value=\"\"/><button class=\"inline-flex h-auto w-full items-center justify-center rounded-md bg-white py-2.5 font-medium text-[13px] text-zinc-950 transition-colors hover:bg-white/90 disabled:cursor-not-allowed disabled:opacity-60\" type=\"submit\">Subscribe</button></form></div><div class=\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\"><span class=\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\">The mechanism shelf</span><h4 class=\"m-0 mb-2.5 font-medium text-[15px] text-zinc-950 dark:text-white\">Already shipping, today</h4><div class=\"mb-1 font-mono text-[12px] text-zinc-950 dark:text-white\">SPIFFE · WIF · RFC 8693</div><p class=\"m-0 text-[12px] text-zinc-500 leading-normal\">Workload identity federation, SPIFFE/SPIRE SVIDs, GitHub App installation tokens, and AWS IAM Roles Anywhere all issue short-lived, scoped, revocable credentials — none require a human’s login.</p></div></aside></div></section><section class=\"relative isolate overflow-hidden bg-[#0a0a0b] py-20 text-white\"><div aria-hidden=\"true\" class=\"pointer-events-none absolute inset-0 [-webkit-mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)] [background-image:linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] [background-size:56px_56px] [mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)]\"></div><div aria-hidden=\"true\" class=\"pointer-events-none absolute top-1/2 left-1/2 size-[900px] -translate-x-1/2 -translate-y-1/2 blur-[30px] [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.04)_30%,transparent_65%)]\"></div><div class=\"relative z-[2] mx-auto grid max-w-[1320px] items-center gap-14 px-4 md:px-8 lg:grid-cols-[1.3fr_1fr]\"><div><span class=\"mb-4.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>Build agents on their own identity</span><h2 class=\"m-0 mb-4.5 font-light text-[clamp(30px,3.8vw,50px)] leading-[1.04] tracking-[-0.03em]\">Agents you can revoke in minutes are agents you can<!-- --> <em class=\"bg-clip-text font-normal font-serif text-transparent italic\" style=\"background-image:linear-gradient(180deg, #fff 40%, var(--color-ignition-2) 80%, var(--color-ignition) 100%)\">actually trust</em>.</h2><p class=\"m-0 mb-7 max-w-[520px] text-[16px] text-white/72 leading-[1.6]\">Our team designs agent identity, permissions, and audit rails as part of every agentic build — CRM agents, workflow automation, and multi-agent systems that can be trusted with systems of record, delivered in days not quarters.</p><div class=\"mb-6 flex flex-wrap gap-3\"><a class=\"group relative inline-flex h-[52px] items-center justify-center gap-2 overflow-hidden rounded-lg bg-[#0a0a0b] px-7 font-medium text-[15px] text-white shadow-[0_0_0_1px_#0a0a0b,0_10px_30px_-10px_rgba(255,107,26,0.4)] transition-transform hover:-translate-y-0.5\" href=\"/get-started\"><span class=\"relative z-[1]\">Get started</span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right relative z-[1] size-4 transition-transform group-hover:translate-x-0.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></a><a class=\"inline-flex h-[52px] items-center justify-center gap-2 rounded-lg border border-white/15 bg-white/5 px-7 font-medium text-[15px] text-white transition-colors hover:border-white/30 hover:bg-white/10\" href=\"/services/crm-automation\">Explore CRM &amp; automation</a></div><div class=\"flex flex-wrap gap-x-7 gap-y-2 font-mono text-[11px] text-white/55 uppercase tracking-[0.1em]\"><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Free consultation</span><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Expert guidance</span><span class=\"inline-flex items-center gap-2\"><span class=\"size-1.5 rounded-full bg-ignition\"></span>Tailored solutions</span></div></div><div class=\"relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.04] p-7\"><div aria-hidden=\"true\" style=\"position:absolute;inset:-1px;border-radius:18px;padding:1px;background:linear-gradient(135deg,#ff6b1a,transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none\"></div><span class=\"mb-3.5 block font-mono text-[11px] text-ignition-2 uppercase tracking-[0.14em]\">What we work on</span><h4 class=\"m-0 mb-3.5 font-medium text-[19px] text-white tracking-[-0.01em]\">Agent identity engagements</h4><ul class=\"m-0 list-none p-0\"><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Non-human identity inventory &amp; ownership mapping</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Long-lived key elimination — federation &amp; app tokens</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>On-behalf-of token exchange for user-facing agents</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Per-run audit trails with parent-child lineage</li><li class=\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\"><span class=\"font-mono text-[13px] text-ignition\">→</span>Revocation runbooks — minutes, not ticket queues</li></ul></div></div></section><section class=\"border-zinc-200 border-t bg-white py-24 dark:border-zinc-800 dark:bg-zinc-950\" id=\"faq\"><div class=\"mx-auto max-w-[960px] px-4 md:px-8\"><div class=\"mb-12\"><div class=\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>FAQ · Agent identity</div><h2 class=\"m-0 font-normal text-[clamp(32px,4vw,48px)] text-zinc-950 leading-[1.05] tracking-[-0.03em] dark:text-white\">The questions we get<!-- --> <em class=\"font-normal font-serif italic\">every week.</em></h2></div><div class=\"border-zinc-200 border-t dark:border-zinc-800\"><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-0\" aria-expanded=\"true\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Why shouldn’t an AI agent just use my API key or session?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all rotate-45 border-ignition bg-ignition text-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button><div class=\"mt-3.5 max-w-[760px] text-[15px] text-zinc-600 leading-[1.65] dark:text-zinc-400\" id=\"faq-answer-0\">Three structural reasons. Attribution: every action the agent takes is logged as you, so after an incident nobody can separate your actions from the agent’s — a real problem in any compliance review. Scope: your account carries everything you’ve accumulated over years, so a task that needed read access to one module inherits write access to everything you can touch. Revocation: the only way to cut the agent off is to kill your own session or rotate your own key, locking you out and breaking every other integration that shared the credential. A separate agent identity fixes all three at once — actions attribute to the agent run, scope is designed per task, and revocation touches nothing human.</div></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-1\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What is a non-human identity (NHI), and how big is the problem?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-2\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What are SPIFFE and SPIRE, and do they apply to agents?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-3\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What is workload identity federation?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-4\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What’s the difference between delegation and impersonation in RFC 8693?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-5\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>Is OAuth 2.1 finalized, and should agent builds wait for it?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-6\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>How should sub-agents spawned by a parent agent be identified?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div><div class=\"border-zinc-200 border-b py-5 dark:border-zinc-800\"><button aria-controls=\"faq-answer-7\" aria-expanded=\"false\" class=\"flex w-full cursor-pointer items-center justify-between gap-4 bg-transparent p-0 text-left font-medium text-[17px] text-zinc-950 tracking-[-0.01em] dark:text-white\" type=\"button\"><span>What does ‘good’ look like for agent credential revocation and audit?</span><span class=\"flex size-7 shrink-0 items-center justify-center rounded-full border transition-all border-zinc-200 text-zinc-600 dark:border-zinc-700 dark:text-zinc-400\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-plus size-3.5\" aria-hidden=\"true\"><path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path></svg></span></button></div></div></div></section><section class=\"bg-zinc-100 py-24 dark:bg-zinc-900\"><div class=\"mx-auto max-w-[1320px] px-4 md:px-8\"><div class=\"mb-10\"><div class=\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\"><span class=\"h-px w-5 bg-ignition\"></span>Related dispatches</div><h2 class=\"m-0 font-normal text-[clamp(30px,3.6vw,44px)] text-zinc-950 leading-[1.05] tracking-[-0.025em] dark:text-white\">Continue exploring<!-- --> <em class=\"font-normal font-serif italic\">agentic operations.</em></h2></div><div class=\"grid gap-4 md:grid-cols-3\"><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Amp Turned Agents Into Always-On Services This Week</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 26, 2026<!-- --> · <!-- -->12<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/claude-voice-mode-opus-sonnet-connectors-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Claude Voice Mode Grows Up: Opus, Sonnet, and Connectors</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Claude voice mode now reaches Opus and Sonnet on paid plans, with Gmail, Calendar, Docs and Slack connectors working aloud. Still beta and turn-based.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 25, 2026<!-- --> · <!-- -->11<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/live-client-dashboards-claude-artifacts-mcp\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Build Live Client Dashboards with Claude Code Artifacts</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Claude Code Artifacts now pull live data through a viewer&#x27;s own MCP connectors per view. But a connector-backed dashboard can&#x27;t be a public link on any plan.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 24, 2026<!-- --> · <!-- -->11<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/baidu-unlimited-ocr-3b-document-automation-2026\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Baidu Unlimited-OCR 3B: Single-Pass PDFs, MIT-Licensed</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Baidu&#x27;s MIT-licensed Unlimited-OCR parses documents in one pass and beats DeepSeek-OCR on OmniDocBench. A free, self-hostable option for ops document teams.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>July 23, 2026<!-- --> · <!-- -->12<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/sms-marketing-statistics-2026-open-ctr-data\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">SMS Marketing Statistics 2026: 110+ Open and CTR Data</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">SMS marketing statistics for 2026: 110+ data points on delivery, open and click-through rates, opt-out behavior, and revenue-per-send benchmarks.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>April 22, 2026<!-- --> · <!-- -->15<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a><a class=\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\" href=\"/blog/anthropic-cowork-customize-personalize-claude-business\"><span class=\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\">CRM &amp; Automation</span><h4 class=\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\">Anthropic Cowork Customize: Personalize Claude Guide</h4><p class=\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\">Anthropic&#x27;s Cowork platform lets businesses customize Claude&#x27;s persona, memory, and behavior at workspace level. Setup guide, use cases, and API integration.</p><div class=\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\"><span>March 19, 2026<!-- --> · <!-- -->14<!-- --> min</span><span class=\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\">Read <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right size-3.5\" aria-hidden=\"true\"><path d=\"M7 7h10v10\"></path><path d=\"M7 17 17 7\"></path></svg></span></div></a></div></div></section><!--$--><!--/$--></main><footer class=\"border-white/10 border-t bg-[#0a0a0b] py-16 text-white/60\"><div class=\"mx-auto grid max-w-7xl gap-12 px-4 md:px-8 lg:grid-cols-[1.4fr_1fr_1fr_1fr_1fr]\"><div><a aria-label=\"Digital Applied\" class=\"inline-block\" href=\"/\"><img alt=\"Digital Applied\" loading=\"lazy\" width=\"160\" height=\"40\" decoding=\"async\" data-nimg=\"1\" style=\"color:transparent;height:24px;width:auto\" src=\"/logo-white.svg\"/></a><p class=\"mt-4 max-w-[320px] text-sm leading-relaxed\">An agentic growth partner for teams that would rather ship than schedule. Full-service digital marketing, delivered in days.</p><div class=\"mt-6\"><div class=\"flex gap-4 text-white/50\"><a aria-label=\"Follow us on X (Twitter)\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://x.com/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>X (Twitter)</title><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"></path></svg></a><a aria-label=\"Follow us on Facebook\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.facebook.com/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>Facebook</title><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"></path></svg></a><a aria-label=\"Follow us on Instagram\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.instagram.com/digital_applied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>Instagram</title><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z\"></path></svg></a><a aria-label=\"Follow us on LinkedIn\" class=\"text-muted-foreground transition-colors hover:text-foreground\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.linkedin.com/company/digitalapplied\"><svg class=\"h-5 w-5 text-white/50 hover:text-white transition-colors\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><title>LinkedIn</title><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"></path></svg></a></div></div></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Services</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/agentic-seo\">SEO</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/paid-media\">PPC</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/content-engine\">Content</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/web-development\">Web Dev</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/services/crm-automation\">CRM</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Company</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/about\">About</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/#process\">Process</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/contact\">Contact</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Resources</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog\">Blog</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/ai-tools\">AI Tools</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/privacy-policy\">Privacy</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/terms-of-service\">Terms</a></li></ul></div><div><h5 class=\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\">Topics</h5><ul class=\"space-y-1\"><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/ai-development\">AI Development</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/seo\">SEO</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/marketing\">Marketing</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/ecommerce\">eCommerce</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/business\">Business</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/crm-automation\">CRM &amp; Automation</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/category/development\">Development</a></li><li><a class=\"block py-1 text-sm transition-colors hover:text-white\" href=\"/blog/tags\">All Topics →</a></li></ul></div></div><div class=\"mx-auto mt-12 flex max-w-7xl flex-col items-start justify-between gap-3 border-white/10 border-t px-4 pt-6 font-mono text-[11px] text-white/40 uppercase tracking-widest sm:flex-row sm:items-center md:px-8\"><span>© <!-- -->2026<!-- --> Digital Applied</span><span>All systems nominal</span></div></footer></div><script src=\"/_next/static/chunks/0fh1k_r~b~e_o.js\" id=\"_R_\" async=\"\"></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,\"1:\\\"$Sreact.fragment\\\"\\n2:I[636356,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"GoogleTagManager\\\"]\\n3:I[728231,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"TooltipProvider\\\"]\\n4:I[989144,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\"]\\n5:I[818602,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\"]\\n6:I[636768,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/13b9o4nx8cmv5.js\\\"],\\\"default\\\"]\\ne:I[153782,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"default\\\",1]\\n:HL[\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"style\\\"]\\n:HL[\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"style\\\"]\\n:HL[\\\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n:HL[\\\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\\\",\\\"font\\\",{\\\"crossOrigin\\\":\\\"\\\",\\\"type\\\":\\\"font/woff2\\\"}]\\n7:Td63,\"])</script><script>self.__next_f.push([1,\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"LocalBusiness\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/#organization\\\",\\\"name\\\":\\\"Digital Applied\\\",\\\"legalName\\\":\\\"Digital Applied, s. r. o.\\\",\\\"url\\\":\\\"https://www.digitalapplied.com\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/logo-black.svg\\\",\\\"width\\\":\\\"512\\\",\\\"height\\\":\\\"512\\\"},\\\"image\\\":\\\"https://www.digitalapplied.com/opengraph-image\\\",\\\"description\\\":\\\"International digital marketing agency specializing in SEO, PPC, social media marketing, and AI-powered digital transformation for global clients\\\",\\\"foundingDate\\\":\\\"2019-05-01\\\",\\\"telephone\\\":\\\"+421-90-246-8050\\\",\\\"email\\\":\\\"info@digitalapplied.com\\\",\\\"address\\\":{\\\"@type\\\":\\\"PostalAddress\\\",\\\"streetAddress\\\":\\\"Priemyselná 668/7\\\",\\\"addressLocality\\\":\\\"Bratislava\\\",\\\"addressRegion\\\":\\\"Bratislava\\\",\\\"postalCode\\\":\\\"821 09\\\",\\\"addressCountry\\\":\\\"SK\\\"},\\\"geo\\\":{\\\"@type\\\":\\\"GeoCoordinates\\\",\\\"latitude\\\":48.142672,\\\"longitude\\\":17.168666},\\\"sameAs\\\":[\\\"https://x.com/digitalapplied\\\",\\\"https://www.facebook.com/digitalapplied\\\",\\\"https://www.instagram.com/digital_applied\\\",\\\"https://www.linkedin.com/company/digitalapplied\\\"],\\\"areaServed\\\":[{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"United States\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"United Kingdom\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"Canada\\\"},{\\\"@type\\\":\\\"Country\\\",\\\"name\\\":\\\"Australia\\\"},{\\\"@type\\\":\\\"Place\\\",\\\"name\\\":\\\"European Union\\\"},{\\\"@type\\\":\\\"Place\\\",\\\"name\\\":\\\"Worldwide\\\"}],\\\"priceRange\\\":\\\"€€€-€€€€\\\",\\\"paymentAccepted\\\":[\\\"Credit Card\\\",\\\"Wire Transfer\\\",\\\"PayPal\\\"],\\\"currenciesAccepted\\\":\\\"EUR, USD, GBP\\\",\\\"openingHoursSpecification\\\":[{\\\"@type\\\":\\\"OpeningHoursSpecification\\\",\\\"dayOfWeek\\\":[\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\"],\\\"opens\\\":\\\"07:30\\\",\\\"closes\\\":\\\"17:00\\\"},{\\\"@type\\\":\\\"OpeningHoursSpecification\\\",\\\"dayOfWeek\\\":\\\"Saturday\\\",\\\"opens\\\":\\\"08:00\\\",\\\"closes\\\":\\\"11:00\\\"}],\\\"contactPoint\\\":{\\\"@type\\\":\\\"ContactPoint\\\",\\\"telephone\\\":\\\"+421-90-246-8050\\\",\\\"contactType\\\":\\\"customer service\\\",\\\"email\\\":\\\"info@digitalapplied.com\\\",\\\"availableLanguage\\\":[\\\"English\\\",\\\"Slovak\\\"],\\\"areaServed\\\":\\\"Worldwide\\\"},\\\"vatID\\\":\\\"SK2120914510\\\",\\\"taxID\\\":\\\"52125670\\\",\\\"identifier\\\":{\\\"@type\\\":\\\"PropertyValue\\\",\\\"propertyID\\\":\\\"Company ID\\\",\\\"value\\\":\\\"52125670\\\"},\\\"hasOfferCatalog\\\":{\\\"@type\\\":\\\"OfferCatalog\\\",\\\"name\\\":\\\"Digital Marketing Services\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"SEO Optimization\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/agentic-seo\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"PPC Advertising\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/paid-media\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Social Media Marketing\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/social-media\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Web Development\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/web-development\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Content Marketing\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/content-engine\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"Analytics \\u0026 Insights\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/analytics\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"eCommerce Solutions\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/ecommerce\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"CRM \\u0026 Automation\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/crm-automation\\\"}},{\\\"@type\\\":\\\"Offer\\\",\\\"itemOffered\\\":{\\\"@type\\\":\\\"Service\\\",\\\"name\\\":\\\"AI \\u0026 Digital Transformation\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/services/ai-transformation\\\"}}]}}\"])</script><script>self.__next_f.push([1,\"0:{\\\"P\\\":null,\\\"c\\\":[\\\"\\\",\\\"blog\\\",\\\"agent-identity-credentials-non-human-access-2026-playbook\\\"],\\\"q\\\":\\\"\\\",\\\"i\\\":false,\\\"f\\\":[[[\\\"\\\",{\\\"children\\\":[\\\"(marketing)\\\",{\\\"children\\\":[\\\"blog\\\",{\\\"children\\\":[\\\"agent-identity-credentials-non-human-access-2026-playbook\\\",{\\\"children\\\":[\\\"__PAGE__\\\",{}]}]}]}]},\\\"$undefined\\\",\\\"$undefined\\\",16],[[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[\\\"$\\\",\\\"link\\\",\\\"0\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"link\\\",\\\"1\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-1\\\",{\\\"src\\\":\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-2\\\",{\\\"src\\\":\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-3\\\",{\\\"src\\\":\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]],[\\\"$\\\",\\\"html\\\",null,{\\\"className\\\":\\\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable instrument_serif_535d8616-module__GDyPrG__variable font-sans\\\",\\\"lang\\\":\\\"en\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L2\\\",null,{\\\"gtmId\\\":\\\"GTM-NGSFB45\\\"}],[\\\"$\\\",\\\"head\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"link\\\",null,{\\\"href\\\":\\\"/manifest.json\\\",\\\"rel\\\":\\\"manifest\\\"}],[\\\"$\\\",\\\"link\\\",null,{\\\"href\\\":\\\"/feed.xml\\\",\\\"rel\\\":\\\"alternate\\\",\\\"title\\\":\\\"Digital Applied Blog\\\",\\\"type\\\":\\\"application/rss+xml\\\"}],[\\\"$\\\",\\\"meta\\\",null,{\\\"content\\\":\\\"#18181b\\\",\\\"name\\\":\\\"theme-color\\\"}],[\\\"$\\\",\\\"meta\\\",null,{\\\"content\\\":\\\"DigitalApplied\\\",\\\"name\\\":\\\"apple-mobile-web-app-title\\\"}]]}],[\\\"$\\\",\\\"body\\\",null,{\\\"className\\\":\\\"antialiased\\\",\\\"suppressHydrationWarning\\\":true,\\\"children\\\":[\\\"$\\\",\\\"$L3\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":[[\\\"$\\\",\\\"$L6\\\",null,{}],[]],\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]}]}]]}]]}],{\\\"children\\\":[[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}],[\\\"$\\\",\\\"script\\\",\\\"script-1\\\",{\\\"src\\\":\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]],[[\\\"$\\\",\\\"script\\\",null,{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"$7\\\"},\\\"type\\\":\\\"application/ld+json\\\"}],\\\"$L8\\\"]]}],{\\\"children\\\":[\\\"$L9\\\",{\\\"children\\\":[\\\"$La\\\",{\\\"children\\\":[\\\"$Lb\\\",{},null,false,null]},null,false,\\\"$@c\\\"]},null,false,null]},null,false,null]},null,false,null],\\\"$Ld\\\",false]],\\\"m\\\":\\\"$undefined\\\",\\\"G\\\":[\\\"$e\\\",[\\\"$Lf\\\",\\\"$L10\\\"]],\\\"S\\\":true,\\\"h\\\":null,\\\"s\\\":\\\"$undefined\\\",\\\"l\\\":\\\"$undefined\\\",\\\"p\\\":\\\"$undefined\\\",\\\"d\\\":\\\"$undefined\\\",\\\"b\\\":\\\"0HHMAUnIFEhQnyhJt2Zxv\\\"}\\n\"])</script><script>self.__next_f.push([1,\"11:I[261824,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"LaunchBanner\\\"]\\n12:I[621915,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"HoverPrefetchLink\\\"]\\n13:I[103403,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"Image\\\"]\\n14:I[489752,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\"],\\\"MobileNav\\\"]\\n1f:I[953520,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogProgressBar\\\"]\\n2a:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"ViewportBoundary\\\"]\\n2c:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"MetadataBoundary\\\"]\\n2d:\\\"$Sreact.suspense\\\"\\n\"])</script><script>self.__next_f.push([1,\"8:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex min-h-screen flex-col\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L11\\\",null,{}],[\\\"$\\\",\\\"nav\\\",null,{\\\"className\\\":\\\"sticky top-0 z-40 w-full border-border/60 border-b bg-background/80 backdrop-blur-md supports-backdrop-filter:bg-background/70\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto max-w-7xl px-4 md:px-8\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex h-17 items-center justify-between\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"aria-label\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"flex items-center\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":[\\\"$\\\",\\\"$L13\\\",null,{\\\"alt\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"h-6 w-auto\\\",\\\"height\\\":280,\\\"priority\\\":true,\\\"src\\\":\\\"/logo-black.svg\\\",\\\"width\\\":1556}]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden items-center gap-1 md:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",\\\"/services\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/services\\\",\\\"children\\\":\\\"Services\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/ai-tools\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/ai-tools\\\",\\\"children\\\":\\\"AI Tools\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/blog\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/about\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/about\\\",\\\"children\\\":\\\"About\\\"}],[\\\"$\\\",\\\"$L12\\\",\\\"/contact\\\",{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/contact\\\",\\\"children\\\":\\\"Contact\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden items-center gap-2.5 md:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"rounded-lg px-3.5 py-2 font-medium text-[13.5px] text-zinc-800 transition-colors hover:bg-muted\\\",\\\"href\\\":\\\"/auth/login\\\",\\\"children\\\":\\\"Log in\\\"}],[\\\"$\\\",\\\"$L12\\\",null,{\\\"href\\\":\\\"/get-started\\\",\\\"children\\\":\\\"Start engines\\\",\\\"data-slot\\\":\\\"button\\\",\\\"data-variant\\\":\\\"default\\\",\\\"data-size\\\":\\\"sm\\\",\\\"className\\\":\\\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\\u0026_svg]:pointer-events-none [\\u0026_svg]:shrink-0 [\\u0026_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 gap-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 h-9.5 rounded-lg px-4\\\",\\\"ref\\\":null}]]}],[\\\"$\\\",\\\"$L14\\\",null,{\\\"items\\\":[{\\\"href\\\":\\\"/services\\\",\\\"label\\\":\\\"Services\\\"},{\\\"href\\\":\\\"/ai-tools\\\",\\\"label\\\":\\\"AI Tools\\\"},{\\\"href\\\":\\\"/blog\\\",\\\"label\\\":\\\"Blog\\\"},{\\\"href\\\":\\\"/about\\\",\\\"label\\\":\\\"About\\\"},{\\\"href\\\":\\\"/contact\\\",\\\"label\\\":\\\"Contact\\\"}]}]]}]}]}],[\\\"$\\\",\\\"main\\\",null,{\\\"className\\\":\\\"grow\\\",\\\"children\\\":[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":[[\\\"$\\\",\\\"$L6\\\",null,{}],[]],\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]}],[\\\"$\\\",\\\"footer\\\",null,{\\\"className\\\":\\\"border-white/10 border-t bg-[#0a0a0b] py-16 text-white/60\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto grid max-w-7xl gap-12 px-4 md:px-8 lg:grid-cols-[1.4fr_1fr_1fr_1fr_1fr]\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"aria-label\\\":\\\"Digital Applied\\\",\\\"className\\\":\\\"inline-block\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":[\\\"$\\\",\\\"$L13\\\",null,{\\\"alt\\\":\\\"Digital Applied\\\",\\\"height\\\":40,\\\"src\\\":\\\"/logo-white.svg\\\",\\\"style\\\":{\\\"height\\\":24,\\\"width\\\":\\\"auto\\\"},\\\"width\\\":160}]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"mt-4 max-w-[320px] text-sm leading-relaxed\\\",\\\"children\\\":\\\"An agentic growth partner for teams that would rather ship than schedule. Full-service digital marketing, delivered in days.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-6\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex gap-4 text-white/50\\\",\\\"children\\\":[\\\"$L15\\\",\\\"$L16\\\",\\\"$L17\\\",\\\"$L18\\\"]}]}]]}],\\\"$L19\\\",\\\"$L1a\\\",\\\"$L1b\\\",\\\"$L1c\\\"]}],\\\"$L1d\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"9:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":\\\"$undefined\\\",\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]]}]\\na:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L4\\\",null,{\\\"parallelRouterKey\\\":\\\"children\\\",\\\"error\\\":\\\"$undefined\\\",\\\"errorStyles\\\":\\\"$undefined\\\",\\\"errorScripts\\\":\\\"$undefined\\\",\\\"template\\\":[\\\"$\\\",\\\"$L5\\\",null,{}],\\\"templateStyles\\\":\\\"$undefined\\\",\\\"templateScripts\\\":\\\"$undefined\\\",\\\"notFound\\\":\\\"$undefined\\\",\\\"forbidden\\\":\\\"$undefined\\\",\\\"unauthorized\\\":\\\"$undefined\\\"}]]}]\\n1e:T6fb,\"])</script><script>self.__next_f.push([1,\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BlogPosting\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#article\\\",\\\"headline\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\",\\\"description\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\",\\\"datePublished\\\":\\\"2026-07-26T00:00:00+01:00\\\",\\\"dateModified\\\":\\\"2026-07-26T00:00:00+01:00\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/authors/digital-applied-team#author\\\",\\\"name\\\":\\\"Digital Applied Team\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/authors/digital-applied-team\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://www.digitalapplied.com/#organization\\\"},\\\"image\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\\\"},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook#webpage\\\"},\\\"isPartOf\\\":{\\\"@id\\\":\\\"https://www.digitalapplied.com/#website\\\"},\\\"articleSection\\\":\\\"CRM \\u0026 Automation\\\",\\\"keywords\\\":\\\"agent identity credentials, non-human identity management, SPIFFE SVID short-lived credentials, workload identity federation agents, GitHub App installation token scope, AWS IAM Roles Anywhere, AI agent audit trail\\\",\\\"about\\\":[{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"agent-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"non-human-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"workload-identity\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"spiffe\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"oauth\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"access-control\\\"},{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"audit-logging\\\"}]}\"])</script><script>self.__next_f.push([1,\"b:[\\\"$\\\",\\\"$1\\\",\\\"c\\\",{\\\"children\\\":[[[[\\\"$\\\",\\\"script\\\",\\\"blog-schema-BlogPosting-0\\\",{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"$1e\\\"},\\\"type\\\":\\\"application/ld+json\\\"}],[\\\"$\\\",\\\"script\\\",\\\"blog-schema-BreadcrumbList-1\\\",{\\\"dangerouslySetInnerHTML\\\":{\\\"__html\\\":\\\"{\\\\\\\"@context\\\\\\\":\\\\\\\"https://schema.org\\\\\\\",\\\\\\\"@type\\\\\\\":\\\\\\\"BreadcrumbList\\\\\\\",\\\\\\\"itemListElement\\\\\\\":[{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":1,\\\\\\\"name\\\\\\\":\\\\\\\"Home\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":2,\\\\\\\"name\\\\\\\":\\\\\\\"Blog\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/blog\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":3,\\\\\\\"name\\\\\\\":\\\\\\\"CRM \\u0026 Automation\\\\\\\",\\\\\\\"item\\\\\\\":\\\\\\\"https://www.digitalapplied.com/blog/category/crm-automation\\\\\\\"},{\\\\\\\"@type\\\\\\\":\\\\\\\"ListItem\\\\\\\",\\\\\\\"position\\\\\\\":4,\\\\\\\"name\\\\\\\":\\\\\\\"Giving Agents Their Own Identity, Not Your Credentials\\\\\\\"}]}\\\"},\\\"type\\\":\\\"application/ld+json\\\"}]],[\\\"$\\\",\\\"$L1f\\\",null,{}],[\\\"$\\\",\\\"nav\\\",null,{\\\"aria-label\\\":\\\"Breadcrumb\\\",\\\"className\\\":\\\"border-white/5 border-b bg-[#0a0a0b] text-white/55\\\",\\\"children\\\":[\\\"$\\\",\\\"ol\\\",null,{\\\"className\\\":\\\"mx-auto flex max-w-[1320px] items-center gap-2 px-4 py-3.5 font-mono text-[11px] uppercase tracking-[0.1em] md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"Home\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/\\\",\\\"children\\\":\\\"Home\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"Blog\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]]}],[\\\"$\\\",\\\"li\\\",\\\"CRM \\u0026 Automation\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"transition-colors hover:text-ignition-2\\\",\\\"href\\\":\\\"/blog/category/crm-automation\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],\\\"$L20\\\"]}],\\\"$L21\\\"]}]}],\\\"$L22\\\",\\\"$L23\\\",\\\"$L24\\\",\\\"$L25\\\",\\\"$L26\\\"],[\\\"$L27\\\"],\\\"$L28\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"29:[]\\nc:\\\"$W29\\\"\\nd:[\\\"$\\\",\\\"$1\\\",\\\"h\\\",{\\\"children\\\":[null,[\\\"$\\\",\\\"$L2a\\\",null,{\\\"children\\\":\\\"$L2b\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"hidden\\\":true,\\\"children\\\":[\\\"$\\\",\\\"$L2c\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$2d\\\",null,{\\\"name\\\":\\\"Next.Metadata\\\",\\\"children\\\":\\\"$L2e\\\"}]}]}],[\\\"$\\\",\\\"meta\\\",null,{\\\"name\\\":\\\"next-size-adjust\\\",\\\"content\\\":\\\"\\\"}]]}]\\nf:[\\\"$\\\",\\\"link\\\",\\\"0\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/0x5hulsdcv16j.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}]\\n10:[\\\"$\\\",\\\"link\\\",\\\"1\\\",{\\\"rel\\\":\\\"stylesheet\\\",\\\"href\\\":\\\"/_next/static/chunks/1375h7jyi~127.css\\\",\\\"precedence\\\":\\\"next\\\",\\\"crossOrigin\\\":\\\"$undefined\\\",\\\"nonce\\\":\\\"$undefined\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"2f:I[960562,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"\\\"]\\n32:I[485094,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogToc\\\"]\\n54:I[529530,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"default\\\"]\\n58:I[827892,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogFaq\\\"]\\n5f:I[488518,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"OutletBoundary\\\"]\\n15:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on X (Twitter)\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://x.com/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"X (Twitter)\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\\\"}]]}]}]\\n16:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on Facebook\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.facebook.com/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"Facebook\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\\\"}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"17:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on Instagram\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.instagram.com/digital_applied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"Instagram\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z\\\"}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"18:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"aria-label\\\":\\\"Follow us on LinkedIn\\\",\\\"className\\\":\\\"text-muted-foreground transition-colors hover:text-foreground\\\",\\\"href\\\":\\\"https://www.linkedin.com/company/digitalapplied\\\",\\\"rel\\\":\\\"noopener noreferrer\\\",\\\"target\\\":\\\"_blank\\\",\\\"children\\\":[\\\"$\\\",\\\"svg\\\",null,{\\\"className\\\":\\\"h-5 w-5 text-white/50 hover:text-white transition-colors\\\",\\\"fill\\\":\\\"currentColor\\\",\\\"viewBox\\\":\\\"0 0 24 24\\\",\\\"children\\\":[[\\\"$\\\",\\\"title\\\",null,{\\\"children\\\":\\\"LinkedIn\\\"}],[\\\"$\\\",\\\"path\\\",null,{\\\"d\\\":\\\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\\\"}]]}]}]\\n19:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Services\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/services/agentic-seo\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/agentic-seo\\\",\\\"children\\\":\\\"SEO\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/paid-media\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/paid-media\\\",\\\"children\\\":\\\"PPC\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/content-engine\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/content-engine\\\",\\\"children\\\":\\\"Content\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/web-development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/web-development\\\",\\\"children\\\":\\\"Web Dev\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/services/crm-automation\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"CRM\\\"}]}]]}]]}]\\n1a:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Company\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/about\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/about\\\",\\\"children\\\":\\\"About\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/#process\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/#process\\\",\\\"children\\\":\\\"Process\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/contact\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/contact\\\",\\\"children\\\":\\\"Contact\\\"}]}]]}]]}]\\n1b:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Resources\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/blog\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog\\\",\\\"children\\\":\\\"Blog\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/ai-tools\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/ai-tools\\\",\\\"children\\\":\\\"AI Tools\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/privacy-policy\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/privacy-policy\\\",\\\"children\\\":\\\"Privacy\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/terms-of-service\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/terms-of-service\\\",\\\"children\\\":\\\"Terms\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"1c:[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"mb-4 font-medium font-mono text-[13px] text-white uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Topics\\\"}],[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"space-y-1\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"/blog/category/ai-development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/ai-development\\\",\\\"children\\\":\\\"AI Development\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/seo\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/seo\\\",\\\"children\\\":\\\"SEO\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/marketing\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/marketing\\\",\\\"children\\\":\\\"Marketing\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/ecommerce\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/ecommerce\\\",\\\"children\\\":\\\"eCommerce\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/business\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/business\\\",\\\"children\\\":\\\"Business\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/crm-automation\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/crm-automation\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/category/development\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/category/development\\\",\\\"children\\\":\\\"Development\\\"}]}],[\\\"$\\\",\\\"li\\\",\\\"/blog/tags\\\",{\\\"children\\\":[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"block py-1 text-sm transition-colors hover:text-white\\\",\\\"href\\\":\\\"/blog/tags\\\",\\\"children\\\":\\\"All Topics →\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"1d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto mt-12 flex max-w-7xl flex-col items-start justify-between gap-3 border-white/10 border-t px-4 pt-6 font-mono text-[11px] text-white/40 uppercase tracking-widest sm:flex-row sm:items-center md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"© \\\",2026,\\\" Digital Applied\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":\\\"All systems nominal\\\"}]]}]\\n20:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white/25\\\",\\\"children\\\":\\\"/\\\"}]\\n21:[\\\"$\\\",\\\"li\\\",\\\"Agent Identity \\u0026 Credentials\\\",{\\\"className\\\":\\\"flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-white\\\",\\\"children\\\":\\\"Agent Identity \\u0026 Credentials\\\"}],false]}]\\n\"])</script><script>self.__next_f.push([1,\"22:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative isolate overflow-hidden bg-[#0a0a0b] pt-14 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"mask-[radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)] pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.035)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.035)_1px,transparent_1px)] bg-size-[56px_56px] [-webkit-mask-image:radial-gradient(ellipse_at_50%_30%,black_20%,transparent_75%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-[-5%] left-[-5%] size-[620px] blur-2xl [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.03)_40%,transparent_70%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-[20%] right-[-5%] size-[520px] blur-2xl [background:radial-gradient(circle,rgba(77,107,254,0.16),rgba(77,107,254,0.02)_40%,transparent_70%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative z-2 mx-auto max-w-[1320px] px-4 md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-9 flex flex-wrap items-center gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-ignition/30 bg-ignition/10 px-3 py-1.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm bg-ignition-2 px-3 py-1.5 font-medium font-mono text-[#0a0a0b] text-[11px] uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mr-1.5 inline-block size-[5px] animate-[ignition-pulse_1.2s_infinite] rounded-full bg-[#0a0a0b] align-[1px]\\\"}],\\\"Playbook\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\\\",\\\"children\\\":[14,\\\" min read\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"rounded-sm border border-white/15 px-3 py-1.5 font-mono text-[11px] text-white/65 uppercase tracking-[0.14em]\\\",\\\"children\\\":[\\\"Published \\\",\\\"July 26, 2026\\\"]}]]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-[18px] max-w-[900px] text-[17px] text-white/72 leading-normal tracking-[-0.005em]\\\",\\\"children\\\":[\\\"Non-human identity ·\\\",\\\" \\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"short-lived\\\"}],\\\" \\\",\\\"credentials · revocation measured in minutes\\\"]}],[\\\"$\\\",\\\"h1\\\",null,{\\\"className\\\":\\\"m-0 mb-6 max-w-[1100px] font-normal text-[clamp(40px,5.4vw,76px)] text-white leading-none tracking-[-0.035em]\\\",\\\"children\\\":[\\\"Giving Agents Their Own\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"Identity\\\"}],\\\", Not Your Credentials\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-11 max-w-[760px] text-[18px] text-white/72 leading-[1.6]\\\",\\\"children\\\":\\\"An agent that borrows a human’s session, API key, or OAuth token inherits three problems at once: every action is attributed to a person, the scope is everything that person can touch, and revocation means locking that person out. Workload identity already solved this for services — this playbook maps the same machinery onto agents, per run.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-12 flex flex-wrap items-center gap-5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex size-11 items-center justify-center rounded-full bg-[linear-gradient(135deg,var(--color-ignition),var(--color-ignition-2))] font-medium font-mono text-[#0a0a0b] text-[14px]\\\",\\\"children\\\":\\\"DA\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-medium text-[14px] text-white leading-[1.2]\\\",\\\"children\\\":\\\"Digital Applied Team\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-0.5 font-mono text-[10.5px] text-white/55 uppercase tracking-[0.08em]\\\",\\\"children\\\":\\\"Senior strategists · Published Jul 26, 2026\\\"}]]}]]}],\\\"$L30\\\"]}],\\\"$L31\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"33:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"23:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative bg-white dark:bg-zinc-950\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto grid max-w-[1320px] grid-cols-1 gap-10 px-6 py-16 md:px-8 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-14 xl:grid-cols-[260px_minmax(0,1fr)_280px]\\\",\\\"children\\\":[[\\\"$\\\",\\\"aside\\\",null,{\\\"className\\\":\\\"sticky top-[84px] hidden self-start lg:block\\\",\\\"children\\\":[\\\"$\\\",\\\"$L32\\\",null,{\\\"items\\\":[{\\\"id\\\":\\\"takeaways\\\",\\\"label\\\":\\\"Key takeaways\\\",\\\"number\\\":\\\"00\\\"},{\\\"id\\\":\\\"borrowed\\\",\\\"label\\\":\\\"The borrowed-credential trap\\\",\\\"number\\\":\\\"01\\\"},{\\\"id\\\":\\\"third-category\\\",\\\"label\\\":\\\"Agents are a third category\\\",\\\"number\\\":\\\"02\\\"},{\\\"id\\\":\\\"mechanisms\\\",\\\"label\\\":\\\"The mechanism shelf\\\",\\\"number\\\":\\\"03\\\"},{\\\"id\\\":\\\"delegation\\\",\\\"label\\\":\\\"Delegation done precisely\\\",\\\"number\\\":\\\"04\\\"},{\\\"id\\\":\\\"matrix\\\",\\\"label\\\":\\\"The decision matrix\\\",\\\"number\\\":\\\"05\\\"},{\\\"id\\\":\\\"revocation\\\",\\\"label\\\":\\\"Revocation \\u0026 audit\\\",\\\"number\\\":\\\"06\\\"},{\\\"id\\\":\\\"rollout\\\",\\\"label\\\":\\\"A pragmatic rollout\\\",\\\"number\\\":\\\"07\\\"},{\\\"id\\\":\\\"conclusion\\\",\\\"label\\\":\\\"Conclusion\\\",\\\"number\\\":\\\"08\\\"},{\\\"id\\\":\\\"faq\\\",\\\"label\\\":\\\"FAQ\\\",\\\"number\\\":\\\"09\\\"}]}]}],[\\\"$\\\",\\\"article\\\",null,{\\\"className\\\":\\\"prose-none min-w-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$33\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"lede\\\",\\\"children\\\":\\\"Agent identity is the least glamorous decision in an agentic build and the one most likely to hurt you later: when an AI agent runs on a human’s borrowed session, API key, or OAuth token, every action it takes is legally and forensically that person’s action, its access is whatever that person accumulated over years, and the only off switch also switches off the human.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"This is not a hypothetical concern for some future fleet of autonomous agents. It is the default state of most agent deployments right now, because the fastest way to get an agent working is to paste in a key that already works. The infrastructure world spent the last decade solving the same problem for services — short-lived certificates, token exchange, federation — and in 2026 the major identity vendors began shipping agent-specific versions of that machinery.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"This playbook covers why borrowed credentials fail, why agents are a third identity category distinct from both humans and classic service accounts, the named mechanisms that already exist (SPIFFE and SPIRE, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, RFC 8693 token exchange), and a decision matrix that maps five agent access patterns to an identity mechanism, a revocation path, and an audit granularity. It pairs with our\\\",\\\" \\\",\\\"$L34\\\",\\\" \\\",\\\"deliberately: RBAC governs what an identity may \\\",\\\"$L35\\\",\\\" once it exists — this post is about how that identity gets issued, scoped, rotated, and revoked in the first place.\\\"]}]]}],\\\"$L36\\\",\\\"$L37\\\",\\\"$L38\\\",\\\"$L39\\\",\\\"$L3a\\\",\\\"$L3b\\\",\\\"$L3c\\\",\\\"$L3d\\\",\\\"$L3e\\\",\\\"$L3f\\\",\\\"$L40\\\",\\\"$L41\\\",\\\"$L42\\\",\\\"$L43\\\",\\\"$L44\\\",\\\"$L45\\\",\\\"$L46\\\",\\\"$L47\\\",\\\"$L48\\\",\\\"$L49\\\",\\\"$L4a\\\",\\\"$L4b\\\",\\\"$L4c\\\",\\\"$L4d\\\",\\\"$L4e\\\",\\\"$L4f\\\",\\\"$L50\\\",\\\"$L51\\\",\\\"$L52\\\"]}],\\\"$L53\\\"]}]}]\\n\"])</script><script>self.__next_f.push([1,\"24:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"relative isolate overflow-hidden bg-[#0a0a0b] py-20 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute inset-0 [-webkit-mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)] [background-image:linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] [background-size:56px_56px] [mask-image:radial-gradient(ellipse_at_center,black_30%,transparent_75%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute top-1/2 left-1/2 size-[900px] -translate-x-1/2 -translate-y-1/2 blur-[30px] [background:radial-gradient(circle,rgba(255,107,26,0.18),rgba(255,107,26,0.04)_30%,transparent_65%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative z-[2] mx-auto grid max-w-[1320px] items-center gap-14 px-4 md:px-8 lg:grid-cols-[1.3fr_1fr]\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-4.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"h-px w-5 bg-ignition\\\"}],\\\"Build agents on their own identity\\\"]}],[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mb-4.5 font-light text-[clamp(30px,3.8vw,50px)] leading-[1.04] tracking-[-0.03em]\\\",\\\"children\\\":[\\\"Agents you can revoke in minutes are agents you can\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"bg-clip-text font-normal font-serif text-transparent italic\\\",\\\"style\\\":{\\\"backgroundImage\\\":\\\"linear-gradient(180deg, #fff 40%, var(--color-ignition-2) 80%, var(--color-ignition) 100%)\\\"},\\\"children\\\":\\\"actually trust\\\"}],\\\".\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-7 max-w-[520px] text-[16px] text-white/72 leading-[1.6]\\\",\\\"children\\\":\\\"Our team designs agent identity, permissions, and audit rails as part of every agentic build — CRM agents, workflow automation, and multi-agent systems that can be trusted with systems of record, delivered in days not quarters.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-6 flex flex-wrap gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"group relative inline-flex h-[52px] items-center justify-center gap-2 overflow-hidden rounded-lg bg-[#0a0a0b] px-7 font-medium text-[15px] text-white shadow-[0_0_0_1px_#0a0a0b,0_10px_30px_-10px_rgba(255,107,26,0.4)] transition-transform hover:-translate-y-0.5\\\",\\\"href\\\":\\\"/get-started\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"relative z-[1]\\\",\\\"children\\\":\\\"Get started\\\"}],[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":[[\\\"path\\\",{\\\"d\\\":\\\"M7 7h10v10\\\",\\\"key\\\":\\\"1tivn9\\\"}],[\\\"path\\\",{\\\"d\\\":\\\"M7 17 17 7\\\",\\\"key\\\":\\\"1vkiza\\\"}]],\\\"className\\\":\\\"lucide-arrow-up-right relative z-[1] size-4 transition-transform group-hover:translate-x-0.5\\\"}]]}],[\\\"$\\\",\\\"$L12\\\",null,{\\\"className\\\":\\\"inline-flex h-[52px] items-center justify-center gap-2 rounded-lg border border-white/15 bg-white/5 px-7 font-medium text-[15px] text-white transition-colors hover:border-white/30 hover:bg-white/10\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"Explore CRM \\u0026 automation\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-wrap gap-x-7 gap-y-2 font-mono text-[11px] text-white/55 uppercase tracking-[0.1em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",\\\"0\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Free consultation\\\"]}],[\\\"$\\\",\\\"span\\\",\\\"1\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Expert guidance\\\"]}],[\\\"$\\\",\\\"span\\\",\\\"2\\\",{\\\"className\\\":\\\"inline-flex items-center gap-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition\\\"}],\\\"Tailored solutions\\\"]}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.04] p-7\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"18px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],\\\"$L55\\\",\\\"$L56\\\",\\\"$L57\\\"]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"25:[\\\"$\\\",\\\"$L58\\\",null,{\\\"eyebrow\\\":\\\"FAQ · Agent identity\\\",\\\"id\\\":\\\"faq\\\",\\\"items\\\":[{\\\"question\\\":\\\"Why shouldn’t an AI agent just use my API key or session?\\\",\\\"answer\\\":\\\"Three structural reasons. Attribution: every action the agent takes is logged as you, so after an incident nobody can separate your actions from the agent’s — a real problem in any compliance review. Scope: your account carries everything you’ve accumulated over years, so a task that needed read access to one module inherits write access to everything you can touch. Revocation: the only way to cut the agent off is to kill your own session or rotate your own key, locking you out and breaking every other integration that shared the credential. A separate agent identity fixes all three at once — actions attribute to the agent run, scope is designed per task, and revocation touches nothing human.\\\"},{\\\"question\\\":\\\"What is a non-human identity (NHI), and how big is the problem?\\\",\\\"answer\\\":\\\"Non-human identity is the umbrella term for principals that aren’t people: service accounts, API keys, OAuth tokens, machine certificates, and now AI agent credentials. Per the Cloud Security Alliance’s May 2026 whitepaper, NHIs outnumber human users by an average of 45:1 across enterprises, reaching 144:1 in cloud-native environments — figures worth treating as directional rather than audited, since even CSA-adjacent summaries circulate varying numbers. The governance gap is the real issue: traditional IAM tooling is built around humans who can answer MFA prompts and attend access reviews, and as Microsoft’s own documentation concedes, it is hard to track when a workload identity is created or when it should be revoked. Agents make that gap wider because they multiply per-run and behave dynamically.\\\"},{\\\"question\\\":\\\"What are SPIFFE and SPIRE, and do they apply to agents?\\\",\\\"answer\\\":\\\"SPIFFE (Secure Production Identity Framework For Everyone) is an open standard that issues short-lived cryptographic identity documents called SVIDs — X.509 certificates or JWTs — to workloads; SPIRE is its production implementation. The key property is attestation-based issuance: identity is granted by verifying what the workload actually is at runtime, not by checking a pre-provisioned secret, and SVIDs rotate automatically. The CSA’s non-human identity guidance names SPIFFE/SPIRE specifically as the replacement for static API keys. For agents, the model transfers directly: an autonomous or scheduled agent gets its identity from what it verifiably is, the credential expires on its own, and revoking it — by denying the attestation or revoking the SVID — never touches a human account.\\\"},{\\\"question\\\":\\\"What is workload identity federation?\\\",\\\"answer\\\":\\\"Workload identity federation lets a workload running outside a cloud — on-prem, in another cloud, in a CI/CD runner, or as an AI agent — obtain short-lived cloud credentials by presenting a token from its own identity provider, with no long-lived key file ever distributed. In Google Cloud’s implementation, the Security Token Service validates the external credential and exchanges it for a short-lived Google Cloud token; supported providers include AWS, Azure, GitHub and GitLab OIDC, Kubernetes, Okta, and any generic OIDC or SAML 2.0 identity provider. AWS’s analogous mechanism, IAM Roles Anywhere, exchanges an X.509 certificate for temporary credentials valid from 15 minutes to 12 hours. In both cases the practical win is the same: nothing long-lived exists for an agent to leak.\\\"},{\\\"question\\\":\\\"What’s the difference between delegation and impersonation in RFC 8693?\\\",\\\"answer\\\":\\\"RFC 8693 (OAuth 2.0 Token Exchange, January 2020) formalizes both. Under impersonation, the holder of the new token becomes indistinguishable from the original subject and takes on all of its rights — which is exactly the borrowed-credential failure mode, made official. Under delegation, the acting party keeps its own separate identity while exercising rights the subject granted; the request carries a required subject_token (who the work is for) and an optional actor_token (who is doing it), and both identities survive into the minted token. Combined with the audience parameter — which restricts the token to a named downstream service — delegation gives you the property agents need: the action is traceable to both the human it served and the agent that performed it, on a credential valid only where the task required.\\\"},{\\\"question\\\":\\\"Is OAuth 2.1 finalized, and should agent builds wait for it?\\\",\\\"answer\\\":\\\"OAuth 2.1 is still a draft as of mid-2026 — not a ratified RFC — so cite and treat it accordingly. It consolidates OAuth 2.0 with PKCE (RFC 7636) and native-app guidance (RFC 8252) into one document, removes the implicit grant entirely, eliminates the resource-owner password credentials grant, and makes PKCE mandatory for every authorization-code client. There is no reason to wait: everything OAuth 2.1 prescribes can be adopted today on top of OAuth 2.0, and its deletions are a preview of what agent-facing authorization servers will stop accepting. RFC 8693 token exchange, by contrast, is a finished Standards Track RFC and safe to build against now.\\\"},{\\\"question\\\":\\\"How should sub-agents spawned by a parent agent be identified?\\\",\\\"answer\\\":\\\"Give each sub-agent its own unique identifier with a verifiable cryptographic link back to its parent. That is the Cloud Security Alliance’s prescription — its agentic IAM guidance states that sub-agents are separate instances, each with a unique ID, but with a verifiable link back to the parent — and it is the design Microsoft ships in Entra Agent ID, where agent identity blueprints create individual identities with tracked parent-child relationships so one policy governs every instance from the same template. The payoff comes during incidents: with lineage, a multi-agent failure is a reconstructible sequence of named runs; without it, everything collapses into one anonymous automation blob. Pair the lineage with per-child revocation, so a misbehaving sub-agent can be killed without touching the parent or its siblings.\\\"},{\\\"question\\\":\\\"What does ‘good’ look like for agent credential revocation and audit?\\\",\\\"answer\\\":\\\"Two bars, both concrete. Revocation: the CSA’s May 2026 whitepaper prescribes time-to-revoke measured in minutes, via pre-authorized automated workflows triggered by exposure signals — not manual, ticket-based deprovisioning. Structurally, every revocation path should work without locking a human out; if it can’t, the agent never had its own identity. Audit: every log line should name a specific agent run, not just an automation account — via per-run correlation IDs, actor-plus-subject pairs on delegated calls, certificate serials on SVIDs, parent lineage on sub-agents, and signature hashes on webhook invocations. Vendor platforms are converging here too: Microsoft’s Entra Agent ID logs all agent authentication and activity to a dedicated agent audit surface, separate from human sign-in logs.\\\"}],\\\"title\\\":\\\"$L59\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"26:[\\\"$\\\",\\\"section\\\",null,{\\\"className\\\":\\\"bg-zinc-100 py-24 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mx-auto max-w-[1320px] px-4 md:px-8\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-10\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-3.5 inline-flex items-center gap-2.5 font-mono text-[11px] text-zinc-500 uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"h-px w-5 bg-ignition\\\"}],\\\"Related dispatches\\\"]}],[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 font-normal text-[clamp(30px,3.6vw,44px)] text-zinc-950 leading-[1.05] tracking-[-0.025em] dark:text-white\\\",\\\"children\\\":[\\\"Continue exploring\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif italic\\\",\\\"children\\\":\\\"agentic operations.\\\"}]]}],\\\"$undefined\\\"]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"grid gap-4 md:grid-cols-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"$L12\\\",\\\"amp-event-driven-orbs-self-scheduling-agents-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Amp Turned Agents Into Always-On Services This Week\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Amp shipped five releases in seven days that turn agents into persistent services. Event-driven orbs expose durable webhook URLs its own docs call a credential.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 26, 2026\\\",\\\" · \\\",12,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}],[\\\"$\\\",\\\"$L12\\\",\\\"claude-voice-mode-opus-sonnet-connectors-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/claude-voice-mode-opus-sonnet-connectors-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Claude Voice Mode Grows Up: Opus, Sonnet, and Connectors\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Claude voice mode now reaches Opus and Sonnet on paid plans, with Gmail, Calendar, Docs and Slack connectors working aloud. Still beta and turn-based.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 25, 2026\\\",\\\" · \\\",11,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",\\\"$L5a\\\"]}]]}]]}],\\\"$L5b\\\",\\\"$L5c\\\",\\\"$L5d\\\",\\\"$L5e\\\"]}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"27:[\\\"$\\\",\\\"script\\\",\\\"script-0\\\",{\\\"src\\\":\\\"/_next/static/chunks/10xegheq_2_g2.js\\\",\\\"async\\\":true,\\\"nonce\\\":\\\"$undefined\\\"}]\\n28:[\\\"$\\\",\\\"$L5f\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"$2d\\\",null,{\\\"name\\\":\\\"Next.MetadataOutlet\\\",\\\"children\\\":\\\"$@60\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"81:I[338137,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogShareButtons\\\"]\\n82:I[372967,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\",\\\"/_next/static/chunks/0bok.jphy_~lu.js\\\",\\\"/_next/static/chunks/039fygmp~-jt3.js\\\",\\\"/_next/static/chunks/10xegheq_2_g2.js\\\"],\\\"BlogNewsletterForm\\\"]\\n30:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-wrap gap-x-6 gap-y-2 border-white/10 border-l pl-6 font-mono text-[11px] text-white/50 uppercase tracking-widest max-sm:gap-x-4 max-sm:border-l-0 max-sm:pl-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"Published\\\",{\\\"children\\\":[\\\"Published\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"Jul 26, 2026\\\"}]]}],[\\\"$\\\",\\\"div\\\",\\\"Read time\\\",{\\\"children\\\":[\\\"Read time\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"14 min\\\"}]]}],[\\\"$\\\",\\\"div\\\",\\\"Sources\\\",{\\\"children\\\":[\\\"Sources\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mt-1 block text-[12px] text-white tracking-[0.04em]\\\",\\\"children\\\":\\\"IETF, CSA \\u0026 vendor docs\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"31:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-14 grid grid-cols-2 gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 md:grid-cols-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"NHIs per human user\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"NHIs per human user\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"45\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\":1\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"enterprise average, per CSA\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 inline-flex items-center gap-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"children\\\":\\\"▲\\\"}],\\\"144:1 cloud-native\\\"]}],null]}],[\\\"$\\\",\\\"div\\\",\\\"GitHub App token\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"GitHub App token\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"1\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"hr\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"installation token lifetime\\\"}],null,null]}],[\\\"$\\\",\\\"div\\\",\\\"AWS temp credentials\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AWS temp credentials\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"15\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"min\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"minimum session · max 12 hr\\\"}],null,null]}],[\\\"$\\\",\\\"div\\\",\\\"Fine-grained PAT\\\",{\\\"className\\\":\\\"relative bg-[#0a0a0b] px-5 py-6\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-white/50 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Fine-grained PAT\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[40px] text-white leading-none tracking-[-0.03em]\\\",\\\"children\\\":[\\\"30\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"ml-0.5 font-mono text-[16px] text-ignition\\\",\\\"children\\\":\\\"d\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-3 text-[11.5px] text-white/55 leading-[1.4]\\\",\\\"children\\\":\\\"default expiry · max 366 d\\\"}],null,null]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"34:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\\\",\\\"children\\\":\\\"agentic RBAC design patterns guide\\\"}]\\n35:[\\\"$\\\",\\\"em\\\",null,{\\\"children\\\":\\\"do\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"36:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-12 scroll-mt-[90px] border-zinc-950 border-t-2 pt-7 dark:border-white\\\",\\\"id\\\":\\\"takeaways\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-6 flex items-center gap-2.5 font-mono text-[11px] text-zinc-950 uppercase tracking-[0.14em] dark:text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition shadow-[0_0_8px_var(--color-ignition)]\\\"}],\\\"Key takeaways\\\"]}],[\\\"$\\\",\\\"ol\\\",null,{\\\"className\\\":\\\"m-0 list-none p-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"Borrowed credentials fail three ways at once.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"01\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Borrowed credentials fail three ways at once.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"An agent on a human’s session or API key mis-attributes every action to a person, runs over-scoped by default, and cannot be revoked without locking that person out of their own accounts.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"Agents are a third identity category.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"02\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Agents are a third identity category.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Not human, not classic service account. Microsoft’s Entra documentation now carves agents out explicitly: they make dynamic decisions and adapt behavior, so identity must be issued per run and scoped per task.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"The mechanisms already exist and are shipping.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"03\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"The mechanisms already exist and are shipping.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"SPIFFE/SPIRE issues auto-rotating SVIDs on workload attestation; workload identity federation eliminates key files; GitHub App tokens expire in 1 hour; AWS IAM Roles Anywhere trades an X.509 cert for 15-minute-to-12-hour credentials.\\\"}]]}]]}],[\\\"$\\\",\\\"li\\\",\\\"Delegation is not impersonation — RFC 8693 encodes the difference.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"04\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Delegation is not impersonation — RFC 8693 encodes the difference.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Token exchange carries a subject token (who the work is for) and an actor token (who is doing it), plus an audience parameter that restricts where the minted token is valid. Agent chains need all three.\\\"}]]}]]}],\\\"$L61\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"37:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"borrowed\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"01\\\",\\\" — \\\",\\\"The Failure Mode\\\"]}],[\\\"Borrowed credentials fail\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"three\\\"}],\\\" \\\",\\\"ways at once.\\\"]]}]\\n62:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"38:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$62\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Walk through what actually happens when an agent inherits a human’s credentials — a session cookie lifted from a browser profile, a personal API key pasted into an environment variable, or an OAuth token granted to “you” that a background process now replays.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"First, attribution collapses.\\\"}],\\\" Every record the agent creates, every email it sends, every deletion it performs is logged as the human whose credential it holds. When something goes wrong at 2 a.m. on a Saturday, the audit trail points at a person who was asleep. There is no way, from the logs alone, to separate what the human did from what the agent did — which means there is no way to scope an incident, satisfy a compliance review, or defend the human.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Second, scope is inherited, not designed.\\\"}],\\\" A human account accumulates access over years — old projects, admin roles granted for one migration and never removed, personal repositories next to production ones. The agent gets all of it. The task needed read access to one CRM module; the credential carries write access to the entire org. Classic personal access tokens are the sharpest version of this: before fine-grained scoping, a single token could reach every repository its owner could.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Third, revocation takes the human down too.\\\"}],\\\" The only way to cut off an agent holding your session or key is to kill the session or rotate the key — locking you out of your own accounts mid-incident, breaking every other integration that shared the credential, and turning a contained problem into an outage. Anything that cannot be revoked independently was never really under control.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"And the definition of “credential” is wider than most teams assume. This week’s Amp release made the point concretely: a durable webhook URL that triggers an agent functions as a credential — anyone holding the URL can invoke the agent — which is why Amp’s own docs treat those URLs as secrets and sign the payloads, as we covered in\\\",\\\" \\\",\\\"$L63\\\",\\\". Identity for agents is not just “which API key” — it is every artifact that grants the power to act.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"39:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"The trap in one sentence\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"A borrowed credential makes the agent\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"indistinguishable\\\"}],\\\" \\\",\\\"from its human — which is precisely the property you never want. Attribution, scoping, and revocation all depend on the agent being a\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"separate, named principal\\\"}],\\\" whose access can be granted, narrowed, and destroyed without touching anyone else.\\\"]}]]}]\\n3a:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"third-category\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"02\\\",\\\" — \\\",\\\"Identity Taxonomy\\\"]}],[\\\"Agents are a\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"third\\\"}],\\\" \\\",\\\"identity category.\\\"]]}]\\n64:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$64\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Most 2026 coverage lumps everything non-human into one “non-human identity” bucket. That framing hides the decision that matters. In practice there are three categories with different lifecycles, and the tooling built for the first two fails on the third.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The scale problem is real regardless of whose count you trust. Per the Cloud Security Alliance’s May 2026 whitepaper on non-human identity governance, non-human identities — service accounts, API keys, OAuth tokens, machine certificates, agent credentials — outnumber human users by an average of 45:1 across enterprises, rising to 144:1 in cloud-native environments. Worth noting: different summaries of the CSA’s own research circulate different headline figures for this problem, which is itself a tell for how unsettled the industry’s accounting of its non-human population still is. Treat any single ratio as directional; the direction is unambiguous.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Microsoft’s Entra documentation puts the operational gap plainly: “It’s also hard to track when a workload identity is created or when it should be revoked.” That sentence describes classic service accounts. Agents make it worse, and Microsoft now says so explicitly — its workload-identity docs carve out AI agents as a distinct category of machine identity: “Unlike traditional workloads that execute predetermined logic, AI agents make dynamic decisions and adapt behavior.”\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"3c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Category 01\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Human identity\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"Interactive · MFA · session-bound\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Built around a person who can answer a prompt: passwords, MFA challenges, conditional access, re-authentication on risk signals. None of that machinery fires when the caller is a process — there is nobody to approve the push notification.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Traditional IAM’s home turf\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-zinc-500\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Category 02\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Service account\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\\\",\\\"children\\\":\\\"Long-lived · few · rarely rotated\\\"}]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Predetermined logic, stable scope, a handful per system. The classic failure is the forgotten key — powerful, unowned, unrotated for years — but at least the behavior behind it is static and reviewable.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Classic non-human identity\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"16px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],\\\"$L65\\\",\\\"$L66\\\",\\\"$L67\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"68:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$68\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The vendor proof that this third category is real: Microsoft Entra Agent ID — documentation first published April 14, 2026 and updated June 24, 2026 — is a shipping identity framework specifically for AI agents, layered on Entra, speaking OAuth 2.0, MCP, and A2A. Its design choices read like a checklist of everything borrowed credentials get wrong: “agent identity blueprints” mint individual agent identities from templates with tracked parent-child relationships, so one policy governs every instance spawned from the same template; third-party agents built on non-Microsoft platforms — Microsoft names AWS Bedrock and n8n — can be brought under the same governance via an auth SDK sidecar or standard workload identity federation. Licensing is its own snapshot-in-time detail (full functionality sits behind Microsoft 365 E7 or an E5 add-on, with standalone Entra tiers below that), but the architectural signal matters more than the packaging: Microsoft decided agents need their own principal type.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The same conclusion is coming from the standards side. NIST’s zero-trust architecture guidance treats every machine-to-machine call as requiring explicit authorization regardless of network position — no implicit trust for being “inside the VPC” — which is the baseline assumption every mechanism in the next section builds on.\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"3e:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"mechanisms\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"03\\\",\\\" — \\\",\\\"Named Mechanisms\\\"]}],[\\\"The mechanism shelf:\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"short-lived\\\"}],\\\" \\\",\\\"beats long-lived, everywhere.\\\"]]}]\\n69:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"3f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$69\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"None of this requires inventing anything. Four families of mechanism, all shipping today, already issue exactly the kind of credential an agent should hold: short-lived, workload-scoped, audit-attributable, and revocable on their own.\\\"}],[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"SPIFFE / SPIRE — identity from attestation, not secrets\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"SPIFFE (Secure Production Identity Framework For Everyone) issues short-lived cryptographic identity documents called SVIDs — X.509 certificates or JWTs — to workloads. The decisive property is that issuance is tied to \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"workload attestation\\\"}],\\\": SPIRE verifies what the workload actually is at runtime, rather than trusting whoever holds a pre-provisioned secret. SVIDs rotate automatically, and trust domains can federate across organizations. For agents, that means the identity follows the running process, not a string in an env file.\\\"]}],[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"Workload identity federation — the end of the key file\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Google Cloud’s workload identity federation lets an external workload — on-prem, another cloud, a CI/CD runner, an AI agent — present a credential from its own identity provider, which Google’s Security Token Service validates and exchanges for a short-lived Google Cloud token. No long-lived service-account key file is ever distributed. It federates against AWS, Azure, Active Directory, GitHub and GitLab OIDC, Kubernetes, Okta, and any generic OIDC or SAML 2.0 provider, and supports both direct IAM grants to the federated identity and service-account impersonation.\\\"}]]}]\\n\"])</script><script>self.__next_f.push([1,\"40:[\\\"$\\\",\\\"blockquote\\\",null,{\\\"className\\\":\\\"my-7 border-ignition border-l-[3px] bg-zinc-50 px-6 py-5 font-serif text-[19px] text-zinc-950 italic leading-normal tracking-[-0.005em] dark:bg-zinc-900 dark:text-white\\\",\\\"children\\\":[\\\"\\\\\\\"Service account keys are powerful credentials, and can present a security risk if they are not managed correctly.\\\\\\\"\\\",[\\\"$\\\",\\\"cite\\\",null,{\\\"className\\\":\\\"mt-3 block font-medium font-mono text-[11px] text-zinc-500 uppercase not-italic tracking-widest\\\",\\\"children\\\":\\\"— Google Cloud IAM documentation, workload identity federation\\\"}]]}]\\n6a:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"41:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$6a\\\",\\\"children\\\":[[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"AWS IAM Roles Anywhere — certificates in, sessions out\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"AWS’s version replaces the long-lived Access Key ID and Secret Access Key pair with an X.509 certificate presented by the workload, exchanged for temporary STS credentials valid from 15 minutes up to 12 hours. The supporting Credential Helper is under active development inside this year’s window — v1.8.0 (March 5, 2026) added ML-DSA post-quantum signature support, and v1.8.4 (June 9, 2026) patched security vulnerabilities — a useful signal that cert-based machine credentials are a maintained, first-class path, not a legacy corner.\\\"}],[\\\"$\\\",\\\"h3\\\",null,{\\\"children\\\":\\\"GitHub App installation tokens \\u0026 fine-grained PATs\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"GitHub offers the most concrete everyday example. A GitHub App installation access token expires one hour after issuance, can never exceed what the app itself was granted, and can be scoped down further at request time — to a subset of repositories (up to 500) and a subset of permissions. GitHub has also introduced a stateless installation token format that replaces the old opaque 40-character string with a self-describing, verifiable credential. Fine-grained personal access tokens complete the picture for human-adjacent automation: 30-day default expiry, extendable to 366 days (or “never,” where org policy permits), scoped to a single user or org and to named repositories — unlike classic PATs, which granted blanket access to everything their owner could reach.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Two adjacent playbooks pair with this shelf. Rotation cadence and storage for whatever secrets remain is covered in our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/secrets-management-api-key-rotation-2026-engineering-reference\\\",\\\"children\\\":\\\"secrets management and API key rotation reference\\\"}],\\\", and for a concrete consumer-facing version of “hand the agent a scoped credential instead of your login,” see how\\\",\\\" \\\",\\\"$L6b\\\",\\\".\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"42:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"GitHub App token\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Installation token lifetime\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"1\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"hr\\\"}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Expires one hour after issuance, capped at the app’s own grants, and downscopable at request time to specific repositories (up to 500) and permissions.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"Stateless verifiable format\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AWS IAM Roles Anywhere\\\"}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Minimum session lifetime\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"15\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"min\\\"}]]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"An X.509 certificate is exchanged for temporary STS credentials valid from 15 minutes to 12 hours. No long-lived access-key pair is ever distributed.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"Helper v1.8.4 · Jun 2026\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 rounded-2xl border border-zinc-200 bg-white p-6 md:flex-row md:gap-8 md:p-7 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-start gap-4 md:w-[220px] md:shrink-0 md:flex-col md:gap-3\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col gap-1.5\\\",\\\"children\\\":[\\\"$L6c\\\",\\\"$L6d\\\"]}],\\\"$L6e\\\"]}],\\\"$L6f\\\",\\\"$L70\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"43:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"delegation\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"04\\\",\\\" — \\\",\\\"On-Behalf-Of\\\"]}],[\\\"Delegation is not\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"impersonation\\\"}],\\\".\\\"]]}]\\n71:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"44:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$71\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The hardest agent-identity case is the most common one: an agent acting on behalf of a specific human. Get this wrong and you are back to the borrowed-credential trap with extra steps. The formal machinery for getting it right has existed since January 2020: RFC 8693, OAuth 2.0 Token Exchange — a Standards Track RFC defining an HTTP/JSON protocol for trading one security token for another.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"RFC 8693 draws exactly the distinction this post is about.\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Impersonation\\\"}],\\\" means the new token’s holder becomes indistinguishable from the original subject, taking on all of its rights — the protocol-level formalization of the trap in Section 01.\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"Delegation\\\"}],\\\" means the acting party keeps its own separate identity while exercising rights granted by the subject — it acts as an agent of the subject rather than becoming it. The request format encodes the difference structurally: a required\\\",\\\" \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"subject_token\\\"}],\\\" identifies who the request is on behalf of, and an optional \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"actor_token\\\"}],\\\" identifies who is actually making the call. Both identities survive into the minted token, which is what makes the downstream audit trail reconstructible.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"The third piece is the \\\",[\\\"$\\\",\\\"code\\\",null,{\\\"children\\\":\\\"audience\\\"}],\\\" parameter: the client names the specific downstream service the token is being requested for, and the authorization server mints an\\\",\\\" \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"audience-restricted\\\"}],\\\" token valid there and nowhere else. An agent that needs to read a calendar gets a token the CRM will reject. Notably, RFC 8693 leaves the token formats themselves out of scope — it is a protocol shell, which is why Google, Microsoft, GitHub, and HashiCorp each implement the pattern with their own token types. The pattern transfers; the strings do not.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"On the broader OAuth front, precision matters: OAuth 2.1 is still a draft, not a ratified RFC. It consolidates OAuth 2.0 with PKCE and native-app guidance, removes the implicit grant entirely, eliminates the resource-owner password grant, and makes PKCE mandatory for every authorization-code client. Directionally it is where agent-facing OAuth deployments should already be — but cite it as a draft, because that is what it is.\\\"}],\\\"$L72\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"45:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"Where RBAC fits\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"These are complementary layers, not competing ones. This playbook covers how an agent identity is\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"issued, scoped, rotated, and revoked\\\"}],\\\". Our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agentic-ai-rbac-design-patterns-implementation-2026\\\",\\\"children\\\":\\\"agentic RBAC design patterns post\\\"}],\\\" \\\",\\\"covers what that identity may \\\",[\\\"$\\\",\\\"strong\\\",null,{\\\"children\\\":\\\"do\\\"}],\\\" once it exists — roles, permission boundaries, and approval gates. You need both: perfect RBAC on a borrowed credential still mis-attributes every action, and a perfectly-issued identity with sloppy permissions is just a well-labeled skeleton key.\\\"]}]]}]\\n46:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"matrix\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"05\\\",\\\" — \\\",\\\"Decision Matrix\\\"]}],[\\\"Five access patterns,\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"one\\\"}],\\\" \\\",\\\"table.\\\"]]}]\\n73:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30047:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$73\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Vendor documentation explains each mechanism in isolation; nobody lines them up against the access patterns real agent deployments actually have. The matrix below is our mapping: for each of the five ways an agent typically obtains access, the identity mechanism that fits, the credential lifetime you should expect, the revocation path when something goes wrong, and the audit granularity you get for incident reconstruction.\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"48:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"not-prose my-8 overflow-x-auto rounded-2xl border border-zinc-200 dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"table\\\",null,{\\\"className\\\":\\\"w-full border-collapse text-left text-[14px]\\\",\\\"children\\\":[[\\\"$\\\",\\\"caption\\\",null,{\\\"className\\\":\\\"sr-only\\\",\\\"children\\\":\\\"Agent identity decision matrix: five agent access patterns mapped to the identity mechanism that fits, typical credential lifetime, revocation path, and audit granularity. Compiled by Digital Applied from GitHub, Google Cloud, AWS, Microsoft Entra, SPIFFE, IETF RFC 8693, and Cloud Security Alliance documentation, retrieved July 2026.\\\"}],[\\\"$\\\",\\\"thead\\\",null,{\\\"children\\\":[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"bg-zinc-950 text-white dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Access pattern\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Identity mechanism\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Typical credential lifetime\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Revocation path\\\"}],[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-[12px] uppercase tracking-[0.06em]\\\",\\\"scope\\\":\\\"col\\\",\\\"children\\\":\\\"Audit granularity\\\"}]]}]}],[\\\"$\\\",\\\"tbody\\\",null,{\\\"className\\\":\\\"divide-y divide-zinc-200 dark:divide-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"CI/CD pipeline agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Workload identity federation over OIDC, or a GitHub App installation token\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"~1 hr (installation token); STS-issued short-lived\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Disable the app installation or the federation pool — no shared secret to hunt down and rotate\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-run correlation: pipeline run ID tied to each token issuance\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Human-delegated agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"RFC 8693 token exchange: subject token + actor token, audience-restricted\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Session-bound; expires with the delegation\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Invalidate the user’s subject token or the agent’s actor token independently — neither locks out the other\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Actor-plus-subject pair recorded on every downstream call\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Autonomous scheduled agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Its own workload identity: SPIFFE/SPIRE SVID or a cloud-managed identity, issued on attestation\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Minutes to hours; SVIDs rotate automatically\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Revoke the SVID or deny the attestation — no human account is touched\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-certificate serial / per-invocation identity in every log line\\\"}]]}],[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Sub-agent spawned by a parent\\\"}],\\\"$L74\\\",\\\"$L75\\\",\\\"$L76\\\",\\\"$L77\\\"]}],\\\"$L78\\\"]}]]}]}]\\n\"])</script><script>self.__next_f.push([1,\"79:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-30049:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$79\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Two readings of this table are worth making explicit. First, the lifetime column trends toward zero as autonomy rises: the less a human is in the loop at trigger time, the shorter the credential should live, because there is nobody watching to notice misuse in real time. Second, every revocation path in the table shares one property — it never requires locking a human out. That is the single test that tells you whether an agent has its own identity or is wearing someone else’s.\\\"}]}]\\n4a:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"revocation\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"06\\\",\\\" — \\\",\\\"Kill Switches\\\"]}],[\\\"Revocation in\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"minutes\\\"}],\\\", audit by the run.\\\"]]}]\\n7a:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"4b:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$7a\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Issuing the right credential is half the job. The other half is being able to destroy it fast and reconstruct what it did. The CSA’s May 2026 whitepaper sets a concrete bar for the first part: time-to-revoke measured in minutes, achieved through pre-authorized, automated revocation workflows triggered by exposure signals — not a ticket in a queue waiting for someone to manually deprovision an account. Its broader governance model has three parts: formal identity lifecycle management with assigned ownership for every non-human identity, zero standing privilege (just-in-time, task-scoped access with automatic expiry), and cryptographic workload attestation — naming SPIFFE/SPIRE specifically as the replacement for static API keys.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"On the audit side, the bar is attribution to a specific agent\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"children\\\":\\\"run\\\"}],\\\". A log line saying that the automation user did a few thousand things last Tuesday is not an audit trail; it is a confession that you cannot reconstruct the incident. The mechanisms in this playbook each carry their own answer — correlation IDs on CI runs, actor-subject pairs on delegated calls, certificate serials on SVIDs, lineage links on sub-agents, signature hashes on webhook invocations — and the vendor platforms are converging on the same requirement: Microsoft’s Entra Agent ID documentation states: “All agent authentication and activity is logged for compliance and audit.” It ships a dedicated agent sign-in and audit log surface, separate from human sign-in logs. What to actually record, and how to structure it so it survives an incident review, is the subject of our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/agent-audit-trail-design-7-best-practices-2026\\\",\\\"children\\\":\\\"agent audit trail design guide\\\"}],\\\".\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"4c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-7 overflow-hidden rounded-xl bg-[#0a0a0b] px-7 py-5.5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"absolute top-0 bottom-0 left-0 w-[3px] bg-ignition\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-2 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"CSA on multi-agent accountability\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"text-[15.5px] text-white leading-[1.6]\\\",\\\"children\\\":[\\\"The Cloud Security Alliance’s agentic IAM guidance is blunt on the two rules that keep agent fleets governable: “Grant agents only the minimum access required for their specific task.” And for the multi-agent case: “Sub-agents spawned by a parent agent are separate instances, each with a unique ID, but with a verifiable link back to the parent.” Unique identity per instance,\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-white italic\\\",\\\"children\\\":\\\"cryptographic lineage\\\"}],\\\" \\\",\\\"across the chain. That combination is what turns a swarm incident from an anonymous blob into a reconstructible sequence.\\\"]}]]}]\\n4d:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"rollout\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"07\\\",\\\" — \\\",\\\"Implementation\\\"]}],[\\\"A pragmatic rollout\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"order\\\"}],\\\".\\\"]]}]\\n7b:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-3004e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$7b\\\",\\\"children\\\":[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"You do not need SPIFFE in production by Friday. The failure mode to avoid is the opposite one: treating agent identity as a someday project while agents multiply on borrowed keys today. The sequence below is the order we use in client engagements, cheapest and highest-leverage first.\\\"}]}]\\n\"])</script><script>self.__next_f.push([1,\"4f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"my-8 flex flex-col gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",\\\"0\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Week one\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Inventory before mechanism\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"List every credential an agent currently holds — keys, tokens, sessions, and webhook URLs (they count). For each: whose is it, what can it reach, who owns its lifecycle, and how would you revoke it alone. The unowned entries are your risk register.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Start with ownership\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"1\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-white/10 bg-[#0a0a0b] text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"16px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"First replacement\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-white\\\",\\\"children\\\":[\\\"Kill the\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"long-lived\\\"}],\\\" \\\",\\\"keys\\\"]}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-white/72\\\",\\\"children\\\":\\\"CI/CD and cloud access convert fastest: swap stored secrets for OIDC-based workload identity federation and GitHub App installation tokens. No agent rewrite required — the platform mints short-lived credentials and the pasted keys get deleted.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\\\",\\\"children\\\":\\\"Federation + app tokens\\\"}]}]]}]]}],[\\\"$\\\",\\\"div\\\",\\\"2\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",\\\"$L7c\\\",\\\"$L7d\\\",\\\"$L7e\\\"]}],\\\"$L7f\\\"]}]\\n\"])</script><script>self.__next_f.push([1,\"80:T539,max-w-[720px] [\\u0026_*:where(p,h3,ul)]:text-pretty [\\u0026_a.link:hover]:bg-ignition/10 [\\u0026_a.link:hover]:text-ignition [\\u0026_a.link]:border-ignition [\\u0026_a.link]:border-b [\\u0026_a.link]:pb-px [\\u0026_a.link]:font-medium [\\u0026_a.link]:text-zinc-950 [\\u0026_a.link]:transition-colors [\\u0026_a.link]:dark:text-white [\\u0026_code]:rounded-[4px] [\\u0026_code]:bg-zinc-100 [\\u0026_code]:px-1.5 [\\u0026_code]:py-0.5 [\\u0026_code]:font-mono [\\u0026_code]:text-[0.88em] [\\u0026_code]:text-zinc-950 [\\u0026_code]:dark:bg-zinc-800 [\\u0026_code]:dark:text-white [\\u0026_h3]:mt-9 [\\u0026_h3]:mb-3.5 [\\u0026_h3]:font-medium [\\u0026_h3]:text-[22px] [\\u0026_h3]:text-zinc-950 [\\u0026_h3]:leading-tight [\\u0026_h3]:tracking-[-0.015em] [\\u0026_h3]:dark:text-white [\\u0026_p.lede]:mb-7 [\\u0026_p.lede]:font-normal [\\u0026_p.lede]:text-[19px] [\\u0026_p.lede]:text-zinc-950 [\\u0026_p.lede]:leading-[1.6] [\\u0026_p.lede]:dark:text-white [\\u0026_p]:mb-5 [\\u0026_p]:text-[17px] [\\u0026_p]:text-zinc-800 [\\u0026_p]:leading-[1.7] [\\u0026_p]:dark:text-zinc-200 [\\u0026_strong]:font-semibold [\\u0026_strong]:text-zinc-950 [\\u0026_strong]:dark:text-white [\\u0026_ul]:mb-6 [\\u0026_ul]:ml-0 [\\u0026_ul]:list-none [\\u0026_ul]:p-0 [\\u0026_ul_li]:relative [\\u0026_ul_li]:mb-2.5 [\\u0026_ul_li]:pl-[22px] [\\u0026_ul_li]:text-[16px] [\\u0026_ul_li]:text-zinc-700 [\\u0026_ul_li]:leading-[1.6] [\\u0026_ul_li]:before:absolute [\\u0026_ul_li]:before:top-[11px] [\\u0026_ul_li]:before:left-0.5 [\\u0026_ul_li]:before:size-1.5 [\\u0026_ul_li]:before:rounded-full [\\u0026_ul_li]:before:bg-ignition [\\u0026_ul_li]:before:content-[''] [\\u0026_ul_li]:dark:text-zinc-300\"])</script><script>self.__next_f.push([1,\"50:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"$80\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The interpretive point behind the sequence: agent identity is following the same arc service identity followed a decade ago, but compressed. Static keys gave way to short-lived certificates and federation for services over roughly ten years of painful migrations; agents are being pushed down that same path in quarters, not years, because the population is growing at machine speed and the actors behind the credentials make their own decisions. Our projection is that within a few product cycles, “give the agent its own identity” stops being an architecture choice and becomes a platform default — Entra Agent ID’s blueprints and GitHub’s stateless verifiable tokens are early versions of exactly that — and the differentiator shifts to the operational layer: who owns each identity, how fast revocation fires, and whether the audit trail names runs or blobs.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"This matters most where agents touch systems of record. A CRM agent that can rewrite pipeline data on a borrowed admin login is the exact scenario the borrowed-credential trap describes — which is why identity design is part of every build in our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/services/crm-automation\\\",\\\"children\\\":\\\"CRM automation practice\\\"}],\\\", and why broader agent governance — identity, permissions, audit, rollback — anchors our\\\",\\\" \\\",[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/services/ai-transformation\\\",\\\"children\\\":\\\"AI transformation engagements\\\"}],\\\". The teams that get this right early ship agents faster, not slower, because every new agent lands on rails that already exist.\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"51:[\\\"$\\\",\\\"h2\\\",null,{\\\"className\\\":\\\"m-0 mt-14 mb-5 scroll-mt-[90px] font-normal text-[clamp(26px,3vw,36px)] text-zinc-950 leading-[1.15] tracking-[-0.025em] dark:text-white\\\",\\\"id\\\":\\\"conclusion\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-medium font-mono text-[11px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":[\\\"08\\\",\\\" — \\\",\\\"Conclusion\\\"]}],[\\\"The test is\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"revocation\\\"}],\\\".\\\"]]}]\\n\"])</script><script>self.__next_f.push([1,\"52:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative my-10 overflow-hidden rounded-2xl bg-[#0a0a0b] p-8 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"className\\\":\\\"pointer-events-none absolute right-[-20%] bottom-[-30%] size-[400px] [background:radial-gradient(circle,rgba(255,107,26,0.12),transparent_60%)]\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative mb-3.5 flex items-center gap-2.5 font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-ignition shadow-[0_0_6px_var(--color-ignition)]\\\"}],\\\"Agent identity, July 2026\\\"]}],[\\\"$\\\",\\\"h3\\\",null,{\\\"className\\\":\\\"relative m-0 mb-4 font-medium text-[22px] text-white leading-[1.2] tracking-[-0.015em]\\\",\\\"children\\\":\\\"If you can’t revoke the agent without locking out a human, the agent doesn’t have an identity.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative space-y-3 text-[15.5px] text-white/80 leading-[1.65]\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":[\\\"Everything in this playbook compresses into that one test. Borrowed credentials fail it by construction: attribution points at a person, scope was accumulated rather than designed, and the kill switch takes the human down with the agent. Separate, per-run identity passes it — and the machinery is not speculative. SPIFFE SVIDs, workload identity federation, GitHub App installation tokens, AWS IAM Roles Anywhere, and RFC 8693 token exchange are all\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"shipping\\\"}],\\\", documented, and in production at scale for services already.\\\"]}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The direction of travel is unambiguous even where the statistics are not. Non-human identities already outnumber humans by an order of magnitude on any count in circulation, the major identity vendors have begun treating agents as their own principal type, and the industry bodies converge on the same three-part prescription: owned lifecycles, zero standing privilege, and attestation-based issuance. What is still scarce is teams actually wiring it up before the incident instead of after.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"Start with the inventory, kill the long-lived keys, and make every new agent land on its own identity by default. The cost is a few unglamorous engineering days now. The alternative is explaining to an auditor why the log says a sleeping employee deleted the production data — and why turning the agent off also turned off the employee.\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"53:[\\\"$\\\",\\\"aside\\\",null,{\\\"className\\\":\\\"sticky top-[84px] hidden flex-col gap-5 self-start xl:flex\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Share dispatch\\\"}],[\\\"$\\\",\\\"$L81\\\",null,{\\\"shareTitle\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\",\\\"shareUrl\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"relative overflow-hidden rounded-2xl bg-[#0a0a0b] p-5 text-white\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"aria-hidden\\\":\\\"true\\\",\\\"style\\\":{\\\"position\\\":\\\"absolute\\\",\\\"inset\\\":-1,\\\"borderRadius\\\":\\\"14px\\\",\\\"padding\\\":1,\\\"background\\\":\\\"linear-gradient(135deg,#ff6b1a,transparent 60%)\\\",\\\"WebkitMask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"WebkitMaskComposite\\\":\\\"xor\\\",\\\"mask\\\":\\\"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\\\",\\\"maskComposite\\\":\\\"exclude\\\",\\\"pointerEvents\\\":\\\"none\\\"}}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-ignition-2 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"AI Insights\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-2.5 font-medium text-[15px] text-white leading-[1.3] tracking-[-0.01em]\\\",\\\"children\\\":\\\"Deep dives on AI operations and automation.\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 mb-3.5 text-[12.5px] text-white/65 leading-normal\\\",\\\"children\\\":\\\"Agentic development, CRM automation, and data-driven strategies. No recycled AI takes.\\\"}],[\\\"$\\\",\\\"$L82\\\",null,{\\\"source\\\":\\\"$undefined\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"The mechanism shelf\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-2.5 font-medium text-[15px] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Already shipping, today\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mb-1 font-mono text-[12px] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"SPIFFE · WIF · RFC 8693\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[12px] text-zinc-500 leading-normal\\\",\\\"children\\\":\\\"Workload identity federation, SPIFFE/SPIRE SVIDs, GitHub App installation tokens, and AWS IAM Roles Anywhere all issue short-lived, scoped, revocable credentials — none require a human’s login.\\\"}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"55:[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-3.5 block font-mono text-[11px] text-ignition-2 uppercase tracking-[0.14em]\\\",\\\"children\\\":\\\"What we work on\\\"}]\\n56:[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mb-3.5 font-medium text-[19px] text-white tracking-[-0.01em]\\\",\\\"children\\\":\\\"Agent identity engagements\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"57:[\\\"$\\\",\\\"ul\\\",null,{\\\"className\\\":\\\"m-0 list-none p-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"li\\\",\\\"0\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Non-human identity inventory \\u0026 ownership mapping\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"1\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Long-lived key elimination — federation \\u0026 app tokens\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"2\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"On-behalf-of token exchange for user-facing agents\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"3\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Per-run audit trails with parent-child lineage\\\"]}],[\\\"$\\\",\\\"li\\\",\\\"4\\\",{\\\"className\\\":\\\"flex items-center gap-2.5 border-white/10 border-b py-2.5 text-[13.5px] text-white/72 last:border-b-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[13px] text-ignition\\\",\\\"children\\\":\\\"→\\\"}],\\\"Revocation runbooks — minutes, not ticket queues\\\"]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"59:[\\\"The questions we get\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif italic\\\",\\\"children\\\":\\\"every week.\\\"}]]\\n5a:[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]\\n\"])</script><script>self.__next_f.push([1,\"5b:[\\\"$\\\",\\\"$L12\\\",\\\"live-client-dashboards-claude-artifacts-mcp\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/live-client-dashboards-claude-artifacts-mcp\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Build Live Client Dashboards with Claude Code Artifacts\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Claude Code Artifacts now pull live data through a viewer's own MCP connectors per view. But a connector-backed dashboard can't be a public link on any plan.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 24, 2026\\\",\\\" · \\\",11,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5c:[\\\"$\\\",\\\"$L12\\\",\\\"baidu-unlimited-ocr-3b-document-automation-2026\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/baidu-unlimited-ocr-3b-document-automation-2026\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Baidu Unlimited-OCR 3B: Single-Pass PDFs, MIT-Licensed\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Baidu's MIT-licensed Unlimited-OCR parses documents in one pass and beats DeepSeek-OCR on OmniDocBench. A free, self-hostable option for ops document teams.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"July 23, 2026\\\",\\\" · \\\",12,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5d:[\\\"$\\\",\\\"$L12\\\",\\\"sms-marketing-statistics-2026-open-ctr-data\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/sms-marketing-statistics-2026-open-ctr-data\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"SMS Marketing Statistics 2026: 110+ Open and CTR Data\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"SMS marketing statistics for 2026: 110+ data points on delivery, open and click-through rates, opt-out behavior, and revenue-per-send benchmarks.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"April 22, 2026\\\",\\\" · \\\",15,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"5e:[\\\"$\\\",\\\"$L12\\\",\\\"anthropic-cowork-customize-personalize-claude-business\\\",{\\\"className\\\":\\\"group flex min-h-[260px] flex-col gap-3.5 rounded-2xl border border-zinc-200 bg-white p-7 transition-all hover:-translate-y-1 hover:border-zinc-400 hover:shadow-[0_20px_40px_-20px_rgba(0,0,0,0.1)] dark:border-zinc-800 dark:bg-zinc-950\\\",\\\"href\\\":\\\"/blog/anthropic-cowork-customize-personalize-claude-business\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"self-start rounded-sm border border-ignition/20 bg-ignition/5 px-2 py-1 font-mono text-[10.5px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"CRM \\u0026 Automation\\\"}],[\\\"$\\\",\\\"h4\\\",null,{\\\"className\\\":\\\"m-0 mt-1 font-medium text-[19px] text-zinc-950 leading-[1.22] tracking-[-0.015em] transition-colors group-hover:text-ignition dark:text-white\\\",\\\"children\\\":\\\"Anthropic Cowork Customize: Personalize Claude Guide\\\"}],[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 flex-1 text-[14px] text-zinc-500 leading-[1.55]\\\",\\\"children\\\":\\\"Anthropic's Cowork platform lets businesses customize Claude's persona, memory, and behavior at workspace level. Setup guide, use cases, and API integration.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"mt-auto flex items-center justify-between border-zinc-200 border-t pt-3.5 font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.08em] dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"children\\\":[\\\"March 19, 2026\\\",\\\" · \\\",14,\\\" min\\\"]}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-flex items-center gap-1 font-medium text-zinc-950 dark:text-white\\\",\\\"children\\\":[\\\"Read \\\",[\\\"$\\\",\\\"$L54\\\",null,{\\\"ref\\\":\\\"$undefined\\\",\\\"iconNode\\\":\\\"$24:props:children:2:props:children:0:props:children:3:props:children:0:props:children:1:props:iconNode\\\",\\\"className\\\":\\\"lucide-arrow-up-right size-3.5\\\"}]]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"61:[\\\"$\\\",\\\"li\\\",\\\"Audit must name the run, not the bot.\\\",{\\\"className\\\":\\\"grid grid-cols-[40px_1fr] gap-4 border-zinc-200 border-b py-5 last:border-b-0 dark:border-zinc-800\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"pt-1 font-mono text-[12px] text-ignition tracking-[0.08em]\\\",\\\"children\\\":\\\"05\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"mb-1.5 block font-semibold text-[15.5px] text-zinc-950 leading-[1.4] tracking-[-0.005em] dark:text-white\\\",\\\"children\\\":\\\"Audit must name the run, not the bot.\\\"}],[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"text-[14.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"A log line that says ‘the automation user did it’ is not reconstructible after an incident. Per-run correlation IDs, actor-plus-subject pairs, and parent-child lineage for sub-agents are the bar — with revocation measured in minutes.\\\"}]]}]]}]\\n63:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/amp-event-driven-orbs-self-scheduling-agents-2026\\\",\\\"children\\\":\\\"our breakdown of Amp’s event-driven orbs\\\"}]\\n65:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] uppercase tracking-[0.14em] text-ignition-2\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current\\\"}],\\\"Category 03\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.2] tracking-[-0.02em] text-white\\\",\\\"children\\\":[\\\"Agent\\\",\\\" \\\",[\\\"$\\\",\\\"em\\\",null,{\\\"className\\\":\\\"font-normal font-serif text-ignition-2 italic\\\",\\\"children\\\":\\\"identity\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-2.5 py-1.5 font-mono text-[12px] tracking-[-0.01em] bg-ignition/10 text-ignition-2\\\",\\\"children\\\":\\\"Dynamic · many · issued per run\\\"}]}]]}]\\n66:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n67:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] leading-[1.6] text-white/72\\\",\\\"children\\\":\\\"Agents decide what to do at runtime, spawn sub-agents, and multiply faster than any review cycle. Identity has to be issued per run, scoped per task, expire on its own, and die without collateral damage to a human or a fleet.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-sm bg-ignition/10 px-2 py-1 font-mono text-[10px] text-ignition uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Entra Agent ID · CSA agentic IAM\\\"}]}]]}]\\n6b:[\\\"$\\\",\\\"$L2f\\\",null,{\\\"className\\\":\\\"link\\\",\\\"href\\\":\\\"/blog/1password-claude-secure-credential-agentic-browsing-2026\\\",\\\"children\\\":\\\"1Password brokers credentials for agentic browsing\\\"}]\\n6c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"font-mono text-[10.5px] text-zinc-500 uppercase tracking-[0.12em]\\\",\\\"children\\\":\\\"Fine-grained PAT\\\"}]\\n6d:[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[18px] text-zinc-950 leading-[1.3] tracking-[-0.01em] dark:text-white\\\",\\\"children\\\":\\\"Default expiration\\\"}]\\n6e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-baseline gap-1 font-light text-[48px] text-zinc-900 leading-none tracking-[-0.03em] md:order-first dark:text-zinc-100\\\",\\\"children\\\":[\\\"30\\\",[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono font-normal text-[14px] text-ignition\\\",\\\"children\\\":\\\"d\\\"}]]}]\\n6f:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n70:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[13.5px] text-zinc-600 leading-[1.6] dark:text-zinc-400\\\",\\\"children\\\":\\\"Scoped to one user or org and to named repositories and permissions; extendable to 366 days, or ‘never’ where org policy allows — versus classic PATs’ blanket reach.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"w-full self-start border-zinc-100 border-t pt-2 text-left md:self-end md:text-right dark:border-zinc-800\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"font-mono text-[10px] text-ignition uppercase tracking-widest\\\",\\\"children\\\":\\\"Classic PATs: blanket acces\"])</script><script>self.__next_f.push([1,\"s\\\"}]}]]}]\\n72:[\\\"$\\\",\\\"p\\\",null,{\\\"children\\\":\\\"The Cloud Security Alliance’s agentic IAM paper (August 2025) pushes one step further for multi-agent systems: Decentralized Identifiers plus Verifiable Credentials as the identity anchor, with just-in-time credentials valid for narrow windows — its worked example is a 15-minute credential scoped to a single action on specific resources. Its rationale is the same gap RFC 8693 exists to close: traditional OAuth and SAML assumptions fall short because they lack secure, traceable delegation where agents act on behalf of users while keeping accountability chains intact — a gap that off-the-shelf OAuth deployments frequently leave unwired for agent chains even though the spec support exists.\\\"}]\\n74:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Child identity with a verifiable link to the parent (CSA delegation chains; Entra agent identity blueprints)\\\"}]\\n75:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Per-task; CSA’s worked example is a 15-min window\\\"}]\\n76:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Kill the child credential without touching the parent — or revoke the parent to invalidate the chain\\\"}]\\n77:[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-child ID with parent lineage — multi-agent incidents stay reconstructible\\\"}]\\n78:[\\\"$\\\",\\\"tr\\\",null,{\\\"className\\\":\\\"align-top text-zinc-700 dark:text-zinc-300\\\",\\\"children\\\":[[\\\"$\\\",\\\"th\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-medium text-zinc-950 dark:text-white\\\",\\\"scope\\\":\\\"row\\\",\\\"children\\\":\\\"Third-party / webhook-triggered agent\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Signed webhook payload verified at ingress, then exchanged for a short-lived, downscoped token\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3 font-mono text-[13px]\\\",\\\"children\\\":\\\"Per-invocation\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Rotate the webhook secret; deny-list the compromised signature\\\"}],[\\\"$\\\",\\\"td\\\",null,{\\\"className\\\":\\\"px-4 py-3\\\",\\\"children\\\":\\\"Per-payload signature hash plus the issued-token record\\\"}]]}]\\n7c:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Human-delegated agents\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"On-behalf-of, audience-restricted\\\"}]]}]\\n7d:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}]\\n7e:[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Where an agent acts for a specific user, move to RFC 8693-style token exchange: subject token plus actor token, audience-restricted to the one service the task needs. The agent stops being the user and starts acting for the user — visibly, in every log.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Token exchange\\\"}]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"7f:[\\\"$\\\",\\\"div\\\",\\\"3\\\",{\\\"className\\\":\\\"relative flex flex-col gap-5 overflow-hidden rounded-2xl p-6 md:flex-row md:gap-8 md:p-7 border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\\\",\\\"children\\\":[\\\"$undefined\\\",[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-col gap-3 md:w-[220px] md:shrink-0\\\",\\\"children\\\":[[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex items-center gap-2 font-mono text-[10.5px] text-ignition uppercase tracking-[0.14em]\\\",\\\"children\\\":[[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"size-1.5 rounded-full bg-current shadow-[0_0_6px_currentColor]\\\"}],\\\"Multi-agent systems\\\"]}],[\\\"$\\\",\\\"h5\\\",null,{\\\"className\\\":\\\"m-0 font-medium text-[22px] leading-[1.15] tracking-[-0.02em] text-zinc-950 dark:text-white\\\",\\\"children\\\":\\\"Lineage from day one\\\"}]]}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"hidden w-px self-stretch bg-zinc-200/60 md:block dark:bg-zinc-800/60\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"flex flex-1 flex-col justify-between gap-4\\\",\\\"children\\\":[[\\\"$\\\",\\\"p\\\",null,{\\\"className\\\":\\\"m-0 text-[14px] leading-[1.6] text-zinc-600 dark:text-zinc-400\\\",\\\"children\\\":\\\"Give every spawned sub-agent its own identifier with a verifiable link to its parent, and pre-authorize the revocation workflow before you need it. Retrofitting lineage onto a running fleet after an incident is the expensive version.\\\"}],[\\\"$\\\",\\\"div\\\",null,{\\\"className\\\":\\\"self-start pt-1 md:self-end\\\",\\\"children\\\":[\\\"$\\\",\\\"span\\\",null,{\\\"className\\\":\\\"inline-block rounded-md px-3 py-1.5 font-medium font-mono text-[11.5px] tracking-[-0.01em] bg-zinc-100 text-zinc-950 dark:bg-zinc-800 dark:text-white\\\",\\\"children\\\":\\\"Parent-child IDs\\\"}]}]]}]]}]\\n\"])</script><script>self.__next_f.push([1,\"2b:[[\\\"$\\\",\\\"meta\\\",\\\"0\\\",{\\\"charSet\\\":\\\"utf-8\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"1\\\",{\\\"name\\\":\\\"viewport\\\",\\\"content\\\":\\\"width=device-width, initial-scale=1, maximum-scale=5\\\"}]]\\n\"])</script><script>self.__next_f.push([1,\"2e:[[\\\"$\\\",\\\"title\\\",\\\"0\\\",{\\\"children\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"1\\\",{\\\"name\\\":\\\"description\\\",\\\"content\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"2\\\",{\\\"name\\\":\\\"author\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"3\\\",{\\\"name\\\":\\\"keywords\\\",\\\"content\\\":\\\"agent identity credentials,non-human identity management,SPIFFE SVID short-lived credentials,workload identity federation agents,GitHub App installation token scope,AWS IAM Roles Anywhere,AI agent audit trail\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"4\\\",{\\\"name\\\":\\\"creator\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"5\\\",{\\\"name\\\":\\\"publisher\\\",\\\"content\\\":\\\"Digital Applied\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"6\\\",{\\\"name\\\":\\\"robots\\\",\\\"content\\\":\\\"index, follow\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"7\\\",{\\\"name\\\":\\\"googlebot\\\",\\\"content\\\":\\\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\\\"}],[\\\"$\\\",\\\"link\\\",\\\"8\\\",{\\\"rel\\\":\\\"canonical\\\",\\\"href\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"9\\\",{\\\"property\\\":\\\"og:title\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"10\\\",{\\\"property\\\":\\\"og:description\\\",\\\"content\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"11\\\",{\\\"property\\\":\\\"og:url\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"12\\\",{\\\"property\\\":\\\"og:image\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"13\\\",{\\\"property\\\":\\\"og:image:type\\\",\\\"content\\\":\\\"image/png\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"14\\\",{\\\"property\\\":\\\"og:image:width\\\",\\\"content\\\":\\\"1200\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"15\\\",{\\\"property\\\":\\\"og:image:height\\\",\\\"content\\\":\\\"630\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"16\\\",{\\\"property\\\":\\\"og:image:alt\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"17\\\",{\\\"property\\\":\\\"og:type\\\",\\\"content\\\":\\\"article\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"18\\\",{\\\"property\\\":\\\"article:published_time\\\",\\\"content\\\":\\\"2026-07-26\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"19\\\",{\\\"property\\\":\\\"article:modified_time\\\",\\\"content\\\":\\\"2026-07-26\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"20\\\",{\\\"property\\\":\\\"article:author\\\",\\\"content\\\":\\\"Digital Applied Team\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"21\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"agent-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"22\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"non-human-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"23\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"workload-identity\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"24\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"spiffe\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"25\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"oauth\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"26\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"access-control\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"27\\\",{\\\"property\\\":\\\"article:tag\\\",\\\"content\\\":\\\"audit-logging\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"28\\\",{\\\"name\\\":\\\"twitter:card\\\",\\\"content\\\":\\\"summary_large_image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"29\\\",{\\\"name\\\":\\\"twitter:title\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"30\\\",{\\\"name\\\":\\\"twitter:description\\\",\\\"content\\\":\\\"Agents that inherit a human session or API key make every action unrevocable without locking the human out. Short-lived, per-run workload credentials fix that.\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"31\\\",{\\\"name\\\":\\\"twitter:image\\\",\\\"content\\\":\\\"https://www.digitalapplied.com/blog/agent-identity-credentials-non-human-access-2026-playbook/article-image\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"32\\\",{\\\"name\\\":\\\"twitter:image:alt\\\",\\\"content\\\":\\\"Giving Agents Their Own Identity, Not Your Credentials - Digital Applied Blog\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"33\\\",{\\\"name\\\":\\\"twitter:image:type\\\",\\\"content\\\":\\\"image/png\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"34\\\",{\\\"name\\\":\\\"twitter:image:width\\\",\\\"content\\\":\\\"1200\\\"}],[\\\"$\\\",\\\"meta\\\",\\\"35\\\",{\\\"name\\\":\\\"twitter:image:height\\\",\\\"content\\\":\\\"630\\\"}],[\\\"$\\\",\\\"link\\\",\\\"36\\\",{\\\"rel\\\":\\\"icon\\\",\\\"href\\\":\\\"/favicon.ico?favicon.0hms~afauq~g0.ico\\\",\\\"sizes\\\":\\\"48x48\\\",\\\"type\\\":\\\"image/x-icon\\\"}],[\\\"$\\\",\\\"link\\\",\\\"37\\\",{\\\"rel\\\":\\\"icon\\\",\\\"href\\\":\\\"/icon.svg?icon.074~muy3rpvs~.svg\\\",\\\"sizes\\\":\\\"any\\\",\\\"type\\\":\\\"image/svg+xml\\\"}],[\\\"$\\\",\\\"link\\\",\\\"38\\\",{\\\"rel\\\":\\\"apple-touch-icon\\\",\\\"href\\\":\\\"/apple-icon.png?apple-icon.0z2i6746e9zp1.png\\\",\\\"sizes\\\":\\\"180x180\\\",\\\"type\\\":\\\"image/png\\\"}],\\\"$L83\\\"]\\n\"])</script><script>self.__next_f.push([1,\"60:null\\n\"])</script><script>self.__next_f.push([1,\"84:I[692313,[\\\"/_next/static/chunks/0vfhqx7irdtsp.js\\\",\\\"/_next/static/chunks/0yze7hvbcp5.x.js\\\",\\\"/_next/static/chunks/0zod1seoish6v.js\\\",\\\"/_next/static/chunks/0h9.k2fyk8cqu.js\\\"],\\\"IconMark\\\"]\\n83:[\\\"$\\\",\\\"$L84\\\",\\\"39\\\",{}]\\n\"])</script></body></html>","snapshot_chars":291193,"live_check":"changed"}]}