v0.1.0
π The first tagged release of agents-go β build production AI agents in Go.
agents-go is a faithful Go port of the OpenAI Agents SDK (tracking upstream v0.18.2): the same run loop, the same item model, the same defaults β type-safe by construction and idiomatic in Go. It has tracked upstream feature-for-feature, and today it gets its first tag. π₯³
Highlights
Core SDK
- Agents & a faithful run loop β same semantics as the Python SDK; streaming shares the exact same loop, so behavior is written once.
- Type-safe tools β a tool is a plain generic Go function; argument schemas and structured outputs are reflected from your structs, not runtime maps.
- Handoffs β triage and delegate between agents.
- Guardrails β input, output, and tool-level checks; a tripwire halts the run.
- Durable human-in-the-loop β pause a run for approval, serialize its state to JSON, and resume later β even in another process.
- Sessions β in-memory, JSONL file, SQLite/Postgres, or OpenAI server-side history with automatic compaction.
- Streaming β token and item events as a range-able Go iterator.
- Production plumbing β retry, fallback, and multi-provider routing as composable model decorators.
- Tracing β spans for every model call, tool call, handoff, and guardrail.
Batteries included
- MCP client β stdio and streamable-HTTP tool servers.
- Code sandboxes β run model-written code in Docker, SSH, or local backends; edit files via
apply_patch. - Agent Skills β load
SKILL.mdskills. - agents-server β a full web app over the SDK: a versioned REST API, WebSocket streaming, and an embedded browser UI, with tool approval, tracing, and background
spawn_tasksubagents.
Two ways to use it
As a library:
go get github.com/zzir/agents-goAs an app β download a prebuilt agents-server binary for your platform from the Assets below (Linux / macOS / Windows, amd64 / arm64), then run:
./agents-server --port 9527Verify your download against checksums.txt.
Design notes
- Responses API only β internal item types are OpenAI Responses types; Chat Completions is intentionally not modeled.
- Dependency-light core β one small module; Docker/SSH sandboxes, SQL sessions, and Skills are opt-in submodules.
- Every intentional divergence from the Python SDK is documented.
Get started
Every feature ships with a runnable example:
export OPENAI_API_KEY=sk-...
go run ./examples/hello # minimal agent
go run ./examples/handoffs # triage β specialists
go run ./examples/hitl # pause, approve, resumeDocs: Documentation Β· Feature reference Β· Examples
This is the very first release β issues and feedback are hugely welcome. Here's to v0.1.0! π