<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI on Go Micro</title><link>https://go-micro.dev/tags/ai.html</link><description>Recent content in AI on Go Micro</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 29 Jul 2026 08:42:34 +0100</lastBuildDate><atom:link href="https://go-micro.dev/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>The Loop, Shipped: Introducing micro loop</title><link>https://go-micro.dev/blog/2026/07/02/the-loop-shipped-introducing-micro-loop.html</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/07/02/the-loop-shipped-introducing-micro-loop.html</guid><description>&lt;p&gt;A few weeks ago we wrote &lt;a href="https://go-micro.dev/blog/2026/06/25/how-go-micro-builds-itself/"&gt;How Go Micro Builds Itself&lt;/a&gt;: a loop of two AI agents — Codex writing scoped increments, Claude Code orchestrating and reviewing, a human setting direction — kept honest by CI. It was our own thesis, &lt;em&gt;an agent operating a system&lt;/em&gt;, pointed at the repository that defines the thesis.&lt;/p&gt;
&lt;p&gt;People asked the obvious question: &lt;strong&gt;can I run that on my repo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now you can. &lt;code&gt;micro loop init&lt;/code&gt; drops the whole pipeline into any repository, and — the part that makes it real rather than aspirational — Go Micro itself now runs on it. The workflows that maintain this project are generated by the same command we&amp;rsquo;re shipping to you.&lt;/p&gt;</description></item><item><title>An Agent Is a Service: Where Agent Frameworks Are Going</title><link>https://go-micro.dev/blog/2026/06/30/an-agent-is-a-service-where-agent-frameworks-are-going.html</link><pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/30/an-agent-is-a-service-where-agent-frameworks-are-going.html</guid><description>&lt;p&gt;There are now a lot of ways to build an agent. LangChain and LangGraph, LlamaIndex, CrewAI, Microsoft&amp;rsquo;s AutoGen, Google&amp;rsquo;s ADK, the model labs&amp;rsquo; own SDKs, and — most recently in our own backyard — &lt;a href="https://github.com/trpc-group/trpc-agent-go"&gt;tRPC-Agent-Go&lt;/a&gt; from Tencent. They are not all solving the same problem, and the places they differ tell you a lot about where this is heading.&lt;/p&gt;
&lt;p&gt;This is a field guide to that landscape, and an honest account of where Go Micro sits in it.&lt;/p&gt;</description></item><item><title>How Go Micro Builds Itself</title><link>https://go-micro.dev/blog/2026/06/25/how-go-micro-builds-itself.html</link><pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/25/how-go-micro-builds-itself.html</guid><description>&lt;p&gt;Go Micro is an agent harness. The most honest test of that claim is to use agents to build it — so increasingly, we do. A scheduled loop of two AI agents now opens issues, writes increments, and merges its own pull requests against this repo, on a cadence, with a human setting direction rather than typing the code.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t a stunt. If a harness is good enough to operate a loop that builds itself, that&amp;rsquo;s evidence it&amp;rsquo;s good enough to operate the loop that builds &lt;em&gt;your&lt;/em&gt; software. So we pointed the thesis at itself and wired up the loop. This post is how it actually works — including the parts that didn&amp;rsquo;t, because the failure modes are the interesting part.&lt;/p&gt;</description></item><item><title>Go Micro is an Agent Harness</title><link>https://go-micro.dev/blog/2026/06/24/go-micro-is-an-agent-harness.html</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/24/go-micro-is-an-agent-harness.html</guid><description>&lt;p&gt;The first wave of agent frameworks solved one problem: put a model in a loop with some tools. That&amp;rsquo;s the easy part now. The harder problem — the one that decides whether an agent makes it past a demo — is &lt;strong&gt;operating&lt;/strong&gt; that loop.&lt;/p&gt;
&lt;p&gt;Operating a loop means connecting it to real tools, scoping what it can touch, keeping state when the process restarts, routing work to specialists, recovering from provider failures, seeing what it did, and letting other agents call it. That&amp;rsquo;s harness work, and it&amp;rsquo;s most of the actual job.&lt;/p&gt;</description></item><item><title>Go Micro Joins OpenAI's Codex for Open Source</title><link>https://go-micro.dev/blog/2026/06/23/go-micro-joins-openai-s-codex-for-open-source.html</link><pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/23/go-micro-joins-openai-s-codex-for-open-source.html</guid><description>&lt;p&gt;Go Micro has been accepted into &lt;strong&gt;OpenAI&amp;rsquo;s Codex for Open Source&lt;/strong&gt; program. OpenAI is covering six months of ChatGPT Pro — and with it, access to Codex — to support the day-to-day work of maintaining the project.&lt;/p&gt;
&lt;h2 id="what-the-grant-is"&gt;What the grant is&lt;a class="td-heading-self-link" href="#what-the-grant-is" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Codex for Open Source backs maintainers directly: the constant, unglamorous work of reviewing changes, cutting releases, triaging issues, and keeping quality high. That&amp;rsquo;s most of what maintaining a framework actually is, and it&amp;rsquo;s the part that rarely gets funded. OpenAI putting Codex against it is a real, practical help.&lt;/p&gt;</description></item><item><title>Building a Support Agent in Go</title><link>https://go-micro.dev/blog/2026/06/19/building-a-support-agent-in-go.html</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/19/building-a-support-agent-in-go.html</guid><description>&lt;p&gt;Most agent demos are a chat box wired to one tool. Real systems aren&amp;rsquo;t that — they&amp;rsquo;re a handful of services, an agent that operates them, something that triggers the agent without a human typing, and a gate on the actions you don&amp;rsquo;t want it taking on its own. Here&amp;rsquo;s that, built end to end. The full code is in &lt;a href="https://github.com/micro/go-micro/tree/master/examples/support"&gt;&lt;code&gt;examples/support&lt;/code&gt;&lt;/a&gt;; it runs with no API key.&lt;/p&gt;
&lt;p&gt;The scenario: a customer files a ticket. That should trigger an agent to look the customer up, set a priority, and reply — but it must not email anyone without passing an approval gate.&lt;/p&gt;</description></item><item><title>Agents Across Frameworks: A2A</title><link>https://go-micro.dev/blog/2026/06/18/agents-across-frameworks-a2a.html</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/18/agents-across-frameworks-a2a.html</guid><description>&lt;p&gt;Inside a Go Micro system, agents already talk to each other. An agent is a service with an &lt;code&gt;Agent.Chat&lt;/code&gt; endpoint, so &lt;code&gt;delegate&lt;/code&gt; just calls another agent over RPC. That works as long as everyone is on Go Micro. The moment an agent is built on a different framework, the conversation stops: it can&amp;rsquo;t call yours, and yours can&amp;rsquo;t call it.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://a2a-protocol.org"&gt;A2A&lt;/a&gt; — the open Agent2Agent protocol — is the standard that closes that gap, and Go Micro now speaks it.&lt;/p&gt;</description></item><item><title>Go Micro is Becoming a Framework for Agentic Development</title><link>https://go-micro.dev/blog/2026/06/17/go-micro-is-becoming-a-framework-for-agentic-development.html</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/17/go-micro-is-becoming-a-framework-for-agentic-development.html</guid><description>&lt;p&gt;When Anthropic began sponsoring Go Micro, we committed to building in the open and reporting progress as it happened. It has been three months. Each post so far covered one change; this one is about what they add up to. &lt;strong&gt;Go Micro is becoming a framework for agentic development, the same way it has been a framework for services for the last decade.&lt;/strong&gt; It&amp;rsquo;s an extension of the existing framework, not a rewrite, because an agent is a distributed system and Go Micro is how you build one.&lt;/p&gt;</description></item><item><title>Durable Workflows</title><link>https://go-micro.dev/blog/2026/06/17/durable-workflows.html</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/17/durable-workflows.html</guid><description>&lt;p&gt;A workflow that calls real services is rarely instant and rarely side-effect-free. It reserves inventory at step one, charges a card at step two, sends a confirmation at step three. Each of those changes the world. So when the process dies between step two and step three — a deploy, an OOM, a node going away — you can&amp;rsquo;t just run it again from the top: that reserves twice and charges twice. And if the workflow was triggered by an event with no human watching, nobody noticed it died at all.&lt;/p&gt;</description></item><item><title>Agent Guardrails</title><link>https://go-micro.dev/blog/2026/06/16/agent-guardrails.html</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/16/agent-guardrails.html</guid><description>&lt;p&gt;The interesting failures of an autonomous agent aren&amp;rsquo;t dramatic. It calls the same tool with the same arguments over and over, making no progress. It takes thirty steps on a task that needed three, quietly running up cost. It performs an action that a human, or a policy, should have stood in front of. When an agent &lt;a href="https://go-micro.dev/blog/2026/06/15/when-the-event-is-the-prompt/"&gt;runs on its own&lt;/a&gt;, there&amp;rsquo;s no one watching to catch any of it.&lt;/p&gt;
&lt;p&gt;A useful way to think about this — which came up in a community discussion recently — is to separate &lt;strong&gt;orchestration&lt;/strong&gt; from &lt;strong&gt;execution safety&lt;/strong&gt;. The model decides what to do; that&amp;rsquo;s orchestration. Whether a decided action is actually allowed to run is a separate concern, and it shouldn&amp;rsquo;t be tangled into the model or the services. Go Micro keeps them apart: every tool call an agent makes passes through one choke point, and that&amp;rsquo;s where the guardrails live. They apply uniformly to service calls, custom tools, and &lt;code&gt;delegate&lt;/code&gt;, and they touch neither the model nor your services.&lt;/p&gt;</description></item><item><title>Integrating x402: Payments for Agents</title><link>https://go-micro.dev/blog/2026/06/15/integrating-x402-payments-for-agents.html</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/15/integrating-x402-payments-for-agents.html</guid><description>&lt;p&gt;The &lt;a href="https://go-micro.dev/blog/2026/06/15/when-the-event-is-the-prompt/"&gt;last post&lt;/a&gt; was about agents that run on their own — triggered by an event, acting without a human prompt. Follow that one step further and you reach something agents can&amp;rsquo;t do yet in most systems: pay. An autonomous agent that calls an API, rents compute, or uses another agent&amp;rsquo;s service will, sooner or later, need to settle for it — without a person reaching for a credit card. There is now a standard for exactly that, and we&amp;rsquo;re integrating it.&lt;/p&gt;</description></item><item><title>When the Event Is the Prompt</title><link>https://go-micro.dev/blog/2026/06/15/when-the-event-is-the-prompt.html</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/15/when-the-event-is-the-prompt.html</guid><description>&lt;p&gt;Almost every agent demo starts the same way: a human types a prompt, the agent responds. That framing is a habit from chat, and it hides the more useful case. The agents worth running don&amp;rsquo;t wait for you to ask. They run because something happened — a user signed up, a payment failed, a deployment finished, a metric crossed a line. In those systems there is no prompt, because there is no human in the loop. The event is the prompt.&lt;/p&gt;</description></item><item><title>Doubling Down on Agents</title><link>https://go-micro.dev/blog/2026/06/10/doubling-down-on-agents.html</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/10/doubling-down-on-agents.html</guid><description>&lt;p&gt;Go Micro made microservices easy by having an opinion. You called &lt;code&gt;micro.New&lt;/code&gt;, and it composed the pieces a service needs — service discovery, RPC, pub/sub, config, storage — behind one interface, with defaults that worked out of the box. You could test an endpoint in minutes, and when you needed to, you swapped any piece: mDNS for etcd, HTTP for gRPC, in-memory for Postgres. Opinionated, batteries-included, and pluggable. That combination is why people used it.&lt;/p&gt;</description></item><item><title>Not Everything Should Be an Agent</title><link>https://go-micro.dev/blog/2026/06/08/not-everything-should-be-an-agent.html</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/08/not-everything-should-be-an-agent.html</guid><description>&lt;p&gt;The last two posts were about agents — &lt;a href="https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent/"&gt;the abstraction&lt;/a&gt;, and then &lt;a href="https://go-micro.dev/blog/2026/06/07/agents-that-plan-and-delegate/"&gt;agents that plan and delegate&lt;/a&gt;, directing their own work over many turns. That&amp;rsquo;s the exciting part. It&amp;rsquo;s also, honestly, the part you should reach for &lt;em&gt;least often&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;An agent decides its own path at runtime. That&amp;rsquo;s powerful when the task genuinely needs it, and a liability when it doesn&amp;rsquo;t — you trade predictability, latency, and cost for flexibility you may not want. Most real work has a known shape: &lt;em&gt;when this event happens, do these things.&lt;/em&gt; For that, you don&amp;rsquo;t want a model improvising. You want a &lt;strong&gt;workflow&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Agents That Plan and Delegate</title><link>https://go-micro.dev/blog/2026/06/07/agents-that-plan-and-delegate.html</link><pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/07/agents-that-plan-and-delegate.html</guid><description>&lt;p&gt;When we &lt;a href="https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent/"&gt;introduced &lt;code&gt;micro.NewAgent()&lt;/code&gt;&lt;/a&gt;, an agent was already a service with an LLM inside: scoped tools, persistent memory, and a &lt;code&gt;micro chat&lt;/code&gt; router that dispatches across agents. And in &lt;a href="https://go-micro.dev/blog/2026/06/04/agents-for-services-a-new-model-for-microservices/"&gt;Agents for Services&lt;/a&gt; we made the case that intelligence should be distributed — agents coordinate &amp;ldquo;not through code… through understanding.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;This post is the next beat. An agent that only reacts, one tool call at a time, isn&amp;rsquo;t really understanding anything — it&amp;rsquo;s improvising. Two things turn reaction into intent: the agent should &lt;strong&gt;plan&lt;/strong&gt; what it&amp;rsquo;s doing before it does it, and &lt;strong&gt;delegate&lt;/strong&gt; what it shouldn&amp;rsquo;t be doing itself. Go Micro now gives every agent both.&lt;/p&gt;</description></item><item><title>Introducing micro.NewAgent()</title><link>https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/05/introducing-micro-newagent.html</guid><description>&lt;p&gt;Go Micro now has three core abstractions:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;micro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewService&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;task&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// capability&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;agent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;micro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;task-mgr&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// intelligence&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;flow&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;micro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewFlow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;onboard-user&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// event-driven orchestration&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Service has been the foundation since 2015. Flow added event-driven LLM orchestration. Now Agent completes the picture — an intelligent layer that manages services, with scoped tools, persistent memory, and multi-agent coordination.&lt;/p&gt;
&lt;h2 id="what-an-agent-is"&gt;What an Agent Is&lt;a class="td-heading-self-link" href="#what-an-agent-is" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A Service has endpoints and handles requests. An Agent knows &lt;em&gt;how&lt;/em&gt; to use those endpoints intelligently. The service doesn&amp;rsquo;t know about its agent. The agent knows about its services.&lt;/p&gt;</description></item><item><title>Agents for Services: A New Model for Microservices</title><link>https://go-micro.dev/blog/2026/06/04/agents-for-services-a-new-model-for-microservices.html</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/04/agents-for-services-a-new-model-for-microservices.html</guid><description>&lt;p&gt;Microservices solved monolithic code. Split it into small, independent units. But we centralised the intelligence — one agent, one brain, managing everything. That&amp;rsquo;s just a different kind of monolith.&lt;/p&gt;
&lt;p&gt;What if every service had its own agent? Not embedded in the service. Created separately, assigned to manage it. The service is the capability. The agent is the intelligence.&lt;/p&gt;
&lt;h2 id="the-problem-with-one-agent"&gt;The Problem with One Agent&lt;a class="td-heading-self-link" href="#the-problem-with-one-agent" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Right now, &lt;code&gt;micro chat&lt;/code&gt; is a single agent. It discovers every service in the registry, sees every endpoint, and orchestrates across all of them. You ask it a question and it figures out which service to call.&lt;/p&gt;</description></item><item><title>Going All In on AI</title><link>https://go-micro.dev/blog/2026/06/04/going-all-in-on-ai.html</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/04/going-all-in-on-ai.html</guid><description>&lt;p&gt;I started Go Micro in 2015 because building microservices in Go was too hard. Too much boilerplate, too many decisions before you could test a single endpoint. The idea was simple: sane defaults, pluggable architecture, get out of the developer&amp;rsquo;s way.&lt;/p&gt;
&lt;p&gt;Eleven years later, the framework works. Service discovery, RPC, pub/sub, config, store — all pluggable, all production-tested. 23,000 stars on GitHub. But let&amp;rsquo;s be honest: the microservices ecosystem moved on. Kubernetes won infrastructure. gRPC became the default transport. Service meshes handle the network. The problems Go Micro originally solved are mostly solved.&lt;/p&gt;</description></item><item><title>From Prompt to Production: AI-Generated Microservices That Actually Run</title><link>https://go-micro.dev/blog/2026/06/03/from-prompt-to-production-ai-generated-microservices-that-actually-run.html</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/06/03/from-prompt-to-production-ai-generated-microservices-that-actually-run.html</guid><description>&lt;p&gt;Every code generator stops at the same point: here&amp;rsquo;s some files, good luck. You get a skeleton, wire it up yourself, hope it compiles. We wanted something different.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;micro run --prompt &lt;span class="s2"&gt;&amp;#34;a task management system&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That&amp;rsquo;s not scaffolding. Two services start, register, and respond to requests. An AI agent can create tasks, organize categories, and orchestrate across services immediately. And when you need a capability that doesn&amp;rsquo;t exist — shipping, payments, notifications — the agent builds it mid-conversation.&lt;/p&gt;</description></item><item><title>Build Your Own AI Agent CLI in 150 Lines</title><link>https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines.html</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines.html</guid><description>&lt;p&gt;&lt;figure role="figure" aria-label=""&gt;
 &lt;a href="https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines/developer-experience.jpg"&gt;
 &lt;div class="image-wrapper" style="background: linear-gradient(#0d0e18, #b9cac5);"&gt;
 &lt;img
 alt=""
 title=""
 width="1200"
 height="800"srcset="https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines/developer-experience_hu_25f9e961930f9c6c.webp 420w, https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines/developer-experience_hu_66426f2033e7a07c.webp 789w, https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines/developer-experience_hu_c399469856c46d5f.webp 1019w, "
 sizes="(min-width: 1000px) 789px, (min-width: 500px) 80.42vw, 87.78vw"
 src="https://go-micro.dev/blog/2026/05/30/build-your-own-ai-agent-cli-in-150-lines/developer-experience_hu_a59c6abb530f08fd.jpg"
 decoding="async"loading="lazy"
 /&gt;
 &lt;/div&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;We &lt;a href="https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services/"&gt;introduced &lt;code&gt;micro chat&lt;/code&gt;&lt;/a&gt; — a CLI that lets you talk to your microservices through an LLM. People asked how it works under the hood. The honest answer: it&amp;rsquo;s about 150 lines, and there&amp;rsquo;s no magic. This post walks through every piece so you can build your own — for go-micro, for your own framework, or for whatever services you have.&lt;/p&gt;</description></item><item><title>Tools as Services: Why Go Micro Was Always Ready for AI</title><link>https://go-micro.dev/blog/2026/05/30/tools-as-services-why-go-micro-was-always-ready-for-ai.html</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/05/30/tools-as-services-why-go-micro-was-always-ready-for-ai.html</guid><description>&lt;p&gt;When people see &lt;code&gt;micro chat&lt;/code&gt; or the MCP gateway, they assume we built something new. We didn&amp;rsquo;t. We exposed something that was already there.&lt;/p&gt;
