openapi.beeos.ai)的自动生成客户端,
覆盖实例生命周期管理和智能体消息调用——以编程方式部署智能体并向其
发送消息所需的核心平台操作。
安装
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 中的生成输出。
- Go module:
github.com/beeos-ai/sdk-go - GitHub: beeos-ai/sdk-go