Go 写的 AI Agent 框架:既能跑自带循环的 Agent(OpenAI / Anthropic),也能把本地 Agent CLI(Claude Code 等)包装成同形状的 Runner,共享同一套 Tool / Hook / Session。
基于 Cago。仍在迭代,API 可能变动。
agent/— 核心 Runtime。自带多轮循环、流式事件、工具并发执行、七段 Hook、Session+Store。provider/— 模型 Provider 抽象。实现:openai;占位:anthropics;测试替身:providertest。agent.Tool— 用 Go 结构体 +jsonschematag 自动生成 JSON Schema 的工具接口。mcp/— Loopback MCP Bridge,把 Go 工具用 streamable-HTTP 暴露成 MCP server。clisdk/— 把本地 Agent CLI 当作Runner;内置claudecode后端(含原生 hook 协议)。tool/subagent/— 把多个*agent.Agent打包成一个分派工具,子事件通过SubAgentEvent冒泡到父流。rag/embedding/— Embedding Provider 抽象 + OpenAI 实现。
go get github.com/cago-frame/agentsGo 1.26+。用 clisdk/claudecode 还需要本机装好并登录 claude CLI。
完整可跑代码见 example/:
| 目录 | 说明 |
|---|---|
example/simple |
agent.Agent + OpenAI + 两个工具 + BeforeModel hook 注入中途消息 |
example/subagent |
纯 Go sub-agent 组合 |
example/clisdk-claude |
clisdk.Agent 驱动真实 Claude Code CLI,含 Go 工具 / sub-agent / PostToolUse hook |
example/clisdk-substream |
Claude Code 流式 / partial-message 处理 |
make test # go test -v ./...
make lint # golangci-lint run
make lint-fix # golangci-lint run --fix
make cover # coverage.out + func summary