Skip to content

refactor(hiagent-knowledge): 精简 search 冗余参数、list_datasets 支持按名搜索、明确 user_info 语义 - #432

Open
yooyea wants to merge 5 commits into
volcengine:mainfrom
yooyea:pr/drop-search-params
Open

refactor(hiagent-knowledge): 精简 search 冗余参数、list_datasets 支持按名搜索、明确 user_info 语义#432
yooyea wants to merge 5 commits into
volcengine:mainfrom
yooyea:pr/drop-search-params

Conversation

@yooyea

@yooyea yooyea commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

改动内容

对 HiAgent Knowledge MCP server(server/mcp_server_hiagent_knowledge)的三处改进:

  1. 删除 search_knowledge 的无效参数 —— 移除 top_k / score_threshold / rerank_id。这几个参数后端知识引擎调用从不使用,只会让工具 schema 变冗余;检索参数由各知识库自身配置决定。
  2. list_datasets 支持按名称模糊搜索 —— 新增可选参数 name,透传为后端 Filter.Name,让调用方可按关键词定位知识库,而不必翻遍所有知识库分页查找。
  3. 明确 user_info 的权限语义 —— 在工具描述与中英 README 中说明:透传的 user_info 仅当 UserChannel"IAM"(或后端可映射为 IAM 用户的 "Lark")且 UserID 为租户内真实用户时,才据此做知识库/文档级权限过滤;其它渠道按游客处理。

为什么

  • search_knowledge 是薄适配层,暴露后端会忽略的参数会误导调用方。
  • list_datasets 此前只能翻分页找库;Filter.Name(后端对名称/描述做模糊匹配)才是预期的检索方式。
  • user_info 很容易被传了却不生效。把渠道要求写清楚,让调用方知道如何让检索遵循终端用户自身的访问权限,同时避免在薄适配层里硬编码某个渠道值。

测试

  • 更新单测:移除已删参数的相关断言;新增 list_datasets 的过滤测试(传 / 不传 name)。75 个测试全部通过。
  • 更新中英 README,与新的工具签名和 user_info 语义保持一致。
  • 已在真实 HiAgent 部署上验证,含端到端权限隔离核验:授权 IAM 用户检索成功,未授权用户返回 403 被拒。

说明

  • 对现有调用方无行为变更(被删参数本就无效)。user_info 仍为可选、原样透传。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant