🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

科研文献库 poco-ai/agentero-dsh-plugin

DeepSeek Harness
poco-ai0 天前有提交已提供中文文档扫描:含敏感能力

在对话中检索本地论文、引用出处并整理笔记

32.9/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add poco-ai/agentero-dsh-plugin
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · search
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 61 处,展示前 37 条)
  • 执行外部命令来自配置/变量
    packages/host/src/cli-run.ts:25
    child = spawn(bin, args, {
  • 读取本地文件
    packages/host/src/index.ts:427
    const stream = createReadStream(file)
  • 读取本地文件
    packages/host/src/index.ts:511
    const bytes = await readFile(located.realPath)
  • 写入本地文件
    packages/host/src/index.ts:520
    await writeFile(temp, saved)
  • 写入本地文件
    packages/host/src/index.ts:521
    await rename(temp, located.realPath)
  • 删除本地文件
    packages/host/src/index.ts:523
    await rm(temp, { force: true }).catch(() => undefined)
  • 读取本地文件
    packages/host/src/index.ts:739
    real = await realpath(located.location.lexical)
  • 读取本地文件
    packages/host/src/index.ts:748
    const stat = await lstat(real)
  • 读取本地文件
    packages/host/src/index.ts:760
    res.end(await readFile(real))
  • 读取本地文件
    packages/host/src/marks-store.ts:143
    real = await realpath(lexical)
  • 读取本地文件
    packages/host/src/marks-store.ts:151
    const stat = await lstat(real)
  • 读取本地文件
    packages/host/src/marks-store.ts:165
    const parsed: unknown = JSON.parse(await readFile(path.join(dir, ANNOTATIONS_FILE), 'utf8'))
  • 读取本地文件
    packages/host/src/marks-store.ts:250
    names = (await readdir(dir))
  • 读取本地文件
    packages/host/src/marks-store.ts:258
    const mark = fromMarkFile(name, JSON.parse(await readFile(path.join(dir, name), 'utf8')))
  • 写入本地文件
    packages/host/src/marks-store.ts:310
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    packages/host/src/marks-store.ts:313
    await writeFile(tmp, `${JSON.stringify(items, null, 2)}\n`, 'utf8')
  • 写入本地文件
    packages/host/src/marks-store.ts:314
    await rename(tmp, target)
  • 写入本地文件
    packages/host/src/marks-store.ts:379
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    packages/host/src/marks-store.ts:380
    await writeFile(path.join(dir, `${id}.json`), `${JSON.stringify(mark, null, 2)}\n`, 'utf8')
  • 写入本地文件
    packages/host/src/marks-store.ts:419
    await mkdir(assetDir, { recursive: true })
  • 读取本地文件
    packages/host/src/notes-files.ts:55
    const real = await realpath(vault)
  • 读取本地文件
    packages/host/src/notes-files.ts:56
    const stat = await lstat(real)
  • 读取本地文件
    packages/host/src/notes-files.ts:114
    const entries = await readdir(dir, { withFileTypes: true })
  • 读取本地文件
    packages/host/src/notes-files.ts:133
    title = noteTitle(await readFile(path.join(dir, name), 'utf8'), name)
  • 读取本地文件
    packages/host/src/notes-files.ts:152
    notesReal = await realpath(notesLexical)
  • 读取本地文件
    packages/host/src/notes-files.ts:157
    const stat = await lstat(notesReal)
  • 写入本地文件
    packages/host/src/notes-files.ts:313
    await writeFile(lexical, text, { encoding: 'utf8', flag: exists ? 'w' : 'wx' })
  • 写入本地文件
    packages/host/src/notes-files.ts:392
    if (!exists) await mkdir(path.dirname(fileLexical), { recursive: true })
  • 写入本地文件
    packages/host/src/notes-files.ts:393
    await writeFile(fileLexical, text, { encoding: 'utf8', flag: exists ? 'w' : 'wx' })
  • 读取本地文件
    packages/host/src/pdf-file.ts:19
    const stat = await lstat(realPath)
  • 读取本地文件
    packages/host/src/pdf-file.ts:21
    return { status: 200, bytes: await readFile(realPath) }
  • 读取本地文件
    packages/host/src/pdf-file.ts:38
    real = await realpath(lexical)
  • 读取本地文件
    packages/host/src/pdf-file.ts:54
    dirReal = await realpath(lexical)
  • 读取本地文件
    packages/host/src/pdf-file.ts:65
    const dirStat = await lstat(dirReal)
  • 读取本地文件
    packages/host/src/pdf-file.ts:68
    const entries = await readdir(dirReal, { withFileTypes: true })
  • 读取本地文件
    packages/host/src/vault.ts:49
    const entry = await stat(filename)
  • 读取本地文件
    packages/host/src/vault.ts:62
    try { root = await realpath(value) } catch { throw new Error('invalid vault') }
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness 用的科研文献库插件:搜论文、带出处、审批入库、把笔记线索交给同会话其他插件。

README

由 DeepSeek 最新模型翻译生成
Agentero × DeepSeek Harness Agentero 是本地优先的科研工作台。这个插件把它的文献库、笔记和 PDF 阅读器带进 DeepSeek Harness(下称 dsh),让智能体和你坐在同一个窗口里做科研:你读论文、做判断,智能体帮你查资料、翻笔记、整理结论。所有资料都留在自己的本地。 文献库与 PDF 阅读 一起做科研 - 聊天在中间,论文在右边,读到哪句可以直接丢回对话。 - 智能体能查你已经有的文献和笔记,回答时引用真实的本地论文。 - 讨论完可以让智能体把结论整理成笔记,下次接着用。 - 新论文让智能体按 arXiv、DOI 或链接导入,不用手动整理文件。 可以这样说: 帮我把这个方向近两年的论文找出来,导入文献库,再结合我的笔记整理一份提纲。 把这轮讨论整理成一篇阅读笔记,开头列出用到的论文。 智能体在对话中写笔记 能做什么 - 读文献:搜索、标签、导入、补下载、删除到回收站。 - 读 PDF:翻页、查找、目录、链接;划词后复制、高亮、批注、翻译或加入对话。 - 全文翻译:用 dsh 配置的 DeepSeek 模型在原页面上逐段替换,保留公式和版面。 - 写笔记:编辑自己的笔记,也可以让智能体代写;每篇论文还有自己的专属笔记。 - 让智能体动手:查文献、导入论文、读和搜笔记、整理提纲。
展开完整文档(README 剩余 1 节)
Agentero × DeepSeek Harness

Agentero 是本地优先的科研工作台。这个插件把它的文献库、笔记和 PDF 阅读器带进 DeepSeek Harness(下称 dsh),让智能体和你坐在同一个窗口里做科研:你读论文、做判断,智能体帮你查资料、翻笔记、整理结论。所有资料都留在自己的本地。

文献库与 PDF 阅读

一起做科研

- 聊天在中间,论文在右边,读到哪句可以直接丢回对话。
- 智能体能查你已经有的文献和笔记,回答时引用真实的本地论文。
- 讨论完可以让智能体把结论整理成笔记,下次接着用。
- 新论文让智能体按 arXiv、DOI 或链接导入,不用手动整理文件。

可以这样说:

帮我把这个方向近两年的论文找出来,导入文献库,再结合我的笔记整理一份提纲。

把这轮讨论整理成一篇阅读笔记,开头列出用到的论文。

智能体在对话中写笔记

能做什么

- 读文献:搜索、标签、导入、补下载、删除到回收站。
- 读 PDF:翻页、查找、目录、链接;划词后复制、高亮、批注、翻译或加入对话。
- 全文翻译:用 dsh 配置的 DeepSeek 模型在原页面上逐段替换,保留公式和版面。
- 写笔记:编辑自己的笔记,也可以让智能体代写;每篇论文还有自己的专属笔记。
- 让智能体动手:查文献、导入论文、读和搜笔记、整理提纲。

安装

需要 dsh 0.2.x、Node.js 24.9+、一个已有的 Agentero Vault,以及 Agentero 命令行。

先安装命令行:在 Agentero 桌面端打开「设置 → 关于 → 安装 CLI」,或参考 CONTRIBUTING.md 本地构建。确认终端里能运行:

agentero --help

插件已发布到 npm,直接安装:

dsh plugin --profile web add @poco-ai/agentero-dsh

启动:

dsh web --no-open

看到 [agentero] plugin loaded 后打开终端打印的链接。点侧边栏「更多」→「设置」→「Agentero」,在设置页里选择知识库目录,并填写 Agentero 命令行的可执行文件位置。命令行留空则使用 PATH 里的 agentero。

配置会直接保存到当前 dsh 配置档,不需要手动编辑 cordis.patch.yml。

数据

论文、PDF、笔记和标注都留在 Vault 里,和 Agentero 桌面端共用。插件只在本机运行,不另建数据库。

已知限制

- 扫描件需要先在桌面端做 OCR 和版面分析。
- 全文翻译重新打开文档会重新计算;译文上的原文链接和高亮暂不支持。

开发

见 CONTRIBUTING.md。
预览分享卡片长什么样 ↓poco-ai/agentero-dsh-plugin
分享 · DeepSeek Harness Hub
poco-ai/agentero-dsh-plugin

在对话中检索本地论文、引用出处并整理笔记

回到顶部