&lt;p&gt;Go Micro has always treated services as self-describing, addressable units. Every service registers its name, endpoints, and request types with the registry. Every endpoint is callable through a standardised path. The only thing that changed is &lt;em&gt;who&amp;rsquo;s calling&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="the-pattern"&gt;The Pattern&lt;a class="td-heading-self-link" href="#the-pattern" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Go Micro was built on one idea: &lt;strong&gt;a service should be accessible the same way regardless of how you access it&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>From Chat to Flows: What If Your Services Could Orchestrate Themselves?</title><link>https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves.html</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves.html</guid><description>&lt;p&gt;&lt;figure role="figure" aria-label=""&gt;
 &lt;a href="https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves/blog-agents-demo.jpg"&gt;
 &lt;div class="image-wrapper" style="background: linear-gradient(#fbfafc, #5846bb);"&gt;
 &lt;img
 alt=""
 title=""
 width="1200"
 height="800"srcset="https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves/blog-agents-demo_hu_515df68ec1c5d8e1.webp 420w, https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves/blog-agents-demo_hu_e0da701e2b7ecd98.webp 789w, https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves/blog-agents-demo_hu_a4233173b453a09d.webp 1019w, "
 sizes="(min-width: 1000px) 789px, (min-width: 500px) 80.42vw, 87.78vw"
 src="https://go-micro.dev/blog/2026/05/29/from-chat-to-flows-what-if-your-services-could-orchestrate-themselves/blog-agents-demo_hu_e86f19109700af34.jpg"
 decoding="async"loading="lazy"
 /&gt;
 &lt;/div&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;We shipped &lt;code&gt;micro chat&lt;/code&gt; recently — an interactive terminal where you talk to your services through an LLM. You say &amp;ldquo;list all users over 30 and send each a welcome email,&amp;rdquo; and the model figures out which services to call, in what order, with what arguments.&lt;/p&gt;
