<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>AI Agents in Go</title>
    <link>https://golang-agents.com/</link>
    <description>A code-first guide to building AI agents in Go</description>
    <language>en</language>
    <lastBuildDate>Sun, 18 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://golang-agents.com/feed.xml" rel="self" type="application/rss+xml"></atom:link>
    <item>
      <title>Workflow or agent? The shapes, in Go</title>
      <link>https://golang-agents.com/design/workflows-vs-agents/</link>
      <guid>https://golang-agents.com/design/workflows-vs-agents/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>Programs that call a model come in five shapes, from a fixed sequence of calls to several cooperating agents. Pick the simplest one that handles the task, go further only when the task forces you to, and mix shapes when a task has a routine part and an open-ended part.</description>
    </item>
    <item>
      <title>Twelve measured mistakes from the book’s agent runs</title>
      <link>https://golang-agents.com/findings/measured-mistakes/</link>
      <guid>https://golang-agents.com/findings/measured-mistakes/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>Every failure on this page happened in a recorded run of the book’s code, and each comes with its task, its models, how many runs it rests on, the date, and the chapter. What went wrong, how often, and what the code changed because of it.</description>
    </item>
    <item>
      <title>One sentence in a tool description decided 79 of 80 first moves</title>
      <link>https://golang-agents.com/findings/tool-description-poisoning/</link>
      <guid>https://golang-agents.com/findings/tool-description-poisoning/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>A sentence added to an MCP tool’s description, a tool the model hadn’t called yet, steered the first move of four models in 79 of 80 replies. A label marking the text as the server’s cut that to 57. What was tested, what it can’t show, and the defenses that work upstream of the model.</description>
    </item>
    <item>
      <title>The agent loop in Go</title>
      <link>https://golang-agents.com/loop/agent-loop/</link>
      <guid>https://golang-agents.com/loop/agent-loop/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>An agent is a model inside a loop, and the loop is plain Go. This page reads the whole loop, about 30 lines, stage by stage, along with the rules that keep it correct.</description>
    </item>
    <item>
      <title>Tool calling in Go, on the wire</title>
      <link>https://golang-agents.com/loop/tool-calling/</link>
      <guid>https://golang-agents.com/loop/tool-calling/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>What a tool call looks like as JSON on an OpenAI-compatible chat completions API, how a Go client sends tool definitions and reads calls back, and the rules that keep a conversation valid.</description>
    </item>
    <item>
      <title>Why Go for agents, from the book’s evidence</title>
      <link>https://golang-agents.com/loop/why-go/</link>
      <guid>https://golang-agents.com/loop/why-go/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>An agent spends most of its time waiting on a network, running work side by side, and deciding when to stop. Four places where Go’s standard tools did that job in the book’s code, with the numbers, and what Go costs you here.</description>
    </item>
    <item>
      <title>Before you leave an agent running: a checklist</title>
      <link>https://golang-agents.com/production/launch-checklist/</link>
      <guid>https://golang-agents.com/production/launch-checklist/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>Twenty-three checks for an agent that will run unattended and spend money, grouped by what can go wrong, each with the chapter that builds it and, where the book measured one, the failure that shows why it matters.</description>
    </item>
    <item>
      <title>How chat completions and the Messages API differ</title>
      <link>https://golang-agents.com/providers/differences/</link>
      <guid>https://golang-agents.com/providers/differences/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>The same agent request, sent as OpenAI-style chat completions through OpenRouter and as Anthropic’s Messages API, differs in twelve places, from where the system prompt goes to how a stream ends. A table of each difference, with the chapter and the code that handles it.</description>
    </item>
    <item>
      <title>Go libraries and SDKs the book uses or compares</title>
      <link>https://golang-agents.com/providers/libraries/</link>
      <guid>https://golang-agents.com/providers/libraries/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>The provider SDKs, the MCP SDK, OpenTelemetry, and the five Go agent frameworks that the book’s code imports or measures, each with its pinned version, what it does well, what it costs, and the part of a harness it stands in for.</description>
    </item>
    <item>
      <title>Gemini, Ollama, Bedrock, and Cohere for Go agents</title>
      <link>https://golang-agents.com/providers/more-providers/</link>
      <guid>https://golang-agents.com/providers/more-providers/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>A reference for writing a third adapter. How the native APIs of Google’s Gemini, Ollama, Amazon Bedrock, and Cohere carry the system prompt, tool calls, tool results, stop reasons, and usage, whether each offers an OpenAI-compatible endpoint, and its official Go library, from each provider’s documentation as of October 18, 2026.</description>
    </item>
    <item>
      <title>A scripted agent loop, no model needed</title>
      <link>https://golang-agents.com/run/ch01-scripted-loop/</link>
      <guid>https://golang-agents.com/run/ch01-scripted-loop/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>Run a complete agent loop that fixes a failing Go test, driven by a script of replies recorded from a real model. No API key and no network, with tests that run in milliseconds.</description>
    </item>
    <item>
      <title>A real agent that fixes a failing test</title>
      <link>https://golang-agents.com/run/ch04-first-agent/</link>
      <guid>https://golang-agents.com/run/ch04-first-agent/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>The same 30-line loop, now driven by a real model’s recorded replies, with tools that run go test for real on your machine. Replay two models’ different paths to the same fix, and a run that recovers from three bad tool calls.</description>
    </item>
    <item>
      <title>Streaming an agent’s progress to a browser</title>
      <link>https://golang-agents.com/run/stream-to-browser/</link>
      <guid>https://golang-agents.com/run/stream-to-browser/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <description>A server written with net/http alone sends an agent’s events, as they happen, to a page that reads them with EventSource. The headers, the flush, a deadline per write, a heartbeat, a client that leaves, and a shutdown that ends open streams, from a tested example.</description>
    </item>
  </channel>
</rss>
