# go-agent

A Go framework for building AI agents with pluggable model providers, short and long-term memory, input and output guardrails, and multi-agent coordination patterns such as using one agent as a tool for another.

go-agent provides a small Agent core with Generate, GenerateWithFiles and GenerateStream methods, plus provider adapters for Gemini, OpenAI, Anthropic, Ollama and a local dummy model for testing. It combines short-term memory with vector-store backed long-term memory, and its ADK modules wire together models, memory, tools, sub-agents, CodeMode and UTCP tool orchestration.

Agents automatically load local instructions from a .skills directory, using either the conventional SKILL.md layout or plain Markdown files with optional YAML frontmatter, added to the system instructions for normal, streaming, file-backed and tool-planning requests. The framework also provides agent-as-tool patterns for specialist agents and hierarchical workflows, input and output guardrails, checkpoint and restore support, and composable retry, timeout, rate-limit and token-budget middleware around model calls.

Website: https://github.com/Protocol-Lattice/go-agent
