Blades

面向 Go 的可扩展多模态智能体框架,用于组合模型、工具、记忆与工作流。

Star 数
★ 815
最近更新
4 个月前
License
MIT
主语言
Go

30 秒速览

可在哪里用
通用 · 跨平台OpenAI API
开始前需要
GoOpenAI API key网络访问本地文件系统
典型场景
Go 后端团队要在现有服务中调用 OpenAI 模型,实现多轮问答并读取 Agent 返回的文本。
主要局限
README 未给出安装命令、Go 版本、模块版本或独立部署方案,首次接入需要自行补齐工程配置。

这个 Agent 能做什么,适合哪些场景?

Blades 是一个 Go 语言多模态 AI Agent 框架,而非独立托管的聊天产品。其统一的 Agent 执行接口以 Run(context.Context, *Invocation) 返回 Generator[*Message, error],Agent、Chain 和 ModelProvider 可据此组合。框架提供可插拔的 ModelProvider、Tool、Memory 与 Middleware,并以 flow 编排多步骤推理和多个 Agent 的数据、控制流。输出既可通过 Generate 一次性获得,也可通过 NewStreaming 逐步消费;示例展示了在应用代码中接入 OpenAI 模型并由 Runner 执行。它适合希望在 Go 服务或应用内自行实现智能体逻辑的团队,README 未说明独立部署服务、CLI 或安装命令。

应用先创建如 openai.NewModel("gpt-5", openai.Config{APIKey: os.Getenv("OPENAI_API_KEY")}) 的 ModelProvider,再用 blades.NewAgent 配置 WithModel 与 WithInstruction。调用方构造 blades.UserMessage,使用 blades.NewRunner(agent).Run(context.Background(), input) 执行,并从返回的消息读取 Text()。在需要扩展时,Agent 可通过 Tool 的 InputSchema 和 Handle 调用封装后的外部能力;Memory 可按会话保存和检索消息,Middleware 可在 Runner 执行链中加入横切逻辑。技能可由 skills.NewFromDir("./skills") 或 skills.NewFromEmbed(embed.FS) 加载后传给 WithSkills(...)。

  1. Go 后端团队要在现有服务中调用 OpenAI 模型,实现多轮问答并读取 Agent 返回的文本。
  2. 需要把多个 Agent 或 Chain 串联为多步骤推理流程的 Go 应用开发者。
  3. 要为模型接入数据库查询、API 调用等外部能力,并希望用 InputSchema 约束调用参数的团队。
  4. 需要按会话保存与搜索对话消息、让后续轮次保留上下文的应用。
  5. 希望在不改 Runner 核心逻辑的前提下加入日志、监控、认证或限流等中间件的工程团队。

如何安装或部署这个 Agent?

README 未提供可复制的安装命令、Go 版本要求或模块初始化步骤,因此无法据此确认依赖安装流程。已明确的运行前提是 Go 环境,以及使用 OpenAI 示例时设置 OPENAI_API_KEY;还需要让项目能够导入 github.com/go-kratos/blades 和 github.com/go-kratos/blades/contrib/openai。

如何使用这个 Agent?

在 Go 程序中读取 OPENAI_API_KEY,创建 openai.NewModel("gpt-5", openai.Config{APIKey: os.Getenv("OPENAI_API_KEY")}),然后以 blades.NewAgent("Blades Agent", blades.WithModel(model), blades.WithInstruction("You are a helpful assistant that provides detailed and accurate information.")) 创建 Agent。用 blades.UserMessage("What is the capital of France?") 创建输入,再执行 runner := blades.NewRunner(agent) 和 runner.Run(context.Background(), input)。检查 err 后,对返回结果调用 output.Text() 获取文本响应。

这个 Agent 有哪些优点和局限?

优点
  • 以统一 Agent 接口和 Generator 输出模型连接 Agent、Chain 与 ModelProvider,便于组合执行单元。
  • ModelProvider 是可插拔抽象,README 明确以 OpenAI、DeepSeek、Gemini 等不同模型服务为可集成对象。
  • 同时覆盖 Tool、会话记忆、流式生成和 Middleware,适合把智能体能力嵌入 Go 应用。
  • 技能既可从目录加载,也可通过 embed.FS 打包进程序。
