当前位置: 首页 > news >正文

Go语言AI智能体开发套件(ADK) - 构建复杂AI代理的开源框架

Go语言AI智能体开发套件(ADK)

Agent Development Kit (ADK) 是一个灵活、模块化的框架,将软件开发原则应用于AI智能体创建。它旨在简化从简单任务到复杂系统的代理工作流程的构建、部署和编排。虽然针对Gemini进行了优化,但ADK是模型无关、部署无关的,并与其他框架兼容。

✨ 功能特性

  • 符合Go语言习惯:设计自然,充分利用Go语言的优势
  • 丰富的工具生态系统:利用预构建工具、自定义函数或集成现有工具,为代理提供多样化能力
  • 代码优先开发:直接在Go中定义代理逻辑、工具和编排,实现终极灵活性、可测试性和版本控制
  • 模块化多代理系统:通过组合多个专业代理来设计可扩展的应用程序
  • 随处部署:轻松容器化并部署代理,对Google Cloud Run等云原生环境提供强力支持

🚀 安装指南

要将ADK Go添加到您的项目中,请运行:

go get google.golang.org/adk

系统要求

  • Go 1.21 或更高版本
  • 支持的操作系统:Linux、macOS、Windows
  • 可选:Google Cloud账号(用于云部署)

📖 使用说明

基础代理创建

