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

MetadataClient 元数据管理客户端

最近更新时间:2026-07-28 10:20:03

我的收藏

方法介绍

MetadataClient 是 V3 管理面的 Python 客户端,用于管理用户、团队、Agent、Task、资产、权限、知识库等元数据资源。共 59 个方法,覆盖 14 组资源类型。

导入

from tencentdb_agent_memory.v3 import MetadataClient, AsyncMetadataClient

构造

from tencentdb_agent_memory.v3 import MetadataClient

metadata = MetadataClient(
endpoint="https://memory.tdai.tencentyun.com",
api_key="sk-xxxxxxxxxxxxxxxx",
service_id="tdai-mem-xxxxxxxx",
user_key="sk-mem-...",
timeout=30,
verify=False,
)
参数名
类型
必填
描述说明
endpoint
str
Memory 服务接入地址
api_key
str
API Key,格式 sk-...
service_id
str
实例 ID,如 tdai-mem-xxxxxxxx。使用自定义传输通道构造时可省略
user_key
str
用户密钥。调用 create_userdelete_users 等需要用户密钥鉴权的接口时使用
timeout
float
请求超时时间(秒),默认 30
verify
bool
是否验证 SSL 证书,默认 False
stub
Stub
自定义网络传输通道,用于测试场景(如注入 mock)

用户管理

管理 Memory 实例下的用户账号。
# 创建用户
resp = metadata.create_user({
"username": "alice",
"team_id": "team-abc",
})

# 按 ID 或条件查询
user = metadata.get_user("user-123")
user = metadata.get_user({"username": "alice", "team_id": "team-abc"})

# 删除用户
resp = metadata.delete_users(["user-123", "user-456"])

# 按团队或条件列出用户
resp = metadata.list_users("team-abc")
resp = metadata.list_users({
"team_id": "team-abc",
"limit": 20,
"offset": 0,
})
方法
参数
描述
create_user(payload)
Dict
创建用户,含 username、team_id 等字段
get_user(user_id_or_filter)
str 或 Dict
按 ID 或过滤条件查询单个用户
delete_users(user_ids)
List[str]
批量删除用户
list_users(team_id_or_request, *, pagination)
str 或 Dict, Dict
按团队 ID 或条件查询用户列表

用户密钥管理

管理用户的 API 密钥。
# 创建密钥
resp = metadata.create_user_key({"user_id": "user-123", "name": "default"})
print(resp["key_id"])

# 列出密钥
resp = metadata.list_user_keys("user-123")

# 查询单个密钥
resp = metadata.get_user_key("key-abc")

# 吊销密钥
resp = metadata.revoke_user_key("key-abc")

# 更新密钥
resp = metadata.update_user_key({"key_id": "key-abc", "name": "renamed"})
方法
参数
描述
create_user_key(payload)
Dict
为用户创建新密钥
list_user_keys(user_id)
str 或 Dict
列出用户密钥
get_user_key(key_id)
str
查询单个密钥信息
revoke_user_key(key_id)
str
吊销密钥
update_user_key(payload)
Dict
更新密钥信息

团队管理

管理团队资源。
# 创建团队
resp = metadata.create_team({"name": "Platform Team"})

# 查询团队
resp = metadata.get_team("team-abc")

# 更新团队
resp = metadata.update_team({"team_id": "team-abc", "name": "New Name"})

# 删除团队
resp = metadata.delete_teams(["team-abc"])

# 列出用户所属团队
resp = metadata.list_teams("user-123")
for team in resp["items"]:
print(team["name"])
方法
参数
描述
create_team(payload)
Dict
创建团队
get_team(team_id)
str
按 ID 查询团队
update_team(payload)
Dict
更新团队信息
delete_teams(team_ids)
List[str]
批量删除团队
list_teams(user_id)
str
列出用户所属团队

团队成员管理

管理团队成员关系。
# 添加成员
resp = metadata.add_team_member({
"team_id": "team-abc",
"user_id": "user-123",
"role": "member",
})

# 列出成员
resp = metadata.list_team_members("team-abc", pagination={"limit": 50, "offset": 0})
for m in resp["items"]:
print(m["user_id"], m["role"])

# 查询单个成员
resp = metadata.get_team_member("team-abc", "user-123")

# 移除成员
resp = metadata.remove_team_member("team-abc", "user-123")
方法
参数
描述
add_team_member(payload)
Dict
添加成员到团队
remove_team_member(team_id, user_id)
str, str
从团队移除成员
list_team_members(team_id, *, pagination)
str, Dict
列出团队成员
get_team_member(team_id, user_id)
str, str
查询单个成员信息