&lt;p&gt;It works. But it&amp;rsquo;s interactive and ephemeral. You type a prompt, get a result, move on. What if you could save that prompt as a &lt;strong&gt;flow&lt;/strong&gt; and trigger it from an event?&lt;/p&gt;</description></item><item><title>micro chat: Talk to Your Services</title><link>https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services.html</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services.html</guid><description>&lt;p&gt;&lt;figure role="figure" aria-label=""&gt;
 &lt;a href="https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services/developer-experience.jpg"&gt;
 &lt;div class="image-wrapper" style="background: linear-gradient(#0d0e18, #b9cac5);"&gt;
 &lt;img
 alt=""
 title=""
 width="1200"
 height="800"srcset="https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services/developer-experience_hu_25f9e961930f9c6c.webp 420w, https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services/developer-experience_hu_66426f2033e7a07c.webp 789w, https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services/developer-experience_hu_c399469856c46d5f.webp 1019w, "
 sizes="(min-width: 1000px) 789px, (min-width: 500px) 80.42vw, 87.78vw"
 src="https://go-micro.dev/blog/2026/05/29/micro-chat-talk-to-your-services/developer-experience_hu_a59c6abb530f08fd.jpg"
 decoding="async"loading="lazy"
 /&gt;
 &lt;/div&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;We built &lt;code&gt;micro chat&lt;/code&gt; — a CLI that lets you talk to your microservices through an LLM. It discovers every service in the registry, exposes each endpoint as a tool, and lets a model decide which RPCs to call based on what you ask.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-ant-... micro chat --provider anthropic
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; list all users
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → called users_Users_List&lt;span class="o"&gt;({})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;There are &lt;span class="m"&gt;3&lt;/span&gt; users: Alice, Bob, and Charlie.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; send a welcome email to Alice
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → called email_Email_Send&lt;span class="o"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;:&lt;span class="s2"&gt;&amp;#34;alice@example.com&amp;#34;&lt;/span&gt;,&lt;span class="s2"&gt;&amp;#34;template&amp;#34;&lt;/span&gt;:&lt;span class="s2"&gt;&amp;#34;welcome&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Done, welcome email sent to Alice.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; how many orders were placed this week?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → called orders_Orders_Count&lt;span class="o"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;since&amp;#34;&lt;/span&gt;:&lt;span class="s2"&gt;&amp;#34;2026-05-22&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;There were &lt;span class="m"&gt;47&lt;/span&gt; orders placed this week.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;No glue code. No API wrappers. No tool definitions. You write normal Go services with doc comments, and &lt;code&gt;micro chat&lt;/code&gt; turns them into things an LLM can call.&lt;/p&gt;</description></item><item><title>Atlas Cloud Sponsors Go Micro: 300+ AI Models, One Integration</title><link>https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration.html</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration.html</guid><description>&lt;p&gt;&lt;figure role="figure" aria-label=""&gt;
 &lt;a href="https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration/blog-atlas.jpg"&gt;
 &lt;div class="image-wrapper" style="background: linear-gradient(#d5e6fd, #225dc7, #4f97f3);"&gt;
 &lt;img
 alt=""
 title=""
 width="1200"
 height="800"srcset="https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration/blog-atlas_hu_612726cef0d9dbf7.webp 420w, https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration/blog-atlas_hu_a0e3d4b8b2ee2c63.webp 789w, https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration/blog-atlas_hu_76df8b8dafb0cb40.webp 1019w, "
 sizes="(min-width: 1000px) 789px, (min-width: 500px) 80.42vw, 87.78vw"
 src="https://go-micro.dev/blog/2026/05/28/atlas-cloud-sponsors-go-micro-300-ai-models-one-integration/blog-atlas_hu_e1ed09b60f6c82cc.jpg"
 decoding="async"loading="lazy"
 /&gt;
 &lt;/div&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re excited to announce that &lt;strong&gt;&lt;a href="https://www.atlascloud.ai/"&gt;Atlas Cloud&lt;/a&gt;&lt;/strong&gt; is sponsoring Go Micro as an official AI provider partner. Atlas Cloud is now a first-class provider in the &lt;code&gt;ai&lt;/code&gt; package, giving Go Micro users access to 300+ models across text, image, and video through a single integration.&lt;/p&gt;
