Show HN: Agent-SDK-go โ€“ Build crash-resilient AI agents in Go Agentic Environment released Agent-SDK-go, an open-source Go SDK for building durable AI agents that resume after crashes, running in-process with zero setup via durable-go or switching to Temporal or Restate for distributed execution. The library requires Go 1.26+ and supports OpenAI, Anthropic, Gemini, DeepSeek and Ollama LLM providers, MCP servers over stdio or streamable HTTP, A2A agent interoperability, sub-agents, human-in-the-loop approvals, Redis-backed conversation history, RAG, token budget caps and OpenTelemetry observability. Agentic Environment states the project is an independent community library not affiliated with Temporal Technologies or Restate, and releases follow Semantic Versioning. Build durable Go AI agents that pick up right where they left off. Open-source Go SDK for building durable AI agents. Runs in-process with crash-resilient execution via durable-go https://github.com/agenticenv/durable-go with zero setup, or switch to Temporal https://temporal.io / Restate https://restate.dev for crash-resilient, distributed execution. Every core component is a pluggable interface, so you're never locked in. ๐Ÿ“– Documentation https://docs.agenticenv.ai ยท Quickstart https://docs.agenticenv.ai/getting-started/quickstart ยท Examples https://docs.agenticenv.ai/examples/running-examples Releases follow Semantic Versioning https://semver.org/ ; see the latest release https://github.com/agenticenv/agent-sdk-go/releases/latest . Independent community library โ€” not affiliated with Temporal Technologies or Restate. - LLM providers โ€” OpenAI, Anthropic, Gemini, DeepSeek, Ollama local + custom via interfaces.LLMClient - Tools & MCP โ€” built-in and custom tools; MCP servers over stdio or streamable HTTP - A2A โ€” expose agents as A2A servers or connect remote A2A agents as tools - Sub-agents โ€” delegate to specialist agents with independent LLMs, tools, and task queues - Human-in-the-loop approvals โ€” gate tool calls, MCP invocations, and delegation - Conversation history โ€” multi-turn sessions via in-memory or Redis backends - Memory & RAG โ€” long-term scoped memory and retrieval-augmented generation - Streaming & AG-UI โ€” partial token streaming; AG-UI protocol for frontend integration - Reasoning โ€” extended thinking on Anthropic, Gemini, DeepSeek, and OpenAI reasoning models - Token usage โ€” aggregate prompt, completion, and reasoning token counts per run - Budget control โ€” cap token spend per run; stop execution or require human-in-the-loop approval when the limits are reached - Lifecycle hooks โ€” middleware at LLM, tool, retrieval, and memory lifecycle points - Error control โ€” fallback LLM after a classified failure, one extra-iteration grant, per-tool circuit breaker - Execution config โ€” per-operation timeouts and max attempts via With ExecutionConfig - Durable execution โ€” crash-resilient runs on every runtime; reconnect to active runs and resume event streams after a restart - Distributed execution โ€” with Temporal, decouple client triggers from worker execution across processes; with Restate, scale via registered endpoint deployments - Observability โ€” OpenTelemetry traces, metrics, and structured logs go get github.com/agenticenv/agent-sdk-go@latest Go 1.26+. Agents are durable by default, no infrastructure required. Add a Temporal https://temporal.io or Restate https://restate.dev server only when you want distributed, multi-process execution โ€” see temporal-setup.md https://github.com/agenticenv/agent-sdk-go/blob/main/temporal-setup.md and restate-setup.md https://github.com/agenticenv/agent-sdk-go/blob/main/restate-setup.md . In-process zero setup : import "context" "fmt" "time" "github.com/agenticenv/agent-sdk-go/pkg/agent" "github.com/agenticenv/agent-sdk-go/pkg/llm" "github.com/agenticenv/agent-sdk-go/pkg/llm/openai" // errors omitted for brevity llmClient, := openai.NewClient llm.WithAPIKey "sk-..." , llm.WithModel "gpt-4o" , a, := agent.NewAgent agent.WithSystemPrompt "You are a helpful assistant." , agent.WithLLMClient llmClient , // Durable by default journals to ./agent data/