局限
  • README 未给出安装命令、Go 版本、模块版本或独立部署方案,首次接入需要自行补齐工程配置。
  • OpenAI 示例依赖网络访问和 OPENAI_API_KEY,模型调用的成本与可用性取决于所选服务商。
  • 持久化记忆和更复杂的记忆策略被鼓励由开发者扩展,README 只明确提供 InMemory 实现。
  • 没有展示 CLI、HTTP 服务接口或生产运维配置,团队需自行定义应用入口和运行边界。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 Star 最近更新 主语言 完整支持的平台
Blades 当前 23 · 缺口较多 ★ 815 4 个月前 Go OpenAI API
Agently AI 应用运行时 63 · 存在缺口 ★ 1.7k 11 天前 Python OpenAI API · Claude API
Dynamiq 智能体编排框架 61 · 存在缺口 ★ 1.1k 1 天前 Python OpenAI API
DSPy-Go 49 · 缺口较多 ★ 196 5 天前 Go OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
23/ 100 五分制 1.2 / 5
信任安全 0/29
可靠稳定 3/14
适用触发 6/18
规范维护 8/18
有效结果 4/13
证据核验 2/8
查看各维度的扣分理由
信任安全0 / 29 · 0.0/5

证据显示仓库没有提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的机制。所有相关标准均未在文件中体现,因此得分为0。

可靠稳定3 / 14 · 1.1/5

自一致性:README中概念描述与代码接口基本一致,但未提供完整代码验证,故得1分。依赖可用性:依赖项在go.mod中列出,但未验证其可用性,得1分。失败消息:未提供错误处理或失败消息的文档,得0分。

适用触发6 / 18 · 1.7/5

受众与场景:README明确面向Go开发者,并列举了多轮对话、思维链等场景,得2分。能力边界:描述了核心组件,但未明确边界,得1分。触发精度:未提供触发机制,得0分。环境适配:提供了环境变量配置示例,但未全面说明,得1分。

规范维护8 / 18 · 2.2/5

信息架构:README结构清晰,有架构图,得2分。安装说明:提供了快速开始示例,但未提供详细安装步骤,得1分。命名稳定性:接口命名稳定,但未提供版本历史,得1分。示例与FAQ:提供了示例代码,但无FAQ,得2分。已知限制:未明确列出,得1分。许可证:MIT许可证文件存在,得2分。版本与变更日志:无版本号或变更日志,得0分。维护责任:未明确维护者,得1分。

有效结果4 / 13 · 1.5/5

输出可用性:示例展示了输出,但未说明格式,得1分。边际价值:框架提供多模态支持,但未与其他方案对比,得1分。成本效益:未提供性能或成本数据,得1分。

证据核验2 / 8 · 1.3/5

声明可追溯性:README中的声明未提供具体证据,得1分。跨来源佐证:无外部验证,得0分。事实与推断分离:部分描述为推断,未明确区分,得1分。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
  • 仓库未提供任何安全机制,如权限控制、用户确认或数据流透明,使用前需自行评估风险。
  • 依赖项未验证安全性,且无版本锁定,可能引入供应链风险。
  • 无版本号或变更日志,难以追踪更新和兼容性。
  • 未明确维护责任,长期维护性存疑。
证据充分度: 评估于 2026年8月9日 审查版本 b78fec59029d
查看完整评分方法 →

常见问题

它能直接作为聊天服务部署吗?
README 将其描述为 Go 框架,并展示在 Go 程序中创建 Agent 和 Runner;未提供独立聊天服务或部署命令。
是否只能使用 OpenAI?
不是。README 将 ModelProvider 设计为可插拔接口,并列举 OpenAI、DeepSeek、Gemini 等可集成的模型服务;但具体接入代码需由应用提供。
使用 OpenAI 示例需要什么凭据?
示例通过环境变量 OPENAI_API_KEY 读取 API 密钥。
对话上下文如何保存?
Memory 接口用于存储和检索消息,并支持按会话管理;README 明确提到 InMemory 实现,持久化存储需自行扩展。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents