Golang Agent Development Kit

What is Golang Agent Development Kit?
The Go Agent Development Kit (GO-ADK) is a powerful toolkit designed to help developers build production-ready AI agents using the Go programming language. It simplifies the process of integrating language models, tool execution, memory, and multi-agent coordination into a single, pragmatic API. This allows developers to focus on creating domain-specific logic without getting bogged down by complex orchestration.
GO-ADK is a hybrid RAG (Retrieval-Augmented Generation) + Graph agent framework, making it a versatile choice for a wide range of AI agent development needs.
Benefits
Simplified Development
GO-ADK provides a comprehensive set of tools and abstractions that streamline the development process. Developers can focus on their specific use cases rather than dealing with the underlying orchestration.
Modular Design
The kit's modular architecture allows for easy customization and extension. Developers can plug in different models, tools, and memory engines to suit their needs.
Hybrid RAG + Graph Framework
GO-ADK combines the strengths of RAG and Graph frameworks, offering a robust solution for building AI agents that can handle complex tasks and interactions.
Tooling Ecosystem
The kit includes a variety of built-in tools and supports the implementation of custom tools. This makes it easy to extend the functionality of AI agents.
Memory Management
GO-ADK offers advanced memory management features, including importance scoring, weighted retrieval, and pruning strategies. This ensures that AI agents can effectively manage and retrieve information.
Model Abstraction
The kit supports multiple language models, including Gemini 2.5 Pro, Anthropic, and Ollama. This flexibility allows developers to choose the best model for their specific needs.
Universal Tool Calling Protocol (UTCP)
GO-ADK supports UTCP, enabling seamless tool invocation and integration with various providers.
Use Cases
AI Agent Development
GO-ADK is ideal for developers looking to build AI agents for a variety of applications, from customer service bots to research assistants.
Research and Development
The kit's advanced memory management and tooling capabilities make it a valuable tool for researchers and developers working on cutting-edge AI projects.
Enterprise Applications
GO-ADK can be used to build AI agents for enterprise applications, such as data analysis, process automation, and decision support systems.
Quick Start
Prerequisites
- Go 1.22+
- PostgreSQL 15+ with the pgvector extension
- Gemini API key exported as
GOOGLE_API_KEY
orGEMINI_API_KEY
Clone and Install
git clone https://github.com/Raezil/go-agent-development-kit.gitcd go-agent-development-kitgo mod download
Configure Environment Variables
export GOOGLE_API_KEY="<your-gemini-api-key>"export DATABASE_URL="postgres://admin:admin@localhost:5432/ragdb?sslmode=disable"export ADK_EMBED_PROVIDER="gemini"
Provision PostgreSQL (Optional but Recommended)
CREATE EXTENSION IF NOT EXISTS vector;
Run the Demo Conversation
go run ./cmd/demo --dsn "$DATABASE_URL"
Try the Zero-Config Kit Quickstart
go run ./cmd/quickstart
Configuration & Extensibility
Swap Language Models
Developers can implement themodels.Agent
interface or use bundled adapters for Gemini, Anthropic, and Ollama. Provide a loader viaruntime.WithCoordinatorModel
.
Add or Remove Tools
Implement theagent.Tool
interface and pass them withruntime.WithTools
. Tools follow thetool:<name>
invocation pattern.
Register Sub-Agents
Addagent.SubAgent
implementations withruntime.WithSubAgents
and delegate in conversation withsubagent:<name> do something
.
Memory Backends
Use the built-in in-memory default or supply a customruntime.WithMemoryFactory
/runtime.WithSessionMemoryBuilder
for Postgres, Qdrant, or bespoke vector stores.
Building with Modules
Thepkg/adk
package introduces a lightweight module system so developers can provision capabilities declaratively.
adk_agent, _ := adk.New(ctx,kit.WithModules(modules.NewModelModule("coordinator", modules.StaticModelProvider(models.NewDummyLLM("Coordinator:"))),modules.InMemoryMemoryModule(8),modules.NewToolModule("default-tools", modules.StaticToolProvider([]agent.Tool{&tools.EchoTool{}}, nil)),),)agent, _ := adk_agent.BuildAgent(ctx)
Advanced Memory Engine
Thepkg/memory
package exposes anEngine
that composes retrieval heuristics, clustering, and pruning on top of anyVectorStore
. Developers can tune retrieval with runtime flags.
go run ./cmd/demo \--memory-sim-weight=0.6 \--memory-recency-weight=0.2 \--memory-half-life=48h \--memory-source-boost="pagerduty=1.0,slack=0.6"
Development Workflow
- Write or update Go code.
- Format as needed (
gofmt
or your editor tooling). - Run the full test suite:
go test ./...
- Update documentation and examples when adding new tools, models, or memory backends.
Troubleshooting Tips
- Missing pgvector extension: Ensure
CREATE EXTENSION vector;
runs before connecting. - API key issues: Confirm
GOOGLE_API_KEY
orGEMINI_API_KEY
is exported in the same shell where you run the demo. - Tool discovery: Verify tool and sub-agent names are unique to avoid collisions in the catalog/directory registries.
- Deterministic tests: Use the dummy model adapter for repeatable results when writing unit tests around orchestration logic.
Contributing
Issues and pull requests are welcome! Please update the README and examples when contributing new models, tools, or memory backends so the community benefits from your additions.
Comments
Please log in to post a comment.