&lt;h2 id="the-sponsorship"&gt;The Sponsorship&lt;a class="td-heading-self-link" href="#the-sponsorship" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Atlas Cloud is an enterprise AI infrastructure platform that provides a unified API for LLM, image, and video generation. They partner with OpenRouter and ComfyUI, offer SOC 2 and HIPAA compliance, and run a custom inference engine (Atlas Photon) with FP4 quantization for fast, cost-effective inference.&lt;/p&gt;</description></item><item><title>Your Microservices Are Already an AI Platform</title><link>https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform.html</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform.html</guid><description>&lt;p&gt;&lt;figure role="figure" aria-label=""&gt;
 &lt;a href="https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform/blog-mcp.jpg"&gt;
 &lt;div class="image-wrapper" style="background: linear-gradient(#f9fafd, #22305d, #5160be);"&gt;
 &lt;img
 alt=""
 title=""
 width="1200"
 height="800"srcset="https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform/blog-mcp_hu_2142880c2718e3a6.webp 420w, https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform/blog-mcp_hu_ec9e7f9c4109f676.webp 789w, https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform/blog-mcp_hu_6f2d540900bbe0f.webp 1019w, "
 sizes="(min-width: 1000px) 789px, (min-width: 500px) 80.42vw, 87.78vw"
 src="https://go-micro.dev/blog/2026/03/05/your-microservices-are-already-an-ai-platform/blog-mcp_hu_b73698a5ebf9f06e.jpg"
 decoding="async"loading="lazy"
 /&gt;
 &lt;/div&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the pitch: you have microservices. They already have well-defined endpoints, typed request/response schemas, and service discovery. An AI agent needs the same things — a list of tools with input schemas and descriptions. The gap between &amp;ldquo;microservice endpoint&amp;rdquo; and &amp;ldquo;AI tool&amp;rdquo; is surprisingly small.&lt;/p&gt;