package mainimport ("context""iter""google.golang.org/adk/agent""google.golang.org/adk/session"
)// 自定义代理实现
type CustomAgent struct {name        stringdescription stringsubAgents   []agent.Agent
}func (a *CustomAgent) Name() string { return a.name }
func (a *CustomAgent) Description() string { return a.description }
func (a *CustomAgent) SubAgents() []agent.Agent { return a.subAgents }func (a *CustomAgent) Run(ctx agent.InvocationContext) iter.Seq2[*session.Event, error] {return func(yield func(*session.Event, error) bool) {// 代理执行逻辑event := &session.Event{Author: a.name,// 设置其他事件属性}yield(event, nil)}
}func main() {// 创建自定义代理customAgent := &CustomAgent{name:        "MyAgent",description: "我的自定义AI代理",}// 使用代理加载器loader := agent.NewSingleLoader(customAgent)// 运行代理逻辑...
}

LLM代理示例

package mainimport ("google.golang.org/adk/agent/llmagent""google.golang.org/adk/model""google.golang.org/genai"
)func createLLMAgent() (agent.Agent, error) {cfg := llmagent.Config{AgentConfig: agent.Config{Name:        "聊天代理",Description: "处理用户对话的LLM代理",},Model: &model.LLM{// 配置LLM模型},Instruction: "你是一个有用的助手,用中文回答用户问题。",}return llmagent.New(cfg)
}

工作流代理

package mainimport ("google.golang.org/adk/agent/workflowagents/loopagent""google.golang.org/adk/agent/workflowagents/parallelagent""google.golang.org/adk/agent/workflowagents/sequentialagent"
)func createWorkflowAgents() {// 顺序代理 - 按固定顺序执行子代理seqCfg := sequentialagent.Config{AgentConfig: agent.Config{Name: "顺序工作流",SubAgents: []agent.Agent{/* 子代理列表 */},},}sequentialAgent, _ := sequentialagent.New(seqCfg)// 并行代理 - 同时运行子代理parallelCfg := parallelagent.Config{AgentConfig: agent.Config{Name: "并行工作流", SubAgents: []agent.Agent{/* 子代理列表 */},},}parallelAgent, _ := parallelagent.New(parallelCfg)// 循环代理 - 重复执行直到条件满足loopCfg := loopagent.Config{AgentConfig: agent.Config{Name: "循环工作流",SubAgents: []agent.Agent{/* 子代理列表 */},},MaxIterations: 5, // 最大迭代次数}loopAgent, _ := loopagent.New(loopCfg)
}

:laptop: 核心代码解析

代理接口设计

// Agent是所有代理必须实现的基础接口
type Agent interface {Name() stringDescription() stringRun(InvocationContext) iter.Seq2[*session.Event, error]SubAgents() []Agentinternal() *agent
}// 调用上下文提供代理执行环境
type InvocationContext interface {context.ContextAgent() AgentArtifacts() ArtifactsMemory() MemorySession() session.SessionInvocationID() stringBranch() stringUserContent() *genai.ContentRunConfig() *RunConfigEndInvocation()Ended() bool
}

会话管理

// 会话服务接口
type Service interface {Create(context.Context, *CreateRequest) (*CreateResponse, error)Get(context.Context, *GetRequest) (*GetResponse, error)List(context.Context, *ListRequest) (*ListResponse, error)Delete(context.Context, *DeleteRequest) errorAppendEvent(context.Context, Session, *Event) error
}// 会话表示用户与代理的交互会话
type Session interface {AppName() stringUserID() stringID() stringState() StateEvents() EventsLastUpdateTime() time.Time
}

工具系统

// 工具接口定义代理可用的功能
type Tool interface {Name() stringDescription() stringRun(ctx Context, args any) (result map[string]any, err error)
}// 工具上下文提供工具执行环境
type Context interface {context.ContextArtifacts() ArtifactsFunctionCallID() stringActions() *EventActionsAgentName() stringSearchMemory(ctx context.Context, query string) (*memory.SearchResponse, error)
}

运行器实现

// 运行器配置
type Config struct {AppName         stringAgent           Agent          // 启动执行的根代理SessionService  session.ServiceArtifactService artifact.Service // 可选MemoryService   memory.Service   // 可选
}// 运行器执行代理工作流
type Runner struct {appName         stringrootAgent       AgentsessionService  session.ServiceartifactService artifact.ServicememoryService   memory.Serviceparents         parentmap.Map
}func (r *Runner) Run(ctx context.Context, session session.Session, userContent *genai.Content, runConfig *agent.RunConfig) iter.Seq2[*session.Event, error] {// 实现代理执行流水线// 包括会话管理、记忆检索、工具执行等
}

这个框架提供了完整的AI代理开发基础设施,支持复杂的多代理工作流、工具集成和云原生部署,是构建企业级AI应用的强大工具。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.jsqmd.com/news/42550/

相关文章:

  • 2025年比较好的卡通布箱包布厂家推荐及选择指南
  • 2025年靠谱的1680D单双股布牛津布品牌厂家排行榜
  • AD加工文件导出记录
  • Ai元人文:新的期待——基于现状的共情协同架构
  • 2025年印刷固化灯优质厂家权威推荐榜单:紫外线灯板/曝光固化灯/生物成像紫光优质厂家精选
  • 戴尔PowerEdge R720服务器配置raid
  • 2025年热门的农药分散剂厂家最新热销排行
  • LC1513 全1子串数
  • 2025年优秀的321不锈钢带厂家推荐及采购指南
  • 基于LiveWire算法的MATLAB实现代码
  • 2025年雕花铝单板源头厂家权威推荐榜单:氟碳铝单板/阳极氧化铝单板/仿木纹铝单板源头厂家精选
  • LC2257 保卫格子
  • 2025年移动厕所定做厂家权威推荐榜单:垃圾分类屋/活动房/移动岗亭源头厂家精选
  • 2025江浙沪地区PLC控制柜制造企业综合实力榜:昆山华普拓电气蝉联技术创新与全球化服务双料标杆
  • 【LVGL】加载器部件
  • 2025年质量好的冷弯机组厂家选购指南与推荐
  • Windows 11 下安装 Codex,利用 MegaLLM 的 API 体验 GPT-5
  • 2025哪个出国留学机构好一点
  • 2025年浮筒推流曝气机定制厂家权威推荐榜单:自吸式推流曝气机/推流式曝气机/推流曝气机源头厂家精选
  • 2025留学机构十强
  • 2025杭州好的留学中介有哪些公司
  • 2025出国留学机构哪个好一点
  • 2025年山西高端博物馆展示柜厂家权威排行榜TOP10
  • 2025年诚信的梯形排水沟滑模机品牌厂家排行榜
  • 关于括号序列
  • WinRAR永久授权专用激活KEY方法(rarreg.key)
  • WGCLOUD能监控ARM架构的服务器吗
  • 2025年北京神秘调查公司权威推荐:暗访调研/神秘顾客督查/神秘访客服务机构精选
  • 2025年评价高的液压缸厂家最新热销排行
  • 2025年优秀的化工磁力泵行业内知名厂家排行榜