@asuka1121/dsh-client-ui-elasticsearch
v0.2.1
Published
Elasticsearch connection settings for DeepSeek Harness: shared settings section (URIs/username/password) plus the es_query_logs model tool
Readme
dsh-client-ui-elasticsearch
English | 中文
一个 DeepSeek Harness 插件:在 Settings 中新增 Elasticsearch 设置页,并提供 Host 侧模型工具 es_query_logs。
- Settings → Elasticsearch:配置
uris(每行一个)、username、password。配置写入共享的 DSH 设置文档,跨会话共享。 es_query_logs工具:按trace_id精确检索,和/或通过query用自然语言检索(匹配message、exception等日志文本字段),支持可选fields、index、size。复用上述连接配置。- 自动指引:系统提示词中自动注入「给了 trace_id 或问日志内容就用
es_query_logs」,无需专门 Agent 预设。
安装
dsh plugin --profile web add @asuka1121/dsh-client-ui-elasticsearch@latest重启部署即可。包声明了 dsh.bundle.patch,dsh plugin 会自动注册为 profile bundle。
需要 pnpm 在
PATH上。插件的@deepseek-ai/*运行时依赖以 peerDependencies 方式从 DSH 安装中解析,共享同一份 Cordis 实例。
工具
es_query_logs 参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
| ---- | ---- | ---- | ---- | ---- |
| query | string | 否* | — | 自然语言检索词,匹配日志文本字段(如 "connection refused"、"NullPointerException") |
| trace_id | string | 否* | — | 精确 trace id,检索 trace 字段 |
| fields | string[] | 否 | 常用日志文本字段 | query 匹配的显式字段列表;不支持通配符 |
| index | string | 否 | * | 索引模式 |
| size | integer | 否 | 100 | 最大命中数,上限 500 |
* query 与 trace_id 至少提供其一。
trace_id对trace_id、trace.id、traceId、traceID做精确term查询。query对解析后的字段做multi_match(best_fields),避免通配符字段展开在宽索引上报错。- 两者同时使用会先按 trace 收敛、再按内容过滤;结果按
@timestamp倒序,依次尝试每个配置的 URI。
完整安装 / 使用说明
新电脑安装流程、可选 Agent 预设(es-log-assistant)、常见问题排查见 INSTALL.md。
许可
MIT
开发
编译产物 lib/ 随仓库分发,可直接从目录安装。从源码构建需要
deepseek-harness monorepo:
tsdown.config.ts 引用了 packages/client/tsdown.client.ts 的 clientBundle 预设。
npm 发布包(@asuka1121/dsh-client-ui-elasticsearch)是规范的构建产物。
未来计划
愿景。 日志检索插件的真正价值在于「关联」:不只是找到日志,而是把每条日志都溯源到产生它的项目代码。长期目标正是实现这种「日志 → 代码」的可追溯分析。
当前边界。 目前 Agent 只能把日志与本地工作区做关联。代码侧集成暂缓——等 dsh 官方开放远程/网络工作区访问(例如绑定 0.0.0.0)再启动;Agent 够不到的工作区,做代码关联没有意义。
待解难点:代码获取。 目前的设想是在服务器端按需拉取:每次询问前,根据日志里的 app_name 克隆对应项目,让答案自包含、始终基于最新代码。但为每个应用保存完整克隆的存储开销太大,正在评估更轻量的方案:浅/部分克隆、只懒加载 trace 命中的相关文件、缓存与淘汰策略等。
