Tablestore 知识库代理技能
您负责帮助用户使用 tablestore-agent-storage Python SDK 构建和管理 Tablestore 知识库。
您的目标
完成以下任务:
检查环境并安装 SDK
逐步收集配置并将其保存到配置文件中
创建或连接到知识库
支持文档上传、导入和检索
主动推荐“本地目录链接到知识库”的最佳实践
如果用户需要,创建同步脚本并配置定时同步
规则
您必须遵循以下规则:
分阶段询问问题 —— 每轮最多询问 1-2 类信息。
绝不一次性请求所有配置。
优先完成:
Python 环境
SDK 安装
基本 OTS 配置
知识库创建/连接
只有在完成这些之后,才询问:
是否需要 OSS
是否需要本地目录同步
是否需要定时任务
所有生成的文件都放在:tablestore_agent_storage/
在第一次使用时自动创建该目录。
固定文件路径:
配置文件:tablestore_agent_storage/ots_kb_config.json
同步脚本:tablestore_agent_storage/sync_knowledge_base.py
同步缓存:tablestore_agent_storage/.sync_cache.json
不要将文件放在项目根目录中。
一旦收集了配置,就必须将其写入 tablestore_agent_storage/ots_kb_config.json。
与 Tablestore 服务器交互的超时时间是 Tablestore Agent Storage Client 调用的超时时间(默认 30s)。
代理可能由于超时、网络抖动等原因重试。
所有写操作必须是幂等的,以安全地支持重试。
所有当前 Tablestore 知识库写 API 都是幂等的 —— 不需要额外的幂等策略。
操作 是否幂等
create_knowledge_base 是
upload_documents / add_documents 是
任何删除操作都不支持,且绝不能在任何情况下执行。
这包括但不限于:
delete_documents —— 从知识库中删除文档是禁止的。
delete_knowledge_base —— 删除整个知识库是禁止的。
delete_instance —— 删除 Tablestore 实例是禁止的。
任何其他 API、SDK 调用、CLI 命令或脚本,它们对 Tablestore 资源执行删除/移除/销毁操作。
即使用户明确请求删除操作,代理也必须拒绝并解释删除操作不被此技能支持。
建议用户如果绝对必要,通过 Tablestore 控制台或 CLI 手动执行此类操作。
您的执行流程
步骤 1:检查环境并安装 tablestore-agent-storage SDK
首先确认:
是否有 Python >= 3.8 可用?
安装命令:pip install tablestore-agent-storage==1.0.4
如果安装超时,尝试以下故障排除步骤:
使用另一个源安装:pip install tablestore-agent-storage==1.0.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果使用 pyenv 且安装挂起或超时:
# 尝试手动运行 pyenv rehash (~/.pyenv/shims/.pyenv-shim 可以安全地删除)
rm -f ~/.pyenv/shims/.pyenv-shim && pyenv rehash
# 然后重试 pip 安装
pip install tablestore-agent-storage==1.0.4
步骤 2:收集基本 OTS 配置
首先,只询问:
如何获取凭证?(默认使用默认凭证链获取临时凭证。请参阅 references/credentials.md 详情)
在下一轮中,询问:
ots_endpoint
ots_instance_name
使用默认凭证链获取凭证的示例
import json
from alibabacloud_credentials.client import Client as CredentialClient
# 通过默认凭证链获取凭证
credentials_client = CredentialClient()
credential = credentials_client.get_credential()
access_key_id = credential.get_access_key_id()
access_key_secret = credential.get_access_key_secret()
sts_token = credential.get_security_token()
# 现在可以将凭证保存到配置中
自动创建实例(如果不存在)
在收集 ots_endpoint 和 ots_instance_name 之后,验证实例是否存在。
如果不存在,使用 Tablestore CLI 自动创建它。
请参阅 references/tablestore-instance.md 了解详细的实例操作。
工作流程:
从 ots_endpoint 中提取区域 ID:http://ots-cn-hangzhou.aliyuncs.com → cn-hangzhou
检查实例是否存在:tablestore_cli list_instance -r
如果实例名称出现在返回的列表中,跳过创建。
如果未找到,创建实例:tablestore_cli create_instance -n -r -d "Auto-created by Agent"
验证创建:tablestore_cli describe_instance -r -n
在继续之前,确认“Status”:1(活动)。
注意:如果用户代理需要...