在对话中检索本地论文、引用出处并整理笔记
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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
poco-ai/agentero-dsh-plugin
在对话中检索本地论文、引用出处并整理笔记
相关插件 · 搜索 / 抓取
LLM 知识平台Tencent/WeKnora
概览 ·快速开始 ·新特性 ·功能 ·客户端 ·文档 ·开发
★ 36,266已汉化DSH
72
智能体记忆系统MemTensor/MemOS
MemOS 2.0 Stardust星尘
★ 12,228已汉化DSH
71.3
跨代理记忆库zilliztech/memsearch
跨平台语义记忆,专为 AI 编程智能体打造。
★ 2,799已汉化DSH
70.9
跨智能体会话记忆vshulcz/deja-vu
你的编码智能体不再重复调试你已经修好的问题。
★ 1,367已汉化MCP
70.4
技能语料库EverMind-AI/SkillCorpus
SkillCorpus 能给你什么
★ 694已汉化DSH
69.7
动画花园资源检索yjl9903/AnimeGarden
按番剧、字幕组和类型搜索动画 BT 资源
★ 1,391已汉化DSH
69.2