帮你快速理解、总结文档立即下载

SkillClient

最近更新时间:2026-08-27 17:42:03
我的收藏

客户端介绍

SkillClient 是 V3 Skill 管理面的 Python 客户端,用于 Skill 的全生命周期管理,包括检索和发现可用 Skill、创建与修改 Skill、管理资源文件、以及从对话中自动提取 Skill。Skill 一经创建即处于可用状态,Agent 可通过 listingsearch 方法检索和发现 Skill,无需额外的部署或启用操作。

导入

from tencentdb_agent_memory.v3 import SkillClient, AsyncSkillClient
from tencentdb_agent_memory.v3.skill_client import encode_utf8, encode_base64

构造

from tencentdb_agent_memory.v3 import SkillClient

client = SkillClient(
endpoint="https://memory.tdai.tencentyun.com",
api_key="sk-xxxxxxxxxxxxxxxx",
service_id="tdai-mem-xxxxxxxx",
team_id="team-abc123",
agent_id="agt-xyz789",
user_id="usr-456",
task_id="task-2026q3",
timeout=30,
verify=False,
)

构造参数

参数名
类型
必填
描述说明
endpoint
str
Memory 服务接入地址
api_key
str
API Key,格式 sk-...
service_id
str
实例 ID,如 tdai-mem-xxxxxxxx。使用自定义传输通道构造时可省略
team_id
str
团队 ID,可在各方法中按需覆盖
agent_id
str
Agent ID,可在各方法中按需覆盖
user_id
str
用户 ID,可在各方法中按需覆盖
task_id
str
Task ID,可在各方法中按需覆盖
timeout
float
请求超时时间(秒),默认 30
verify
bool
是否验证 SSL 证书,默认 False
stub
Stub
自定义网络传输通道,用于测试场景(如注入 mock)
说明:
team_idagent_iduser_idtask_id 在构造时均为可选参数,可在各方法中按需传入。请注意 conversation_add 例外——该方法的 team_iduser_idagent_id 为服务端必填,SDK 不会自动填入构造时的默认值,调用时需显式传入。
部分方法提供 space_id 参数(如 conversation_addextract),其含义等同于构造时的 service_id(实例 ID),不传则自动使用构造时的 service_id 值。

辅助方法

SkillClient 提供两个静态方法用于构建资源文件:
方法
用途
参数
encode_utf8(path, content, mime_type)
编码文本文件
path 文件路径;content 文本内容(str);mime_type MIME 类型
encode_base64(path, content, mime_type)
编码二进制文件
path 文件路径;content 二进制内容(bytes);mime_type MIME 类型

切换上下文(with_defaults)

当需要用不同的团队或用户身份调用 Skill 接口时,可通过 with_defaults 生成一个共享同一网络连接的客户端副本:
client_b = client.with_defaults(team_id="team-b", user_id="usr-two")
result = client_b.search(query="Python best practices", top_k=5)

上下文管理器

with SkillClient(
endpoint="https://memory.tdai.tencentyun.com",
api_key="sk-xxxxxxxxxxxxxxxx",
service_id="tdai-mem-xxxxxxxx",
) as client:
resp = client.search(query="Python tips", top_k=5)

异步版本

AsyncSkillClient 的方法签名与 SkillClient 完全一致,所有方法均为 async
import asyncio
from tencentdb_agent_memory.v3 import AsyncSkillClient

async def main():
async with AsyncSkillClient(
endpoint="https://memory.tdai.tencentyun.com",
api_key="sk-...",
service_id="tdai-mem-xxxxxxxx",
) as client:
result = await client.search(query="Python tips", top_k=5)
for hit in result["items"]:
print(f"[{hit['score']:.2f}] {hit['name']}")

asyncio.run(main())

方法总览

查询与发现

方法
说明
文档
search
语义检索 Skill
search
list
列表查询 Skill
list
get
查询单个 Skill 详情
get
versions
查询版本历史
versions
read_file
读取资源文件
read_file
listing
渲染可用 Skill 列表
listing

创建与写入

方法
说明
文档
create
创建 Skill
create
extract
从对话提取 Skill
extract
conversation_add
向缓冲区追加对话

修改与更新

方法
说明
文档
update
全量更新 Skill 内容
update
patch
局部文本替换
patch
write_files
写入资源文件
remove_files
删除资源文件

删除

方法
说明
文档
delete
删除 Skill
delete