puppet2004/dsh-chatpaper
After DSH's release, I plan to gradually accumulate the tools I use frequently as DSH plugins.
これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。
dsh-chatpaper
在DSH发布之后,我会把经常使用的一些工具作为DSH的插件慢慢积攒起来。
ChatPaper这个工具给我带来了很大的便利,节省了大量找文章,做调研的时间,因此,为了将其适配DSH的插件,我花了些时间用AI修改了代码并发布到了githuib上,希望给更多人带来便利。
面向 DeepSeek Harness(DSH)的 arXiv 论文工具,以原生工具形式提供——不需要 Python,也不需要 MCP server。论文正文优先从 arXiv 官方 HTML 渲染(LaTeXML)提取,并带 ar5iv 与 PDF 兜底。
本项目是参考 ChatPaper 做的DSH插件移植:工具契约与查询逻辑保持一致,但改为直接跑在 DeepSeek Harness 的原生接口之上。出处与引用见文末 致谢。
工具
| 工具 | 功能 |
|---|---|
search_arxiv | 搜索 arXiv。自然语言(如 "agent as a judge")会按 all: 短语匹配,查不到时退化为对关键词的 AND 匹配;原生 arXiv 查询语法(ti:transformer、cat:cs.CL AND all:agent)原样透传。 |
summarize_paper | 下载论文、提取正文,并按固定章节(Background, Methods, Results, Conclusions)用 LLM 生成摘要。 |
translate_paper | 分块翻译论文全文;长文可后台执行。 |
generate_survey | 基于搜索结果撰写文献综述——摘要级(快)或全文深读模式(每篇一个摘要、并发、可后台执行)。 |
后台运行(run_in_background: true)会注册标准的 DSH 任务:调用立即返回 job id,完成后用 harness 自带的 job_output 工具取回结果(或失败详情)。单次读取输出上限 20000 字节。
search_arxiv 不需要任何 API key。三个 LLM 工具走 harness 的 LLM 服务(ctx.llm)——网页 Models 页配置的 provider、模型、凭据、重试策略与路由全部直接复用,插件内无需任何配置。provider/model 留空时,会在调用时自动解析为当前部署的 deepseek 路由及其默认模型;显式配置则优先使用。
安装
从 npm 安装(预构建产物,无需安装期构建授权):
dsh plugin --profile <name> add dsh-chatpaper
从 GitHub 源码安装(会执行 prepare 构建;pnpm 需要在该 profile 的 pnpm-workspace.yaml 中授予 allowBuilds——更推荐 npm 方式):
dsh plugin --profile <name> add github:puppet2004/dsh-chatpaper
该组合包会注册一个 chatpaper 行;安装后该 profile 的每个会话都能看到这 4 个工具。
配置
在 profile 的 cordis.patch.yml 中新增或覆盖该行:
- insert:
- id: chatpaper
name: dsh-chatpaper
config:
provider: ''
model: ''
| 配置项 | 默认值 | 说明 |
|---|---|---|
provider | '' | Harness LLM provider 路由;留空自动解析为部署的 deepseek 路由(官方部署下为 deepseek-official)。 |
model | '' | Harness LLM 模型 id;留空自动解析为适配器公布的默认模型。 |
cacheDir | ~/.dsh-chatpaper-cache | 论文正文缓存目录,按带版本的 arXiv id 缓存。 |
surveyConcurrency | 4 | 深读综述模式下并发的单篇摘要数。 |
summaryChars | 15000 | 喂给摘要的正文切片长度。 |
surveyPaperChars | 8000 | 深读综述中单篇摘要的正文切片长度。 |
translateChunkChars | 6000 | 单次翻译的块大小。 |
translateMaxChars | 60000 | 参与翻译的源字符数上限。 |
searchDelayMs | 3000 | 每次 arXiv API 请求前的延迟(限速礼貌)。 |
searchRetries | 3 | arXiv API 重试次数。 |
downloadTimeoutMs | 120000 | 论文正文下载超时。 |
论文正文获取方式
- 官方 HTML ——
https://arxiv.org/html/<带版本id>;结构化提取保留章节标题与公式(<math alttext>→ LaTeX)。 - ar5iv ——
https://ar5iv.labs.arxiv.org/html/<id>,覆盖缺少官方 HTML 的旧论文。 - PDF 兜底 —— 完全无 HTML 时用
pdfjs-dist提取文本。
每一层的输出都会校验(空壳或提取字符 < 200 就落到下一层)。提取结果会缓存,重复调用秒回。
模型体验
模型看到什么
4 个原生工具及其声明 schema。search_arxiv 返回结构化论文元数据(id、标题、作者、日期、分类、pdf 链接、摘要),渲染为编号列表。LLM 工具返回结构化结果,渲染展示摘要/翻译/综述正文,综述还带 [n] 编号的参考文献列表。
Token 与 KV 缓存影响
工具 schema 固定,模型侧的定义前缀跨请求稳定。工具结果都是普通文本,不携带二进制或图片。论文正文在每次 LLM 调用前截断(summaryChars/surveyPaperChars/translateMaxChars),prompt 大小有界。缓存命中完全避免重复下载与提取。
致谢
本项目是对开源项目 ChatPaper 的移植。搜索查询逻辑、论文摘要 prompt 与综述工作流沿袭原版设计,但改用 DeepSeek Harness 原生接口(ctx.llm、ctx.tools、ctx.jobs)重新实现,使用或在此基础上二次开发时,请同时引用原项目:
@misc{ChatPaper,
author={Yongle Luo, Rongsheng Wang, Peter Gam, Jiaxi Cui, circlestarzero, Shiwen Ni, Jaseon Quanta, Qingxu Fu, Siyuan Hou},
title = {ChatPaper: Use LLM to summarize papers.},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/kaixindelele/ChatPaper}},
}
セキュリティとインストールエビデンス
このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。
公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。
GitHub メタデータにライセンスが検出されませんでした。
過去180日以内にコードの更新があります。
再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。
prepare が検出されました。インストール前にスクリプトを確認してください。
missing-licenselifecycle-scripts