agent-go

module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2026 License: BSD-3-Clause

README

agent-go

通用 AI Agent 框架 (Go Library),基于 Google ADK-Go v2。

架构

agent-go/
├── agent/          # ADK-Go Agent 封装层
│   ├── wails_agent.go   # WailsAgent — 桌面应用 Agent 外观
│   ├── adk_runner.go    # ADK Runner 封装(Event→回调转换)
│   ├── chat_model.go    # Chat Completions API 适配器
│   └── types.go         # OrchestratorCallbacks
├── config/         # 通用配置管理
│   ├── manager.go       # ConfigManager(双文件 JSON)
│   ├── tool_tree.go     # ToolTreeNode 树操作工具
│   └── llm_config.go    # LLMProviderConfig 类型
├── credential/     # 凭据管理(Windows Credential Manager)
├── database/       # 数据库服务
│   ├── service.go       # DBService(ADK session.Service 懒加载)
│   ├── types.go         # Message/Session 通用类型
│   ├── session_ext.go   # 会话扩展存储
│   └── sqlite_util.go   # Checkpoint/Vacuum 工具
├── llm/            # LLM 供应商抽象
│   ├── service.go       # LLMService
│   ├── types.go         # 请求/响应类型
│   └── provider.go      # 请求构建/响应解析
├── mcp/            # MCP 服务器管理 + 工具注入
│   ├── manager.go       # MCP 管理器
│   ├── builtin.go       # 内置 MCP 服务器
│   ├── init.go          # 初始化
│   └── ...
├── memory/         # ADK memory.Service SQLite 实现
│   └── sqlite_service.go
├── skills/         # 技能系统(3级加载 + YAML frontmatter)
├── stream/         # WebSocket 流式通信
│   ├── types.go         # StreamMessage/WsRequest/Orchestrator 接口
│   ├── manager.go       # StreamManager
│   └── ws.go            # WSServer
└── tool/           # 工具执行系统
    ├── types.go         # ToolResult/ToolHandler 类型
    ├── executor.go      # 工具注册表和执行器
    ├── adk_adapter.go   # ADK Tool 适配器
    ├── definitions.go   # 通用工具定义
    └── to_openai.go     # ADK→OpenAI 工具格式转换

核心概念

WailsAgent (agent.WailsAgent)

桌面应用 Agent 外观,封装 ADK-Go Runner。

ConfigManager (config.ConfigManager)

双文件 JSON 配置管理。

LLMService (llm.LLMService)

多供应商 LLM 路由,支持流式 SSE。

StreamManager + WSServer (stream/)

WebSocket 流式通信。

工具系统 (tool/)
  • ToolExecutor — 注册表模式工具执行
  • NewAdkTool() — 将 handler 包装为 ADK tool.Tool
  • DefaultToolDefinitions() — 通用工具定义
  • ToOpenAIDefinitions() — ADK 格式 → OpenAI 格式转换
数据库 (database/)

使用 ADK session.Service 管理消息/会话。应用层数据由项目自行管理。

MCP (mcp/)

MCP 服务器管理与工具注入,提供动态工具注册能力。

Directories

Path Synopsis
Package agent provides the ADK-Go wrapper for Wails desktop applications.
Package agent provides the ADK-Go wrapper for Wails desktop applications.
Package config 提供 LLM 供应商配置相关类型。
Package config 提供 LLM 供应商配置相关类型。
Package credential provides Windows Credential Manager integration.
Package credential provides Windows Credential Manager integration.
Package database provides shared database services for agent-go consumers:
Package database provides shared database services for agent-go consumers:
Package llm provides shared LLM data types for agent-go consumers.
Package llm provides shared LLM data types for agent-go consumers.
Package memory 提供基于 SQLite 的 ADK memory.Service 实现。
Package memory 提供基于 SQLite 的 ADK memory.Service 实现。
Package stream 提供 WebSocket 流式消息适配器, 将 OrchestratorCallbacks 转换为前端 agent-ui 可消费的 JSON 消息。
Package stream 提供 WebSocket 流式消息适配器, 将 OrchestratorCallbacks 转换为前端 agent-ui 可消费的 JSON 消息。
Package tool provides ADK-Go tool.Tool adapters for agent-go consumers.
Package tool provides ADK-Go tool.Tool adapters for agent-go consumers.

Jump to

Keyboard shortcuts

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