前言¶
智能体直接查询 OpenSearch 原始端点容易陷入数据过载。亿级文档、GB 级响应或重复的错误日志会消耗大量 Token,且难以提取有效信息。dsh-searchops 针对此场景设计,它是一个 Agent 原生的证据获取层,而非简单的 API 封装。插件负责处理确定性、高消耗的分析工作(如边界限制、分组、指纹识别),将结构化的证据包交给智能体,让智能体专注于推理。
插件定位¶
这是一个专为 DeepSeek Harness 设计的 Agent 原生搜索、日志调查与集群操作插件。它基于 OpenSearch 构建,但保持提供商中立,且严格为只读模式。
核心能力¶
- Agent 原生工具集:提供
searchops_*命名空间下的 9 个只读工具,专门为智能体交互设计。 - 确定性指纹识别:对日志进行去重和模式化处理,例如将多次
Connection refused合并为一个带计数的模式,无需机器学习即可提取关键信息。 - 灵活的源与配置:支持配置多个命名源,每个源可绑定独立的字段配置(如时间戳、消息、TraceID),插件会自动检测映射或遵循约定。
- 提供者抽象与扩展:核心逻辑基于
SearchSource/SearchQuery/SearchResult/SearchProvider接口,OpenSearch 为默认适配器,Elasticsearch 为扩展点。 - 严格的安全边界:凭证永不进入模型上下文;禁用重定向防止跨域凭证泄露;响应被大小和时间限制;所有返回内容被视为不可信数据。
- 构造性边界:所有列表和查询操作均明确披露截断信息,而非静默丢弃数据。
安装与启用¶
环境要求
* Node.js >= 20.11
* DeepSeek Harness 版本 0.1.0-rc.6 至 0.1.5(预发布版本)
安装
插件为纯 ESM JavaScript,无构建步骤。
dsh plugin --profile <profile> add github:guhanfei-ai/dsh-searchops#v0.1.0
安装后请重启选定的 DSH Profile。
典型用法¶
配置源
在 Settings → Plugins → SearchOps 中添加源。密码必须存储在 DSH 凭证存储中,通过源 ID 推导的引用访问(例如 SEARCHOPS_PASSWORD_prod)。
Agent 交互示例
配置完成后,Agent 可以执行以下操作:
Is the prod search cluster healthy?
Show me the last hour of payment-api errors.
Investigate why payment-api is returning 500s.
注意事项与生态¶
项目状态
当前版本为 v0.1.0,处于 pre-1.0 状态。尚未针对所有 OpenSearch 发行版和版本进行认证。
安全与限制
* 所有工具严格只读,不会写入、删除或更改集群状态。
* OpenSearch-first,provider-neutral by design。
* 建议在基于 OpenSearch 的环境中使用。
生态背景
DeepSeek Harness 采用「一切皆插件」的理念。该插件托管在独立社区目录,与 DeepSeek 或幻方无官方从属关系。