跳转到主要内容
Go SDK 是 BeeOS 平台 API(openapi.beeos.ai)的自动生成客户端, 覆盖实例生命周期管理智能体消息调用——以编程方式部署智能体并向其 发送消息所需的核心平台操作。
SDK 仅覆盖平台 APIA2A 协议a2a.beeos.ai)和 MCP 协议mcp.beeos.ai)是独立的协议入口,拥有各自的 认证方式,不包含在此 SDK 中。

安装

go get github.com/beeos-ai/sdk-go@latest

配置

package main

import (
    "context"
    "fmt"
    "net/http"

    beeos "github.com/beeos-ai/sdk-go"
)

func main() {
    cfg := beeos.NewConfiguration()
    cfg.Servers = beeos.ServerConfigurations{
        {URL: "https://openapi.beeos.ai"},
    }
    cfg.HTTPClient = &http.Client{
        Transport: &authTransport{
            key:  "oag_YOUR_KEY",
            base: http.DefaultTransport,
        },
    }

    client := beeos.NewAPIClient(cfg)
    ctx := context.Background()

    // 使用 client...
    _ = ctx
    _ = client
}

type authTransport struct {
    key  string
    base http.RoundTripper
}

func (t *authTransport) RoundTrip(req *http.Request) (*http.Response, error) {
    req.Header.Set("Authorization", "Bearer "+t.key)
    return t.base.RoundTrip(req)
}
本地开发时,将服务器 URL 设为 http://localhost:8095

目录

列出 Provider

providers, _, err := client.DeployAPI.ListProviders(ctx).Execute()
if err != nil {
    log.Fatal(err)
}
for _, p := range providers.Data {
    fmt.Println(p.Meta.Id, p.Meta.Name)
}

列出区域

regions, _, err := client.DeployAPI.ListDeployRegions(ctx).
    ProviderId("default").
    Execute()

列出部署模型

models, _, err := client.DeployAPI.ListDeployModels(ctx).
    AgentFramework("beeos-claw").
    Execute()

实例

部署实例

inst, _, err := client.InstancesAPI.DeployInstance(ctx).
    DeployInstanceRequest(beeos.DeployInstanceRequest{
        Name:           "my-agent",
        AgentFramework: beeos.PtrString("beeos-claw"),
        ModelPrimary:   beeos.PtrString("gpt-4o"),
    }).
    Execute()

fmt.Println("ID:", inst.Data.Id, "状态:", inst.Data.Status)

列出实例

list, _, err := client.InstancesAPI.ListInstances(ctx).
    Page(0).
    PageSize(20).
    Status("running").
    Execute()

for _, inst := range list.Data {
    fmt.Println(inst.Id, inst.Name, inst.Status)
}

获取实例

inst, _, err := client.InstancesAPI.GetInstance(ctx, "inst_abc123").Execute()

生命周期操作

_, _, _ = client.InstancesAPI.StartInstance(ctx, "inst_abc123").Execute()
_, _, _ = client.InstancesAPI.StopInstance(ctx, "inst_abc123").Execute()
_, _, _ = client.InstancesAPI.RestartInstance(ctx, "inst_abc123").Execute()
_, _, _ = client.InstancesAPI.DestroyInstance(ctx, "inst_abc123").Execute()

智能体

列出智能体

agents, _, err := client.AgentsAPI.ListAgents(ctx).
    InstanceId("inst_abc123").
    Limit(20).
    Execute()
if err != nil {
    log.Fatal(err)
}
for _, a := range agents.Data {
    fmt.Println(a.Id, a.Name, a.Status)
}

获取智能体详情

agent, _, err := client.AgentsAPI.GetAgent(ctx, "agent_abc123").Execute()
if err != nil {
    log.Fatal(err)
}
fmt.Println(agent.Data.Name, agent.Data.Visibility)

调用智能体(阻塞)

reply, _, err := client.AgentsAPI.InvokeAgent(ctx, "agent_abc123").
    InvokeAgentRequest(beeos.InvokeAgentRequest{
        Message: "你好,你能做什么?",
    }).
    Execute()
if err != nil {
    log.Fatal(err)
}
fmt.Println(reply.Data.Reply)

流式调用(原生 HTTP)

body := strings.NewReader(`{"message":"你好!"}`)
req, _ := http.NewRequest("POST",
    "https://openapi.beeos.ai/api/v1/agents/agent_abc123/invoke", body)
req.Header.Set("Authorization", "Bearer oag_YOUR_KEY")
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Accept", "text/event-stream")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

错误处理

inst, resp, err := client.InstancesAPI.GetInstance(ctx, "nonexistent").Execute()
if err != nil {
    if resp != nil {
        fmt.Println("HTTP 状态码:", resp.StatusCode)
    }
    fmt.Println("错误:", err)
}

源码与生成

SDK 从 beeos-platform-v1.yaml 使用 OpenAPI Generator(go)自动生成。发布的模块镜像 monorepo 中的生成输出。