Blades 是一个基于 Go 语言的多模态 AI Agent 框架,支持自定义模型、工具、记忆、中间件等,适用于多轮对话、链式推理和结构化输出场景。
确保你已安装 Go 1.20+,然后通过以下命令初始化你的项目并引入 Blades:
cd your-project-namego mod init your-project-namego get github.com/go-kratos/blades下面是一个使用 OpenAI 模型构建简单聊天 Agent 的完整示例:
package main
import ( "context" "log"
"github.com/go-kratos/blades" "github.com/go-kratos/blades/contrib/openai" "github.com/openai/openai-go/v2/option")
func main() { // set up the OpenAI provider provider := openai.NewChatProvider( openai.WithChatOptions( option.WithAPIKey("YOUR_API_KEY"), option.WithBaseURL("YOUR_BASE_URL"), ), ) // create agent agent, err := blades.NewAgent( "Blades Agent", blades.WithModel("YOUR_MODEL"), // or gpt-5, qwen3-max, etc. blades.WithProvider(provider), blades.WithInstructions("You are a helpful assistant that provides detailed and accurate information."), ) if err != nil { log.Fatal(err) } // Create a new input message input := blades.UserMessage("What is the capital of France?") // Create a new input message // Run the agent runner := blades.NewRunner(agent) result, err := runner.Run(context.Background(), input) if err != nil { log.Fatal(err) } log.Println(result.Text())}如果你要更换其他提供商的API,则需要设置环境变量,例如:
export OPENAI_BASE_URL=https://api.deepseek.com需要设置环境变量 OPENAI_API_KEY,例如:
export OPENAI_API_KEY=your-api-key| 提供商 | 模型 | 兼容 |
|---|---|---|
| OpenAI | ChatGPT, gpt-5, gpt-4, etc… | qwen3-mqx、deepseek-chat |
| Claude | Claude 3.7 Sonnet | - |
| Gemini | Gemini 2.5 Pro | - |
| 组件 | 说明 |
|---|---|
| Agent | 智能体接口,用于整合与协调模型、工具和记忆等多种功能智能体 |
| Tool | 外部能力插件(如调用 API、查数据库) |
| Memory | 会话记忆管理,支持多轮上下文 |
| Middleware | 中间件机制,用于日志、限流、鉴权等横切关注点 |
| ModelProvider | 模型适配器(如 OpenAI、DeepSeek),统一调用接口 |