WorkspaceFilesRuntimeCapability 通过稳定 ID platform.workspace.files 暴露 WorkspaceFilesApi,是插件访问 Xpert 工作区存储卷的统一文件边界。
请使用该能力替代直接读取宿主文件系统或自建插件存储。它会保留平台作用域,为异步任务返回可移植引用,并可将已有文件接入平台文件理解流程。
目录与作用域
支持以下逻辑目录:WorkspaceFileScope 中的 tenantId、organizationId、userId、catalog、scopeId、projectId、knowledgeId、rootId 和 xpertId 等字段。运行时感知 API 会尽可能从当前智能体工作区推导作用域。
filePath 始终是相对工作区存储卷的路径,不是 /workspace/...,也不是宿主或 API 进程的文件系统路径。
选择正确的引用类型
可移植引用包含
source: 'platform.workspace.files'、稳定 filePath、作用域元数据和面向运行时的 workspacePath。请持久化完整引用,不要将其简化成沙箱路径。
文件操作
读取智能体工具传入的路径:
文件理解
文件理解 API 复用平台现有的文件资产(FileAsset)和文件分块(FileChunk)索引,不会创建插件私有的重复索引。
注册并搜索文件:
listUnderstandingChunks() 的页码从 1 开始,并返回 hasMore。宿主会限制页大小、搜索数量、摘录长度和单个分块的内容长度。消费者应分页获取,不能假定一次调用会返回完整文档。
vectorIndexStatus 的取值为 pending、ready、failed 或 unavailable。在开放语义搜索前,应将它与通用解析 status 分开检查。
WorkspaceMediaFilesApi<TLocator> 是面向媒体生成适配器的窄类型。它要求实现 uploadBuffer() 和 readBuffer(),并可选暴露 readRuntimeBuffer() 与 deleteFile();当组件不应依赖完整工作区文件 API 时使用该类型。
安全与生命周期
- 只需要元数据或可打开 URL 时优先使用
resolveFile();只有实际处理内容时才读取字节。 - 不要将
/workspace/...路径放入延迟任务;应先用resolveRuntimeReference()转换。 - 在展示证据或据此执行操作前,使用
validateUnderstandingReferences()重新校验证据。 - 所有显式操作都要声明作用域,不要从不可信绝对路径构造
filePath。 - 原始字节缓冲区(
Buffer)只属于当前服务端操作;后续工作应持久化可移植引用。