方法介绍
search 用于按查询文本搜索匹配的 Skill。功能说明如下:搜索模式:支持关键词(
bm25)、语义向量(embedding)和混合搜索(hybrid)三种模式,默认为混合模式。结果排序:返回带相关性评分(
score)的 Skill 列表,结果按 score 降序排列,值越高表示与查询文本的相关性越强。搜索范围:默认在当前 Agent 作用域内搜索,传入
scope="team" 可跨当前团队下全部 Agent 搜索。返回数量:通过
top_k 控制返回结果数量上限。导入
from tencentdb_agent_memory.v3 import SkillClient
方法签名
def search(self,query: str,*,top_k: Optional[int] = None,mode: Optional[str] = None,scope: Optional[str] = None,team_id: Optional[str] = None,agent_id: Optional[str] = None,user_id: Optional[str] = None,task_id: Optional[str] = None,) -> Dict[str, Any]
使用示例
from tencentdb_agent_memory.v3 import SkillClientwith 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",) as client:result = client.search(query="Python type hints usage", # 必填,搜索查询文本top_k=10, # 可选,返回结果数量上限mode="hybrid", # 可选,搜索模式:bm25/embedding/hybrid)for hit in result["items"]:print(f"[{hit['score']:.2f}] {hit['name']}")
请求参数
参数名 | 类型 | 必填 | 描述说明 |
query | str | 是 | 搜索查询文本 |
top_k | int | 否 | 返回结果数量上限 |
mode | str | 否 | 搜索模式: bm25(关键词)、embedding(语义)或 hybrid(混合) |
scope | str | 否 | 搜索范围,传 "team" 时跨当前团队下全部 Agent 搜索 |
team_id | str | 否 | 团队 ID,覆盖构造时的默认值 |
agent_id | str | 否 | Agent ID,覆盖构造时的默认值 |
user_id | str | 否 | 用户 ID,覆盖构造时的默认值 |
task_id | str | 否 | Task ID,覆盖构造时的默认值 |
响应示例
{"items": [{"skill_id": "skill-abc123","name": "python-tips","score": 0.95,"content": "---\\nname: python-tips\\n...","version": 3}]}
Running Environment
Operating System: Ubuntu 24.04.3 LTS / x86_64
Runtime Version: Python 3.11.1
响应参数说明
参数名 | 类型 | 参数含义 |
items | List[Dict] | 匹配结果列表,按相关性得分降序排列 |
items[].skill_id | str | Skill ID |
items[].name | str | Skill 名称 |
items[].score | float | 相关性得分 |
items[].content | str | Skill 内容 |
items[].version | int | 当前版本号 |
错误码
错误码 | 触发场景 | 处理建议 |
400 | query 为空 | 检查 query 参数 |
401 | API Key 无效或过期 | 检查 api_key 配置 |
422 | 构造参数缺失 | 确保构造时传入必填参数 |
500 | 服务内部错误 | 可有限重试 |