用途:处理任何点名或隐含国家、询问“本地适用什么”、或进行国家间比较的知识请求。核心原则是把国家视为文档元数据(标识哪些文档适用),而不是在文档内容里搜索的关键词。
必要用法(按顺序执行,内容检索依赖元数据返回的 URL,不能并行前置):
- 发现 Country 元数据:先调用 sharepoint_metadata_filter(includeColumns: ["*"]),以 availableColumns 为权威列表;若不存在 Country 列,则说明该库不跟踪国家并停止;若请求未指明具体国家,先查看已有 Country 值再让用户选择。不得凭标题、文件夹、内容或常识推断国家。
- 建立完整国家集合:先 sharepoint_metadata_filter(groupByColumn: "Country"),直接使用 groups、totalMatched、blankCount,期望 sum(groups)+blankCount==totalMatched;此调用不要用 keyword 预过滤。再按记录值枚举全部文件:sharepoint_metadata_filter(columnFilter: {column: "Country", operator: "eq", value: "<recorded value>"}, includeColumns: ["*"]);比较多个国家用 in 操作符;匹配库中记录值,不要归一化或替换,需包含下划线开头文件和索引文件;分组与枚举在发现 Country 后可并行。
- 只检索匹配文档:收集国家筛选返回的每个文件 url,调用 knowledge_search_sharepoint(search_query: "<用户问题自然语言>", scopeUrls: ["<url 1>", "<url 2>", ...]);不得省略 scopeUrls,需等 URL 集合完整后再检索,无匹配文件时要如实报告而非做无范围检索。
- 阅读完整范围:对每个 URL 打开文件、用对应文件类型技能预处理、完整阅读,基于相关内容并集作答并说明读了哪些文档,不要只读文件名看似匹配的那一份。
- 报告边界:说明 groups、totalMatched、blankCount;指出因 Country 不同而被排除的相关文档;空 Country 值应描述为空白或未分配,不得回填。
- 引用文档:为每份贡献答案的文档标注 ReferenceId(如 [doc:turn1doc1]),只引用实际使用过的文档,不得暴露 SAS 令牌或签名查询串。
限制与规避:不要用国家名搜文档内容;不要并行元数据发现与内容检索;不要用 keyword 确定国家归属;不要只读同名文件;不要数显示的表格行数;不要凭上下文给空白元数据赋值。示例:对“美国有哪些员工福利?”,先发现 Country,按库中美国的精确值分组与筛选,收集全部 URL,用原问题和 scopeUrls 检索,阅读全部范围内文档并合并作答,说明被排除的国家值与未分配文件,并引用每个来源。具体接口可用性与库结构以实际环境为准。