OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:PensiveFei/deep-read-summarize
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Disclaimer: This is an unofficial third-party tool. It is not affiliated with, endorsed by, or sponsored by DeepSeek or the DeepSeek Harness project. "DeepSeek" and "DeepSeek Harness" are trademarks of their respective owners. This project only orchestrates the workflow tool available in your DSH environment; it does not redistribute any DeepSeek software.
给 DSH(DeepSeek Harness)写的一个精读工作流:输入一本书、一篇论文、一个视频链接或网页,输出一份结构化的 Obsidian 笔记。
内容会被拆成若干块,由多个子代理并行精读,再合并成一篇带 YAML frontmatter 的 Markdown。关键结论附原文出处,成稿前有一道质量校验。
注意:DSH 目前是 developer preview,接口可能变化。本仓库针对特定版本的 workflow 工具语义编写,见下文兼容性。
输入(链接或文件路径)
│
▼
解析器注册表 ── book / paper / video / web
│
▼
波次1 获取内容 → 写入临时文件 → 生成分块计划
│
▼
波次2 N 个子代理并行精读各块(Map)
│
▼
波次3 合并成稿 + 质量校验(Reduce)
│
▼
Obsidian 笔记
三个波次,子代理总数约 N+2 个,N 是分块数。
parsers/ 各输入类型的解析器,按类型分发
book.js 书籍:PDF/EPUB/MOBI 文本提取、章节分块
paper.js 论文:arXiv/PDF/HTML 结构识别
video.js 视频:yt-dlp 抓字幕、转写清洗
web.js 网页:正文提取
index.js 注册表:解析器发现与回退
schemas/ 子任务输出的 JSON Schema
scripts/ lint、安全检查
tests/ fixture 测试与验证脚本
workflow.js workflow 脚本本体(meta + script)
想换某个输入类型的处理方式,在 custom-parsers/ 放一个同接口的解析器即可,同名类型会覆盖内置实现。接口只有三个字段:name、types、buildPrompt(input, opts)。
本仓库带 dsh-plugin topic 和 package.json 的 dsh 字段,可被 dsh.so 注册表索引。
dsh.so 收录要求:公开仓库、dsh-plugin topic(或 dsh 字段)、README 安装说明、SPDX 许可证(MIT)。
提交后标记为 Declared(自声明兼容);如果你实际使用并验证兼容,请在官方 Discussions 报告结果,这是唯一升 Verified 的途径。
deep-read-summarize 是 DSH 插件,可通过 dsh.so 生态或本地安装:
# 本地安装(dsh profile 目录)
pnpm add ./deep-read-summarize-0.1.0.tgz
# 然后在 dsh 配置的 dsh.profile.bundles 追加:
# - deep-read-summarize
# 重启 dsh web 即可(POST /dsh-market/restart)
安装后自动注册:
deep-read-summarize workflow(meta + script)deep-read-summarize 技能(skills/deep-read-summarize/SKILL.md)parsers/)与 JSON Schema(schemas/)git clone https://github.com/<your-org>/deep-read-summarize.git
cd deep-read-summarize
npm install # 无第三方依赖,仅初始化
npm test # 17 项 fixture 测试,全部离线跑通
看到 TOTAL: 17 passed, 0 failed 即环境就绪。
node -e "const wf = require('./workflow.js'); console.log('meta:', wf.meta.name); console.log('parsers:', wf.parsers.list().map(p => p.name).join(', '));"
输出类似:
meta: deep-read-summarize
parsers: book, paper, video, web
把下面的 JSON 传给 DSH 的 workflow 工具(见下节「用法」):
{ "input": "https://arxiv.org/abs/2307.09042", "type": "paper", "options": { "maxChunks": 4, "fastMode": true } }
工作流会返回结构化结果:{ ok, kind, title, filePath, qualityPassed, note },note 即最终 Markdown 笔记。
把下面这段 JSON 传给 DSH 的 workflow 工具:
{
"input": "https://arxiv.org/abs/2307.09042", // 链接或文件路径
"type": "auto", // auto | book | paper | video | web
"options": {
"minWords": 2500,
"fastMode": false, // true 时跳过 5-7 节,速度快一些
"maxChunks": 6, // 分块上限,1-12
"requireCitations": true, // 关键结论是否必须标注出处
"includeTimestamps": false,
"outputDir": "./output", // 笔记输出目录(可指向 Obsidian 仓库)
"tempDir": "./.tmp" // 临时文件目录
}
}
示例:
| 类型 | input |
|---|---|
| 论文 | https://arxiv.org/abs/2307.09042 |
| 书籍 | D:/books/xxx.pdf |
| 视频 | https://youtube.com/watch?v=xxx |
| 网页 | https://example.com/article |
输出写到 D:/Obsidian 仓库/PensiveFei/精读笔记/<标题>.md,路径在 workflow.js 里可以改。
视频字幕需要本机装 yt-dlp(winget install yt-dlp.yt-dlp)。没装也不影响其他类型;抓不到字幕时工作流会提示你手动提供转写文本。
分两类:
{ ok: false, stage, fatal: false },由调用方决定。某一块失败时跳过它、在成稿里标注缺口,不整体中断。一篇论文、6 块、完整模式,大约 15-25k token。用 fastMode 并调低 maxChunks 能省四成左右。
npm install
npm run lint # node --check 全部 JS
npm test # fixture 测试
npm run validate # 发布前验证(含安全检查)
改动说明见 CHANGELOG.md,贡献规范见 CONTRIBUTING.md。
DSH 还在快速迭代,有过破坏性变更。本仓库的依赖面是:
agent()、parallel()、phase()、log()、argstype / properties / required / additionalProperties / items / enum / const / oneOf升级 DSH 后先跑一遍 npm test。如果坏了,对照 CHANGELOG.md 里的版本记录排查。
MIT,见 LICENSE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: workflow。