Agent 管理

管理 Agent 资源。
# 创建 Agent
resp = metadata.create_agent({
"name": "sql-helper",
"team_id": "team-abc",
"model": "gpt-4o",
})

# 查询 Agent
resp = metadata.get_agent("agt-xyz789")

# 更新 Agent
resp = metadata.update_agent({"agent_id": "agt-xyz789", "model": "gpt-4.1"})

# 列出团队下 Agent
resp = metadata.list_agents({"team_id": "team-abc"})
for agent in resp["items"]:
print(agent["name"])

# 删除 Agent
resp = metadata.delete_agents(["agt-xyz789"])

# 归档 Agent(软删除)
resp = metadata.archive_agent("agt-xyz789")
方法
参数
描述
create_agent(payload)
Dict
创建 Agent
get_agent(agent_id)
str
按 ID 查询 Agent
update_agent(payload)
Dict
更新 Agent 信息
delete_agents(agent_ids)
List[str]
批量删除 Agent
list_agents(payload)
Dict
按条件列表查询
archive_agent(agent_id)
str
归档 Agent(软删除,可恢复)

Task 管理

管理 Task 资源。
# 创建 Task
resp = metadata.create_task({"name": "Q3 数据迁移", "team_id": "team-abc"})

# 查询 Task
resp = metadata.get_task("task-xyz")

# 更新 Task
resp = metadata.update_task({"task_id": "task-xyz", "name": "Q3 数据迁移 v2"})

# 列出 Task
resp = metadata.list_tasks("team-abc", status="active", pagination={"limit": 20})

# 删除 Task
resp = metadata.delete_tasks(["task-xyz"])

# 归档 Task
resp = metadata.archive_task("task-xyz")
方法
参数
描述
create_task(payload)
Dict
创建 Task
get_task(task_id)
str
按 ID 查询 Task
update_task(payload)
Dict
更新 Task 信息
delete_tasks(task_ids)
List[str]
批量删除 Task
list_tasks(team_id, *, status, pagination)
str, str, Dict
按团队和状态列表查询
archive_task(task_id)
str
归档 Task(软删除)

Task-Agent 关联

管理 Task 与 Agent 的绑定关系。
# 绑定 Agent 到 Task
resp = metadata.link_task_agent("task-xyz", "agt-abc", role_in_task="executor")

# 列出 Task 关联的 Agent
resp = metadata.list_task_agents("task-xyz", pagination={"limit": 50})

# 解除绑定
resp = metadata.unlink_task_agent("task-xyz", "agt-abc")
方法
参数
描述
link_task_agent(task_id, agent_id, *, role_in_task)
str, str, str
绑定 Agent 到 Task
unlink_task_agent(task_id, agent_id)
str, str
解除 Task 与 Agent 的绑定
list_task_agents(task_id, *, pagination)
str, Dict
列出 Task 关联的 Agent

参与日志

管理 Agent 参与 Task 的执行日志。
# 追加参与日志
resp = metadata.append_participation_log({
"task_id": "task-xyz",
"agent_id": "agt-abc",
"event": "completed",
})

# 查询参与日志
resp = metadata.list_participation_logs({
"task_id": "task-xyz",
"limit": 50,
})
方法
参数
描述
append_participation_log(payload)
Dict
追加参与日志
list_participation_logs(payload)
Dict
查询参与日志

资产管理

管理共享资产资源。
# 创建资产
resp = metadata.create_asset({
"name": "数据字典 v2.0",
"team_id": "team-abc",
"type": "document",
})

# 查询资产
resp = metadata.get_asset("asset-456")

# 更新资产
resp = metadata.update_asset({"asset_id": "asset-456", "name": "数据字典 v2.1"})

# 列出资产
resp = metadata.list_assets({"team_id": "team-abc"})

# 查询用户可访问的资产
resp = metadata.list_accessible_assets({"user_id": "user-123", "limit": 50})

# 标记最近使用
resp = metadata.touch_asset_usage("asset-456")

# 删除资产
resp = metadata.delete_assets(["asset-456"])
方法
参数
描述
create_asset(payload)
Dict
创建资产
get_asset(asset_id)
str
按 ID 查询资产
update_asset(payload)
Dict
更新资产信息
delete_assets(asset_ids)
List[str]
批量删除资产
list_assets(payload)
Dict
按条件列表查询
list_accessible_assets(payload)
Dict
查询用户可访问的资产
touch_asset_usage(asset_id)
str
标记资产最近使用时间

Agent 固定资产

