Testing AI Agents with tamesu: Simulated Users, LLM Judges and a Red Team in CI (English)

Testing AI Agents with tamesu: Simulated Users, LLM Judges and a Red Team in CI (English)

Most AI agents are tested by hand: a few messages typed into a chat window before a release. tamesu is an open-source Go CLI that turns those checks into a suite. A simulated user with a persona talks to your agent, and deterministic checks and LLM judges grade the result. This guide tests a real Genkit Go support agent: four conversation tests, a prompt edit that silently breaks the refund policy and gets caught three ways, and a red team of ten attacks mapped to the OWASP LLM Top 10.

Testing A2A Agents with tamesu: Tasks, Delegations and Agents You Cannot Trust (English)

Testing A2A Agents with tamesu: Tasks, Delegations and Agents You Cannot Trust (English)

Your agent now talks to other agents over the A2A protocol. A chat test cannot tell you which agent it asked, what it sent, or what it does when another agent fails or lies. tamesu is an open-source Go CLI that tests an A2A agent from both sides: it plays the customer in front of your agent and the remote agents behind it. This guide tests a real Genkit Go concierge with eight tests: the agent card, the task lifecycle, delegations, a billing outage, a prompt injection sent by another agent, and a second agent that plays the customer.

Build an LLM Gateway with hikyaku: One Endpoint, AI-Picked Models and Failover Across Providers (English)

Build an LLM Gateway with hikyaku: One Endpoint, AI-Picked Models and Failover Across Providers (English)

Most apps hard-code one model from one provider. The day that provider is slow, down or too expensive, you change code. hikyaku, the open-source Go message relay, can sit in front of all your models as one OpenAI-compatible endpoint. This guide builds a gateway over Gemini, Claude and OpenAI: clients ask for fast, smart or auto, a decision model picks the model for auto in about 150 ms, streaming and function calling pass through, and a failed provider falls back to the next one.

Introducing hikyaku: A Message Relay That Routes with AI and Never Drops a Message (English)

Introducing hikyaku: A Message Relay That Routes with AI and Never Drops a Message (English)

hikyaku is a new open-source message relay written in Go. It reads messages from endpoints (a webhook, a WebSocket, Kafka, SQS and more) and delivers them to others, and one YAML file describes the whole relay. Every step retries and falls back, and what still fails goes to a dead-letter queue you can replay. An AI router picks the destination of each message with a decision model that says how sure it is. This guide builds a support intake relay with AI triage, breaks it on purpose, tests it for CI, and then turns hikyaku into an LLM proxy.

Agentic Browser Testing with tamesu: Tell the Browser What the User Wants (English)

Agentic Browser Testing with tamesu: Tell the Browser What the User Wants (English)

tamesu is an open-source Go CLI that tests a web app the way a person uses it. You write a goal in plain language, a browser agent drives Chromium until the goal is met, and the plan is cached so the next run needs no model calls for it. This guide builds a real suite for a small shop: a checkout flow, a wrong password, a backend that is down, an accessibility audit and a visual baseline, all in one YAML file and ready for CI.

How to Build Production-Ready AI Phone Agents: Infrastructure, Models, and Telephony (English)

How to Build Production-Ready AI Phone Agents: Infrastructure, Models, and Telephony (English)

A practical guide to taking a voice AI agent from a laptop demo to a phone agent that answers real calls. You build an AI receptionist on LiveKit Agents: real-time infrastructure, STT, LLM and TTS selection, SIP trunks and dispatch rules, tools that call a backend, cold and warm transfers to a human, deployment and monitoring, and a pre-launch test plan with unit tests and real phone calls placed by tamesu.

Introducing tobira: Every Database, One Terminal, and One MCP Server for Your Agents (English)

Introducing tobira: Every Database, One Terminal, and One MCP Server for Your Agents (English)

tobira is a new open-source Go CLI and terminal UI that puts one driver contract in front of 31 databases: PostgreSQL, SQLite, MongoDB, Redis, ClickHouse, Qdrant, Neo4j and more. One query command with JSON, CSV and exit codes for scripts, a read-only guard the query text cannot lift, an AI assistant that answers questions by running read-only queries, an MCP server that gives Claude Code and Cursor the connections you choose, and an agent skill that teaches your coding agent the whole CLI.

A Software Factory on Kubernetes: Gemini Builds, jev Decides (Genkit + senro in Go) (English)

A Software Factory on Kubernetes: Gemini Builds, jev Decides (Genkit + senro in Go) (English)

A feature request goes in; a designed, planned, implemented, tested and reviewed Go module comes out, or a brief for a human explaining why the factory stopped. Every stage is a Genkit flow running as a pod through senro, Gemini does the writing, and jev, a decision model, holds every gate: is the design ready, should the code ship, go back, or stop. A practical guide with a local kind cluster and every output pasted from a real run.

Genkit Flows on Kubernetes, Routed by a Decision Model: senro + jev in Go (English)

Genkit Flows on Kubernetes, Routed by a Decision Model: senro + jev in Go (English)

Run every step of an AI pipeline as a Genkit flow inside a Kubernetes pod, and let jev, a decision model reached through Genkit’s System One plugin, decide which steps run next. Gemini writes, jev decides, senro runs the pods. A practical guide with a local kind cluster and every output pasted from a real run.

Dash: An Open-Source Home Assistant Built on the Gemini 3.8 Live API (English)

Dash: An Open-Source Home Assistant Built on the Gemini 3.8 Live API (English)

Dash is my open-source ambient display for a wall tablet, in the spirit of a Nest Hub, with a “Hey Dash” voice assistant on top. This article is about that assistant: how the Gemini Live API works under the hood (ephemeral tokens, the WebSocket protocol, PCM audio, tool calls, Google Search grounding), what Gemini 3.8 Live changes, what it costs per question, and the design decisions that keep the API key on the server and the microphone off Gemini until you say the wake word.

Building a Real Pipeline with senro: Monorepos, Caching and Triggers (English)

Building a Real Pipeline with senro: Monorepos, Caching and Triggers (English)

A practical guide to the parts of senro you use every day: checking code out into a workspace, caching a step so it never runs twice, fanning one step out over every module in a monorepo, narrowing that fan-out to only what a change affects, and letting the pipeline binary decide for itself whether a webhook is its business.

Introducing senro: A Pipeline Engine You Program in Go (English)

Introducing senro: A Pipeline Engine You Program in Go (English)

CI systems ask you to describe real programming (dependency graphs, retries, branching, recovery) in YAML, a language with no functions, no types, no tests and no debugger. senro is a new open-source pipeline engine that starts from the other end: the pipeline is the Go program. It builds an immutable plan, runs it locally, in containers, on Kubernetes or over SSH, and exposes one event stream you can attach to live.

Debugging senro Pipelines: Replay a Run, Shell Into a Live Step, Audit a Cache (English)

Debugging senro Pipelines: Replay a Run, Shell Into a Live Step, Audit a Cache (English)

Debugging a CI failure usually means adding a print statement and pushing again. senro records every run as an append-only event stream you can replay with the same client that watched it live, lets you open a shell inside a step while it is still running, explains cache misses component by component, and will re-execute a step to check whether it lied about being pure. This is the field guide, in the order you should use it.

Genkit Flows as senro Steps: Extremely Powerful AI Pipelines in Go (English)

Genkit Flows as senro Steps: Extremely Powerful AI Pipelines in Go (English)

A Genkit flow is a great unit of AI work and a poor unit of orchestration. senro is a pipeline engine where every step already has retries, caching, an event stream and live attach. Put a flow inside a step and each model call becomes a graph node: change one document out of three and you pay for one call, not three. A practical guide, with every example running against the real Gemini API.

Building Agents in Go: Where Genkit Shines vs ADK 2.0 (English)

Building Agents in Go: Where Genkit Shines vs ADK 2.0 (English)

A companion to my Genkit Go vs ADK Go 2.0 comparison, this time only about agents. I built a fire-and-forget research team in 90 lines of Genkit: an orchestrator with two sub-agents, artifacts, cross-vendor model fallback and human approval, then tried to build the same thing in ADK. Middleware and the plugin ecosystem are what make the difference, and every program in this article ran.

Genkit Go vs ADK Go 2.0: a Hands-On Look at Boilerplate and Low-Level Control (English)

Genkit Go vs ADK Go 2.0: a Hands-On Look at Boilerplate and Low-Level Control (English)

I built the same eight programs twice, once with Genkit Go and once with Google’s ADK Go 2.0, and ran them all against Gemini: hello world, structured output, streaming, tools, middleware, custom models, multi-turn and HTTP serving. This is what the code actually looks like in each, where ADK makes you pay an “agent tax”, where Genkit lets you drop lower, and where ADK’s ceremony genuinely pays off.

Hot-Reloading Kubernetes Secrets and ConfigMaps in Go with mamori (No Pod Restarts) (English)

Hot-Reloading Kubernetes Secrets and ConfigMaps in Go with mamori (No Pod Restarts) (English)

You updated a Kubernetes Secret and then did the ritual: kubectl rollout restart. There is a better way. mamori watches your Secrets and ConfigMaps with native informers and reconciles the change into your running Go process, atomically and validated, without bouncing a single pod.

Pagination