Go LLM SDK:面向流式、工具调用AI后端的统一接口(附带前端React库)

Hacker News Top 工具

摘要

Grafana 发布了一款面向 Go 语言的 AI SDK,提供统一的 API 用于 LLM 调用、流式传输、工具执行及结构化输出,并内置与 Vercel 的 AI SDK React 前端的兼容性。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/30 13:49

grafana/ai-sdk

源码:https://github.com/grafana/ai-sdk

从 Go 调用语言模型、流式响应、执行工具,以及提供 AI 驱动的 API。可单独使用 SDK,也可搭配 AI SDK React 前端使用。
快速入门 · 文档 · 示例 · API 参考 (https://pkg.go.dev/github.com/grafana/ai-sdk)


为什么使用

SDK 为 Go 应用提供统一的 API,支持跨多个提供商的模型调用、流式传输、工具调用、结构化输出和多步骤智能体。它的设计遵循 Vercel AI SDK (https://ai-sdk.dev) 的架构,并与 TypeScript 前端 hooks 保持有线兼容。Go 端点可以直接通过 Server-Sent Events (SSE) 向 useChat 等 hooks 推送流。

Go 后端                  React 前端
──────────               ──────────────
aisdk.StreamText(...) ── SSE ──▶ useChat({ transport })
aisdk.WriteUIMessageStream(w, ...) // 相同协议

关于生成、工具和流式传输的流程,请参阅 请求如何运行。可复用现有的 AI SDK React 前端,或用 Go 替换 TypeScript 后端而无需添加协议适配器。

功能

  • StreamText / GenerateText — 流式传输响应或等待完整结果,支持重试和多步骤工具执行
  • React 兼容性 — 支持 useChatuseCompletionuseObject
  • 可组合工具 — 让模型调用 Go 函数,并对重要操作要求审批
  • 结构化输出 — 生成符合 schema 验证的对象、数组和选择
  • 多个提供商 — 调用 Anthropic、Amazon Bedrock、OpenAI、兼容 OpenAI 的 API,以及来自内部服务的 Grafana 托管端点
  • 生产控制 — 配置超时、回退、日志、Prometheus 指标和智能体可观测性

安装

创建一个 Go 项目并安装核心模块和一个提供商:

mkdir ai-sdk-quickstart
cd ai-sdk-quickstart
go mod init example.com/ai-sdk-quickstart
go get github.com/grafana/ai-sdk
go get github.com/grafana/ai-sdk/providers/anthropic

有关 Amazon Bedrock、OpenAI、兼容 OpenAI 的 API 以及内部配置的 Grafana 托管端点,请参阅选择提供商

快速入门

将以下完整程序保存为 main.go。它会发起一次模型调用并打印响应:

package main

import (
    "context"
    "fmt"
    "log"
    "os"

    aisdk "github.com/grafana/ai-sdk"
    "github.com/grafana/ai-sdk/provider"
    "github.com/grafana/ai-sdk/providers/anthropic"
)

func main() {
    apiKey := os.Getenv("ANTHROPIC_API_KEY")
    if apiKey == "" {
        log.Fatal("ANTHROPIC_API_KEY is required")
    }

    model := anthropic.New(apiKey, "claude-sonnet-5")
    result, err := aisdk.GenerateText(context.Background(), model,
        aisdk.WithModelMessages(provider.UserText("Explain goroutines in one sentence.")),
    )
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(result.Text)
}

使用 Anthropic API 密钥运行:

ANTHROPIC_API_KEY=sk-... go run .

关于项目初始化和凭据指导,请参阅安装。要将会话流式传输到 React 客户端,请继续阅读构建全栈聊天

下一步

目标从这里开始
从 Go 调用模型从 Go 生成文本
构建 React 聊天全栈聊天
返回类型化数据结构化输出
让模型调用 Go 代码工具
构建可复用智能体智能体循环
选择模型提供商提供商概览
添加日志或可观测性中间件概览
准备生产环境生产检查清单

完整索引:文档 · 可运行代码:示例 · 精确 API:pkg.go.dev (https://pkg.go.dev/github.com/grafana/ai-sdk)

贡献

欢迎贡献。CONTRIBUTING.md 涵盖了开发设置、使本仓库与众不同的两个约定——与 Vercel AI SDK 保持上游一致,以及通过 OpenSpec 进行规范驱动开发——以及 Pull Request 检查清单。所有参与者均遵守我们的行为准则

许可

Apache License 2.0
本 SDK 遵循 Vercel AI SDK (https://github.com/vercel/ai) 的设计(同样基于 Apache-2.0 许可);归属信息记录在 NOTICE 中。

相似文章

代理工作流可视化与API网关

Reddit r/openclaw

正在构建一个用于代理AI工作流的开源API网关,提供多LLM和工具调用的可视化,跟踪令牌、成本和延迟,无需代码插桩。采用Rust和Go服务器配合Python关联器,寻求AI运维用户的合作与反馈。

大语言模型与本地AI硬件的推理引擎(2026版)

X AI KOLs

本文提供了一份全面的指南,针对2026年本地AI硬件上的大语言模型推理引擎,解释了如何根据硬件策略、工作负载和服务模型进行选择,并涵盖了诸如llama.cpp、MLX、ExLlamaV2/3、vLLM、SGLang、TensorRT-LLM和NVIDIA Dynamo等引擎。