&lt;p&gt;With Go Micro + MCP, that gap is &lt;strong&gt;zero lines of code&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Agents Meet Microservices: A Hands-On Demo</title><link>https://go-micro.dev/blog/2026/03/04/agents-meet-microservices-a-hands-on-demo.html</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/03/04/agents-meet-microservices-a-hands-on-demo.html</guid><description>&lt;p&gt;We talk a lot about AI-native microservices. Time to show it. In this post we&amp;rsquo;ll build three services — projects, tasks, and team — and then hand them to an AI agent. The agent will create projects, assign tasks, and query team skills using nothing but natural language.&lt;/p&gt;
&lt;p&gt;No API wrappers. No tool definitions. Just Go comments.&lt;/p&gt;
&lt;h2 id="the-setup"&gt;The Setup&lt;a class="td-heading-self-link" href="#the-setup" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The full code is at &lt;a href="https://github.com/micro/go-micro/tree/master/examples/agent-demo"&gt;&lt;code&gt;examples/agent-demo&lt;/code&gt;&lt;/a&gt;. Here&amp;rsquo;s the architecture:&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 User[&amp;lt;b&amp;gt;User&amp;lt;/b&amp;gt; &amp;lt;br/&amp;gt;natural language] --&amp;gt; Agent[&amp;lt;b&amp;gt;AI Agent&amp;lt;/b&amp;gt; &amp;lt;br/&amp;gt;Claude, GPT, etc.]
 Agent --&amp;gt; Gateway[&amp;lt;b&amp;gt;MCP Gateway&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;:3000&amp;lt;/i&amp;gt;]

 Gateway --&amp;gt; Project[&amp;lt;b&amp;gt;ProjectService&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;Create / Get / List]
 Gateway --&amp;gt; Task[&amp;lt;b&amp;gt;TaskService&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;Create / List / Update]
 Gateway --&amp;gt; Team[&amp;lt;b&amp;gt;TeamService&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;Add / List / Get]&lt;/pre&gt;
&lt;p&gt;The MCP gateway discovers all three services automatically and exposes 9 tools. The agent sees them and knows how to call them — because we wrote good comments.&lt;/p&gt;</description></item><item><title>Making Microservices AI-Native with MCP</title><link>https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp.html</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp.html</guid><description>&lt;p&gt;&lt;figure role="figure" aria-label=""&gt;
 &lt;a href="https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp/blog-mcp.jpg"&gt;
 &lt;div class="image-wrapper" style="background: linear-gradient(#f9fafd, #22305d, #5160be);"&gt;
 &lt;img
 alt=""
 title=""
 width="1200"
 height="800"srcset="https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp/blog-mcp_hu_2142880c2718e3a6.webp 420w, https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp/blog-mcp_hu_ec9e7f9c4109f676.webp 789w, https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp/blog-mcp_hu_6f2d540900bbe0f.webp 1019w, "
 sizes="(min-width: 1000px) 789px, (min-width: 500px) 80.42vw, 87.78vw"
 src="https://go-micro.dev/blog/2026/02/11/making-microservices-ai-native-with-mcp/blog-mcp_hu_b73698a5ebf9f06e.jpg"
 decoding="async"loading="lazy"
 /&gt;
 &lt;/div&gt;
 &lt;/a&gt;
 &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re excited to announce &lt;strong&gt;MCP (Model Context Protocol) support&lt;/strong&gt; in Go Micro v5.15.0 — making your microservices instantly accessible to AI tools like Claude.&lt;/p&gt;
&lt;h2 id="the-vision"&gt;The Vision&lt;a class="td-heading-self-link" href="#the-vision" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Imagine telling Claude: &lt;em&gt;&amp;ldquo;Why is user 123&amp;rsquo;s order stuck?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Claude responds by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Calling your &lt;code&gt;users&lt;/code&gt; service to check the account&lt;/li&gt;
&lt;li&gt;Calling your &lt;code&gt;orders&lt;/code&gt; service to inspect the order&lt;/li&gt;
&lt;li&gt;Calling your &lt;code&gt;payments&lt;/code&gt; service to verify the transaction&lt;/li&gt;
&lt;li&gt;Giving you a complete diagnosis&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;No API wrappers. No manual integrations. Your services just work with AI.&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>