Blades

📌 适用场景:AI Agent开发

基于Go的多模态AI Agent框架,架构可复用为Workflow模式参考,含中文README与examples目录

8.2 /10 ★★★★☆
🪜 5 个步骤 🛠️ 0 款工具 ⏱️ 2天 🎯 高级 🕒 更新于 2026-08-14

📋 完整步骤

  1. 1

    环境准备与安装

    安装 Go 1.22+ 和依赖

  2. 2

    创建 Agent 项目

    使用 Blades CLI 初始化项目结构

  3. 3

    定义 Agent 能力

    配置 Agent 的多模态能力和工具集成

  4. 4

    部署与测试

    本地运行 Agent 并验证功能

  5. 5

    集成到应用

    将 Agent 集成到现有 Go 应用中

这是什么?适合谁?

Blades 是一个基于 Go 语言的多模态 AI Agent 框架,由 go-kratos 团队开发。它提供了 Agent 开发的完整基础设施,包括多模态处理、工具集成、会话管理和部署支持。框架架构清晰,含中文 README 和丰富的 examples 目录,适合作为 Workflow 模式参考。

适合人群:Go 后端开发者、需要构建 AI Agent 应用的团队、希望学习 Agent 框架设计的工程师。 使用前提:Go 1.22+,熟悉 Go 语言基础,了解 AI Agent 的基本概念。

准备工作

所需工具与账号

工具用途定价
Go 1.22+编程语言免费
Blades CLI项目脚手架免费开源
LLM API KeyAI 能力(OpenAI/Anthropic/DeepSeek)按量付费
Docker(可选)容器化部署免费

时间预算

  • 环境搭建:2 小时
  • 学习框架核心概念:4 小时
  • 第一个 Agent 开发:1 天
  • 集成到现有应用:1 天

前置知识

  • Go 语言基础(goroutine、channel、interface)
  • 了解 LLM API 调用(OpenAI/Anthropic SDK)
  • 熟悉 Git 和命令行操作

替代方案

工具适用场景差异
LangChain Go需要丰富生态LangChain 生态更成熟,但 Go 版本功能有限
Eino(字节跳动)国内场景中文生态更好,社区更活跃
自建 Agent特殊需求灵活性最高,但开发成本大

5 步核心流程

第 1 步:环境准备与安装

确保 Go 1.22+ 已安装:

go version  # 确认版本 ≥ 1.22

克隆 Blades 仓库:

git clone https://github.com/go-kratos/blades
cd blades

安装依赖:

go mod download

设置 LLM API Key:

export OPENAI_API_KEY="your-key"
# 或使用 Anthropic
export ANTHROPIC_API_KEY="your-key"

预期产出:可运行的 Blades 开发环境。

第 2 步:创建 Agent 项目

使用 Blades 的 example 作为模板:

cp -r examples/simple-agent my-agent
cd my-agent

项目结构:

my-agent/
├── main.go          # 入口文件
├── agent/           # Agent 定义
├── tools/           # 自定义工具
├── prompts/         # Prompt 模板
└── config.yaml      # 配置文件

预期产出:标准化的 Agent 项目骨架。

第 3 步:定义 Agent 能力

编辑 agent/agent.go,配置 Agent 的核心能力:

package agent

import "github.com/go-kratos/blades/agent"

func NewMyAgent() *agent.Agent {
    return agent.New(
        agent.WithName("my-agent"),
        agent.WithModel("gpt-4o"),
        agent.WithTools(
            tools.NewWebSearch(),
            tools.NewCodeInterpreter(),
        ),
        agent.WithSystemPrompt("你是一个专业的 Go 开发助手..."),
    )
}

支持的能力类型:

  • 文本处理:对话、分析、总结
  • 多模态:图像识别、文档分析
  • 工具调用:Web 搜索、代码执行、API 调用
  • 会话管理:多轮对话、上下文记忆

预期产出:功能完整的 Agent 定义。

第 4 步:部署与测试

本地运行 Agent:

go run main.go

测试 Agent 功能:

curl -X POST http://localhost:8080/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "帮我分析这个 Go 项目的代码结构"}'

预期产出:本地运行的 Agent 服务,通过 API 测试验证。

第 5 步:集成到应用

将 Agent 集成到现有 Go 应用中:

import "github.com/go-kratos/blades/agent"

// 在现有服务中嵌入 Agent
func main() {
    myAgent := agent.NewMyAgent()
    
    http.HandleFunc("/api/agent", func(w http.ResponseWriter, r *http.Request) {
        resp := myAgent.Chat(r.Context(), r.FormValue("message"))
        json.NewEncoder(w).Encode(resp)
    })
    
    http.ListenAndServe(":8080", nil)
}

预期产出:Agent 集成到现有应用,可通过 API 调用。

常见踩坑(5 条)

踩坑 1:Go 版本不兼容

  • 现象:编译报错 undefined: slices.Sort
  • 原因:Blades 需要 Go 1.22+ 的泛型和标准库特性
  • 解决:升级 Go 到 1.22+:go install golang.org/dl/go1.22@latest

踩坑 2:国内网络无法下载依赖

  • 现象:go mod download 超时
  • 原因:Go 模块代理被墙
  • 解决:设置国内代理:export GOPROXY=https://goproxy.cn,direct

踩坑 3:LLM API 调用超时

  • 现象:Agent 响应超时
  • 原因:默认超时时间不足以完成复杂任务
  • 解决:在 Agent 配置中增加超时时间:agent.WithTimeout(120 * time.Second)

