adk-golang

module
v0.0.0-...-52cc1ce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2025 License: Apache-2.0

README ΒΆ

WARNING: still under development

ADK for Go

Agent Development Kit (ADK) is a framework for building AI agents, and we're implementing ADK with Go. This project provides Go interfaces and implementations that mirror the Python ADK's architecture while following Go idioms and best practices.

Quick Start:

ollama serve # the example using llama3.2
git clone https://github.com/agent-protocol/adk-golang.git
cd adk-golang
go run ./cmd/adk web examples/agents

Open the browser, select one of the demo app and check it.

Overview

ADK consists of two main parts:

The goal is to be compatible with the other ADK ecosystem by using A2A protocol. The ADK API maybe somewhat different with Python and Java implementation, I mean... this is Golang, why do you need ParallelAgent since ConcurrentAgent is far superior πŸ˜‚

Core Components
  • Agents:
    • CustomAgent
    • LLMAgent
    • RemoteA2aAgent
    • SequentialAgent
    • ConcurrentAgent
  • Tools:
    • FunctionTool
    • AgentTool
    • MCPTool
  • Runner: Orchestrates agent execution with real-time event streaming
  • Sessions: Advanced session management with scoped state and persistence
  • Events: Communication units between agents with streaming support
  • A2A Integration: Complete A2A protocol implementation for remote agents
  • CLI: Comprehensive command-line interface for all operations
  • API Server: HTTP API with Web UI for testing and production deployment

Project Structure

adk-golang/
β”œβ”€β”€ cmd/
β”‚   └── adk/              # CLI application with create, run, web, eval commands
β”œβ”€β”€ pkg/
β”‚   β”œβ”€β”€ agents/           # Agent implementations (Base, LLM, Sequential)
β”‚   β”œβ”€β”€ tools/            # Tool system (Function, Google Search, Agent tools)
β”‚   β”œβ”€β”€ sessions/         # Session management (Memory, File, State, Handlers)
β”‚   β”œβ”€β”€ runners/          # Execution orchestration with event streaming
β”‚   β”œβ”€β”€ a2a/              # A2A protocol implementation and converters
β”‚   β”œβ”€β”€ api/              # HTTP API server and Web UI
β”‚   └── cli/              # CLI command implementations
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ core/             # Core types and interfaces
β”‚   β”œβ”€β”€ llm/              # LLM integrations (interface ready)
β”‚   └── utils/            # Utilities and helpers
β”œβ”€β”€ examples/             # Comprehensive examples and demos
└── docs/                 # Detailed implementation documentation

Directories ΒΆ

Path Synopsis
cmd
adk command
pkg
a2a
Package a2a provides conversion utilities between A2A protocol data structures and ADK core data structures.
Package a2a provides conversion utilities between A2A protocol data structures and ADK core data structures.
agents
Package agents provides concrete implementations of agent types.
Package agents provides concrete implementations of agent types.
api
Package api provides HTTP API server implementation equivalent to Python's fast_api.py
Package api provides HTTP API server implementation equivalent to Python's fast_api.py
cli
core
Package core defines request/response types and context structures for the ADK framework.
Package core defines request/response types and context structures for the ADK framework.
ptr
runners
Package runners provides orchestration implementations for agent execution.
Package runners provides orchestration implementations for agent execution.
sessions
Package sessions provides file-based session persistence.
Package sessions provides file-based session persistence.
tools
Package tools provides concrete implementations of tool types.
Package tools provides concrete implementations of tool types.
tools/async
Package async provides examples of async tool implementations.
Package async provides examples of async tool implementations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL