SDK 接入
更新时间:2026-06-24
通过官方 SDK 在代码中直接调用记忆服务,类型安全,适合后端服务集成。当前提供 Go SDK,其他语言 SDK 持续规划中。
连接信息
| 信息 | 值 |
|---|---|
| API Base URL | https://cloud.memory.bj.baidubce.com/api |
| API Key | 在控制台"API Key"页签中创建 |
| Bank ID | 在控制台创建记忆库时设定 |
API Base URL 已包含
/api,不要再额外拼接。
Go SDK
安装
Bash
1go get github.com/baidubce/bce-sdk-go/services/cloudmemory/api
构造客户端
Go
1import (
2 "context"
3 cloudmemory "github.com/baidubce/bce-sdk-go/services/cloudmemory/api"
4)
5
6// 使用 API Base URL 和 API Key 创建客户端
7client := cloudmemory.New("https://cloud.memory.bj.baidubce.com/api", "<YOUR_API_KEY>")
8
9// 或带超时
10client = cloudmemory.NewWithTimeout("https://cloud.memory.bj.baidubce.com/api", "<YOUR_API_KEY>", 2*time.Minute)
核心操作
Retain 写入记忆
Go
1items := []cloudmemory.MemoryItem{
2 *cloudmemory.NewMemoryItem("用户偏好使用 TypeScript 构建 API 服务。"),
3}
4out, err := client.Retain(ctx, "<YOUR_BANK_ID>", *cloudmemory.NewRetainRequest(items))
追加内容到已有文档:
Go
1item := cloudmemory.NewMemoryItem("团队决定将状态管理从 Redux 迁移到 Zustand。")
2item.DocumentId = stringPtr("onboarding-session-001")
3item.UpdateMode = stringPtr("append")
4items := []cloudmemory.MemoryItem{*item}
5out, err := client.Retain(ctx, "<YOUR_BANK_ID>", *cloudmemory.NewRetainRequest(items))
Recall 检索记忆
Go
1out, err := client.Recall(ctx, "<YOUR_BANK_ID>",
2 *cloudmemory.NewRecallRequest("用户偏好的技术栈是什么?"))
Reflect 智能推理
Go
1out, err := client.Reflect(ctx, "<YOUR_BANK_ID>",
2 *cloudmemory.NewReflectRequest("总结用户的工程偏好"))
Bank 管理
Go
1// 列出所有 Bank
2banks, err := client.ListBanks(ctx)
3
4// 创建 Bank
5req := cloudmemory.CreateBankRequest{}
6req.SetName("My Agent Memory")
7req.SetMission("Help me remember everything")
8bank, err := client.CreateBank(ctx, "my-agent", req)
9
10// 获取 Bank 信息
11bank, err := client.GetBank(ctx, "my-agent")
12
13// 获取 Bank 统计
14stats, err := client.GetBankStats(ctx, "my-agent")
15
16// 删除 Bank
17out, err := client.DeleteBank(ctx, "my-agent")
查询与管理
Go
1// 列出记忆
2memories, err := client.ListMemories(ctx, "my-agent",
3 cloudmemory.ListMemoriesOptions{Limit: 20})
4
5// 列出文档
6docs, err := client.ListDocuments(ctx, "my-agent",
7 cloudmemory.ListDocumentsOptions{Limit: 10})
8
9// 列出实体
10entities, err := client.ListEntities(ctx, "my-agent", 10, 0)
11
12// 实体关系图
13graph, err := client.EntityGraph(ctx, "my-agent", 50, 2)
14
15// 健康检查
16health, err := client.Health(ctx)
17
18// 版本信息
19version, err := client.Version(ctx)
文件上传
Go
1f, _ := os.Open("product-guide.md")
2defer f.Close()
3out, err := client.FilesRetain(ctx, "<YOUR_BANK_ID>", []*os.File{f}, "")
错误处理
SDK 错误统一通过 *GenericOpenAPIError 抛出:
Go
1var apiErr *cloudmemory.GenericOpenAPIError
2if errors.As(err, &apiErr) {
3 log.Printf("API error: %s", apiErr.Body())
4}
使用建议
评价此篇文章