踩坑 4:工具调用结果解析失败

  • 现象:Agent 调用了工具但无法解析返回结果
  • 原因:工具返回格式与 Agent 期望不一致
  • 解决:确保自定义工具返回标准的 JSON 格式,包含 statusdata 字段

踩坑 5:并发 Agent 实例内存泄漏

  • 现象:长时间运行后内存持续增长
  • 原因:Agent 会话上下文未及时清理
  • 解决:配置会话 TTL:agent.WithSessionTTL(30 * time.Minute),定期清理过期会话

FAQ(5 个常见问题)

Q1:Blades 与 LangChain Go 有什么区别? A:Blades 更轻量,专注于 Agent 框架本身,代码结构清晰。LangChain Go 生态更丰富,但 Go 版本功能不如 Python 版本完整。简单项目选 Blades,复杂项目选 LangChain Python。

Q2:支持哪些 LLM 模型? A:支持所有兼容 OpenAI API 格式的模型,包括 OpenAI GPT 系列、Anthropic Claude 系列、DeepSeek、以及本地部署的 Ollama 模型。

Q3:可以用于生产环境吗? A:Blades 在 go-kratos 生态中已用于生产,但建议在充分测试后上线。关注错误处理、重试机制和监控。

Q4:如何扩展自定义工具? A:实现 tools.Tool 接口即可。参考 examples/custom-tool 目录中的示例。

Q5:支持流式响应吗? A:支持。使用 agent.WithStreaming(true) 启用流式输出,前端可通过 SSE 接收实时响应。

小技巧(5 条)

  1. 使用配置管理:将 Agent 配置(模型、温度、Prompt)写入 config.yaml,便于不同环境切换
  2. 监控 Agent 调用:集成 Prometheus 指标,跟踪调用次数、延迟和错误率
  3. 缓存常用响应:对高频问题使用缓存,减少 API 调用成本
  4. 设置速率限制:使用令牌桶算法限制 API 调用频率,避免超额
  5. 编写集成测试:为 Agent 编写集成测试,确保工具调用和响应格式正确

进阶学习建议

掌握 Blades 后,你可以:

  • 阅读 go-kratos 源码,学习框架设计模式
  • 开发自定义 Agent 类型(RAG Agent、Multi-Agent 等)
  • 将 Blades 与消息队列(Kafka/RabbitMQ)集成,构建异步 Agent 系统
  • 学习 Agent 编排模式,实现多 Agent 协作

参考链接


本文基于公开资料于 2026-08-14 整理。独立实测未进行,框架 API 可能随版本更新而变化,请以官方文档为准。

📊 评分与标签

评分说明

总分 8.2/10 · P_优选

📊 可观测社区指标(采集日期:2026-08-14)

  • GitHub: go-kratos/blades ★808, 🔱101
  • 语言:Go,最近更新:2026-08-06
  • go-kratos 团队出品,含中文 README 和 examples 目录

📋 流程完整性 2.5/3.0

  • 5 步核心流程:环境准备→创建项目→定义能力→部署测试→集成应用
  • 流程覆盖从零到生产的完整路径
  • 每步有明确的预期产出
  • 缺少 CI/CD 集成和监控步骤
  • 竞品对比 1(LangChain Go):LangChain Go 流程更灵活但缺少结构化指导
  • 竞品对比 2(Eino):Eino 的流程更面向国内场景

🔄 可复用性 2.0/2.5

  • 标准化项目结构,可直接复用
  • 配置文件驱动,易于切换环境
  • 支持自定义工具扩展
  • 框架耦合度较高,迁移成本大
  • 竞品对比 1(LangChain):LangChain 的 Agent 模式更通用
  • 竞品对比 2(自建 Agent):自建 Agent 灵活性最高但可复用性低

📖 文档清晰度 1.7/2.0

  • 中文 README,对国内开发者友好
  • examples 目录丰富,覆盖多种场景
  • API 文档可进一步完善
  • 竞品对比 1(LangChain):LangChain 文档更全面但英文为主
  • 竞品对比 2(Eino):Eino 中文文档更完善

🔧 工具集成 1.0/1.5

  • 支持 Web Search、Code Interpreter 等内置工具
  • 支持自定义工具扩展
  • 工具生态尚不丰富
  • 缺少与主流服务的预置集成
  • 竞品对比 1(LangChain):LangChain 工具生态更丰富
  • 竞品对比 2(Eino):Eino 有更多国内服务集成

💡 创新性 1.0/1.0

  • Go 语言 Agent 框架,填补 Go 生态空白
  • 多模态 Agent 支持
  • 架构设计清晰,可作为 Workflow 模式参考
  • 与 go-kratos 微服务框架生态协同
  • 竞品对比 1(LangChain Go):LangChain Go 在 Agent 设计上更传统
  • 竞品对比 2(Eino):Eino 在 Agent 编排上有创新

标签说明

  • Go: Go 语言编写的 Agent 框架。来源:Blades GitHub
  • Agent框架: 提供 AI Agent 开发的完整基础设施。来源:Blades GitHub
  • 多模态: 支持文本、图像等多模态处理。来源:Blades GitHub
  • 开源免费: 开源项目,可自由使用。来源:Blades GitHub

来源核实

  • ✅ GitHub API 已验证: go-kratos/blades — Stars 808, Forks 101, 最近更新 2026-08-06
  • ✅ 官网已验证: go-kratos.dev — go-kratos 生态官网可访问
  • ⚠️ 未实测: 未进行完整的安装和 Agent 开发测试
  • ⚠️ 活跃度: 最近更新 2026-08-06,活跃度良好

评分依据可追溯至公开数据源,评估日期:2026-08-14。社区指标来自 GitHub API 实时数据。