管理 Agent 的固定资产绑定。
# 全量设置固定资产
resp = metadata.set_agent_fixed_assets("agt-xyz789", [
{"asset_id": "asset-123", "priority": 1},
{"asset_id": "asset-456", "priority": 2},
])

# 列出 Agent 固定资产
resp = metadata.list_agent_fixed_assets("agt-xyz789", pagination={"limit": 50})

# 列出固定资产含详情
resp = metadata.list_agent_fixed_assets_with_detail({"agent_id": "agt-xyz789"})

# 按 Agent 汇总固定资产
resp = metadata.summarize_agent_fixed_assets_by_agents({"team_id": "team-abc"})
方法
参数
描述
set_agent_fixed_assets(agent_id, bindings)
str, List[Dict]
全量设置 Agent 固定资产绑定
list_agent_fixed_assets(agent_id, *, pagination)
str, Dict
列出固定资产
list_agent_fixed_assets_with_detail(payload)
Dict
列出固定资产含详情
summarize_agent_fixed_assets_by_agents(payload)
Dict
按 Agent 汇总固定资产

访问控制(ACL)

管理资产级别的访问权限。
# 授权
resp = metadata.grant_acl({
"asset_id": "asset-456",
"user_id": "user-123",
"permission": "read",
})

# 检查权限
resp = metadata.check_acl({
"asset_id": "asset-456",
"user_id": "user-123",
})
print(resp["allowed"])

# 列出资产 ACL
resp = metadata.list_acl("asset-456", pagination={"limit": 50})

# 撤销授权
resp = metadata.revoke_acl("acl-001")
方法
参数
描述
grant_acl(payload)
Dict
授予用户对资产的访问权限
revoke_acl(acl_id)
str
撤销已有授权
list_acl(asset_id, *, pagination)
str, Dict
列出资产的访问控制列表
check_acl(payload)
Dict
检查用户对资产的权限

鉴权

验证用户密钥有效性。
resp = metadata.verify_auth("sk-mem-...")
print(resp["valid"])
方法
参数
描述
verify_auth(user_key)
str
验证用户密钥是否有效

配置与配额

管理实例配额和用户配置。
# 获取实例配额
resp = metadata.get_instance_quota()
print(resp["max_users"], resp["max_teams"])

# 获取用户配置
resp = metadata.get_user_config({"user_id": "user-123", "key": "language"})

# 设置用户配置
resp = metadata.set_user_config({
"user_id": "user-123",
"key": "language",
"value": "zh-CN",
})
方法
参数
描述
get_instance_quota()
-
获取实例配额上限
get_user_config(payload)
Dict
获取用户配置项
set_user_config(payload)
Dict
设置用户配置项

知识库管理

管理知识库资源。
# 创建知识库
resp = metadata.create_knowledge({
"name": "产品文档",
"team_id": "team-abc",
})

# 查询知识库
resp = metadata.get_knowledge("kb-123", team_id="team-abc")

# 更新知识库
resp = metadata.update_knowledge({
"knowledge_id": "kb-123",
"name": "产品文档 v2",
})

# 列出知识库
resp = metadata.list_knowledge({"team_id": "team-abc"})

# 删除知识库
resp = metadata.delete_knowledge(["kb-123"], team_id="team-abc")
方法
参数
描述
create_knowledge(payload)
Dict
创建知识库
get_knowledge(knowledge_id, *, team_id)
str, str
按 ID 查询知识库
update_knowledge(payload)
Dict
更新知识库
delete_knowledge(knowledge_ids, *, team_id)
List[str], str
删除知识库
list_knowledge(payload)
Dict
列出知识库

上下文管理器

推荐使用上下文管理器自动管理连接生命周期:
with MetadataClient(
endpoint="https://memory.tdai.tencentyun.com",
api_key="sk-xxxxxxxxxxxxxxxx",
service_id="tdai-mem-xxxxxxxx",
) as metadata:
user = metadata.create_user({"username": "alice", "team_id": "team-abc"})
agents = metadata.list_agents({"team_id": "team-abc"})
退出 with 块时自动调用 close() 释放网络连接。

异步版本

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

async def main():
async with AsyncMetadataClient(
endpoint="https://memory.tdai.tencentyun.com",
api_key="sk-...",
service_id="tdai-mem-xxxxxxxx",
) as metadata:
users = await metadata.list_users("team-abc")
agent = await metadata.create_agent({
"name": "sql-helper",
"team_id": "team-abc",
"model": "gpt-4o",
})
print(f"已创建 Agent: {agent['agent_id']}")

asyncio.run(main())