Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
An agent framework for Go with graph-aware memory, UTCP-native tools, and multi-agent orchestration. Built for production.
| Date | Stars |
|---|---|
| 2026-07-31 | 252 |
| 2026-08-03 | 252 |
| 2026-08-12 | 253 |
| 2026-08-18 | 253 |
| 2026-08-20 | 254 |
| 2026-08-22 | 254 |
| 2026-08-23 | 253 |
| 2026-08-28 | 254 |
| 2026-09-01 | 253 |
| 2026-09-08 | 254 |
| 2026-09-09 | 253 |
| 2026-09-17 | 254 |
| 2026-09-18 | 255 |
| 2026-09-20 | 255 |
Today
— stars today
This week
+2 stars this week
This month
+1 stars this month
Momentum
37.0
growth rate 0.79%/day
# go-agent
[](https://go.dev/dl/)
[](https://github.com/Protocol-Lattice/go-agent/actions/workflows/go.yml)
[](https://pkg.go.dev/github.com/Protocol-Lattice/go-agent)
[](https://goreportcard.com/report/github.com/Protocol-Lattice/go-agent)
go-agent is a Go framework for building AI agents with pluggable LLM providers, memory, file context, guardrails, UTCP tool orchestration, and multi-agent coordination.
Use it when you want agent runtime pieces that stay idiomatic in Go:
- A small `agent.Agent` core with `Generate`, `GenerateWithFiles`, and `GenerateStream`
- Provider adapters for Gemini, OpenAI, Anthropic, Ollama, and a local dummy model
- Short-term memory plus vector-store backed long-term memory
- ADK modules for wiring models, memory, tools, sub-agents, CodeMode, and UTCP
- Agent-as-tool patterns for specialist agents and hierarchical workflows
- Input/output guardrails and checkpoint/restore support
- Composable retry, timeout, rate-limit, and token-budget model middleware
## Local Skills
Agents automatically load local instructions from `.skills` in the process working directory. Use either the conventional `SKILL.md` layout or Markdown files directly in `.skills`:
```text
.skills/
├── code-review/
│ └── SKILL.md
└── release.md
```
Each skill is added to the system instructions for normal, streaming, file-backed, and tool-planning requests. `SKILL.md` may include optional YAML-style front matter:
```markdown
---
name: release
description: Prepare safe releases
---
Run the full test suite before proposing a release.
```
Set `Options.SkillsDir` to use another directory, call `agent.ReloadSkills()` after editing a long-running agent's files, or set `DisableSkills: true` to opt out.
## Install
```bash
go get github.com/Protocol-Lattice/go-agent
```
For this repository:
```bash
git clone https://github.com/Protocol-Lattice/go-agent.git
cd go-agent
go test ./...
```
The module currently targets Go `1.25.10`.
## Quick Start
This example runs without API keys. It uses the dummy model and in-memory storage, so it is safe for tests and local wiring checks.
```go
package main
import (
"context"
"fmt"
"log"
agent "github.com/Protocol-Lattice/go-agent"
"github.com/Protocol-Lattice/go-agent/src/memory"
"github.com/Protocol-Lattice/go-agent/src/models"
)
func main() {
ctx := context.Background()
mem := memory.NewSessionMemory(
memory.NewMemoryBankWithStore(memory.NewInMemoryStore()),
8,
)
a, err := agent.New(agent.Options{
Model: models.NewDummyLLM("local:"),
Memory: mem,
SystemPrompt: "You are concise and helpful.",
})
if err != nil {
log.Fatal(err)
}
out, err := a.Generate(ctx, "demo-session", "Say hello in one sentence.")
if err != nil {
log.Fatal(err)
}
fmt.Println(out)
}
```
## Real Model Providers
Use `models.NewLLMProvider` when you want provider selection from configuration or flags.
```go
model, err := models.NewLLMProvider(ctx, "openai", "gpt-4o-mini", "")
if err != nil {
log.Fatal(err)
}
```
Supported provider names:
| Provider | Aliases | Required environment |
| --- | --- | --- |
| Gemini | `gemini`, `google` | `GOOGLE_API_KEY` or `GEMINI_API_KEY` |
| Vertex AI | `vertex`, `vertexai`, `vertex-ai` | `GOOGLE_CLOUD_PROJECT`, `GOOGLE_CLOUD_LOCATION` (or `GOOGLE_CLOUD_REGION`), and Application Default Credentials |
| OpenAI | `openai` | `OPENAI_API_KEY` or `OPENAI_KEY` |
| Anthropic | `anthropic`, `claude` | `ANTHROPIC_API_KEY` |
| Ollama | `ollama` | optional `OLLAMA_HOST`, defaults to `http://localhost:11434` |
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` or `OPENROUTER_KEY` |
Embeddings are selectedExcerpt of 29,835 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:dfcdfd3f270c1e0a, topic:agents, topic:multi-agent, desc:agent framework