Back to home@HTian-qwq

prts-terrarchive

为明日方舟的长篇剧情打造的RAG类DSH插件,拥有多种快速检索能力。

Stars
2
Language
JavaScript
Created
Aug 31, 2026
Updated
Sep 1, 2026

Introduction

prts-terrarchive

PRTS.chat 为 DeepSeek Harness(DSH)提供的资料插件:把《明日方舟》的剧情原文、 官方角色资料、社区整理 Wiki、实体图鉴与《泰拉年表》装进本地资料包,为 Agent 提供 带官方行号的检索与引用工具,并可按需接入 PRTS.chat 云端混合检索与 DSH 原生网页工具。

中文 | English

这是什么

本插件为 DSH 提供《明日方舟》资料检索能力。用户从 ModelScope 下载本地语料后, Agent 可以离线检索并按官方行号阅读原文;可选的 PRTS.chat 云端混合检索用于发现 候选材料,并将结果映射回本地原文核验。由于云端服务承载能力有限,当前为每个 DSH 实例提供 1000 次匿名调用额度(按实例累计);额度策略可能根据实际运行情况调整。

  • 本地检索corpus_search 在 14000+ 篇文档上做 grep 风格检索, 支持资料类型、角色、活动、Wiki 字段等结构化过滤;
  • 原文阅读corpus_read 按「活动 · 章节代码 · 篇名 · 行动前后」 的自然标题 + 官方行号直读原文,引用格式统一为《篇章名》第 N 行;
  • 活动时间线timeline_search 检索 PRTS Wiki《泰拉年表》本地投影, 支持实体别名自动裂变与出处标记反查;
  • 云端混合检索cloud_search / cloud_inspect 接入 PRTS.chat 的 图谱、档案、原文、Wiki 组合索引,结果自动映射回本地篇章;

核心特性

特性说明
按需加载工具只挂在「PRTS 模式」预设下,标准/极简等模式不受污染
资料全面使用了自己搭建的完善资料指导agent
读取去重会话级证据状态跟踪已进入模型上下文的原文,重复/重叠读取自动回放或只补读新行
自带皮肤Harness 默认 / PRTS Agent / Endfield AIC(含 3D 地图终端风格)

环境要求

  • Node.js ≥ 22.19
  • DSH 运行时 ≥ 0.1.2-alpha.1(已验证安全 web_fetch provider 与插件完整加载)
  • 磁盘空间:资料包约 322 MiB(+ 解压缓存)

0.1.2-alpha.1 可用于桌面整合包或从官方 tag 构建,但该版本未发布到 npm。 通过 npm 安装 DSH 时请使用 0.1.2-alpha.2 或更新版本。

安装

npm install --global @deepseek-ai/dsh@0.1.2-alpha.2
npx --yes prts-terrarchive@next web

安装脚本做两件事:把插件加入指定 profile(dsh plugin add),并在 $DSH_HOME/.agent-presets/prts 创建「PRTS 模式」预设。npx 启动的安装器会把与 自身相同的精确版本加入 profile,避免安装过程中混入其他版本。

从源码目录开发或测试时使用:

node bin/install.js web .

DSH Desktop(anywhere-labs)

在 DSH Desktop 托盘菜单打开的专用终端中,把插件安装到 desktop profile:

npx --yes prts-terrarchive@next desktop

安装后重启 DSH Desktop。插件使用普通 DSH Host/Web Client 接口;建议先使用 Desktop 的兼容模式。发行版打包器如果已经把插件实体放入 profile,可执行 node bin/install.js desktop --preset-only,只生成或迁移「PRTS 模式」preset。

Windows

核心功能(本地三工具、设置页、资料下载)为纯 Node 实现,Windows 直接可用:

  1. 安装 Node.js ≥ 22.19 与 npm 可用的 @deepseek-ai/dsh@0.1.2-alpha.2 或更新版本(npm i -g 后确认 dsh.cmd 命令可用);
  2. 执行 npx --yes prts-terrarchive@next web。安装脚本经 cmd 调用 dsh.cmd,路径含 % & | < > ^ " 等字符时会明确报错——把项目放到不含这些字符的 目录(或设置 DSH 环境变量指向 dsh.cmd 绝对路径)即可;
  3. 资料目录默认 %USERPROFILE%\.dsh\prts-corpus\releases

安装后:五步上手

  1. 重启 dsh web
  2. 设置 → 插件 →「PRTS 语料」:选择皮肤(Harness 默认 / PRTS Agent / Endfield AIC);Endfield AIC 的模型与贴图已随插件包安装,切换皮肤不会触发额外下载;
  3. 版本管理:下载资料(约 322 MiB,优先 ModelScope 镜像)。资料未安装或本地 索引、实体别名自动机仍在准备时,模式下拉会保留但锁住 PRTS,并显示恢复路径;
  4. 新建会话,顶部模式下拉选「PRTS 模式」
  5. 直接用自然语言提问,或让模型调用下列工具。

PRTS 模式的工具面

来源工具用途
dsh-base(所有模式共有)bash/sandbox 等常规 Agent 能力,本插件不裁剪
本插件corpus_search本地语料 grep 检索与目录浏览
本插件corpus_read按自然标题 + 官方行号读原文
本插件timeline_search活动时间线检索 / 出处反查
本插件cloud_search / cloud_inspectPRTS.chat 云端混合检索(默认匿名会话)
@deepseek-ai/dsh-tool-webweb_search / web_fetch公网检索与已知 URL 精读核验
@deepseek-ai/dsh-tool-skillskill 加载器按需加载检索策略技能
本插件prts-retrieval 技能检索配方与字段语义(按需注入,不占 system prompt)

工具详解

corpus_search — 本地语料检索

像 grep 一样搜索本地语料;命中立即返回原行及上下各一行,按文档归并。query 使用 短实体名、篇章展示名或原句片段;也可省略 query,仅按过滤条件列出资料入口。

参数说明
query搜索词(≤512 码点);在 NFKC 归一化 + 小写后的文本上匹配
match_modeliteral(默认,连续字面匹配)/ regex(受限正则,拒绝高风险回溯结构)
resource_types资料类型过滤(见下表,数组内 OR)
character_names / story_names / activity_names角色 / 篇章 / 活动展示名过滤
entity_names只返回出现指定实体的行(自动展开别名)
speakers结构化说话人过滤,只匹配亲口台词
wiki_sectionsWiki 标签字段过滤(相关活动、剧情总结、角色剧情概括等 16 种)
context_terms要求命中附近(±3 行)同时出现的语境词,≤8 个
cursor下一页原样复制上一页返回的 next_cursor;必须单独提交

约束:过滤数组每项非空、最多 16 项、单项最长 512 码点。结果预算固定, 沿 cursor 可确定性扫描到 exhausted=true

资料类型(resource_types)story 官方剧情原文;character_profile 档案/招聘/ 潜能;character_module 模组;character_voice 语音;character_skin 时装; operator_record 干员密录;character_bundle 指定角色的档案+模组+语音+密录; character_wiki 规范角色 Wiki;story_wiki 活动/密录 Wiki; character_activity_wiki 角色×活动辅助 Wiki;reviewed_wiki 全部自建 Wiki; terra_journey 大地巡旅;entity_profile 实体资料;reference 时间线等引用资料。

corpus_read — 原文阅读

按完整自然语言标题读取原文;标题使用「活动 · 章节代码 · 篇名 · 行动前后」格式 (如 骑兵与猎人 / 日正当中 / 行动前),不使用内部 ID、ref 或路径。

用法参数
定点上下文title + line(around 模式,默认前后各 3 行,before/after 可调 0–100)
读 Wiki 字段title + section(精确读取标签字段,不含标签行)
分页读全文title + mode: "document"max_lines 默认 100、上限 500;max_chars 默认 12000、上限 100000)
续页只提交 cursor(可重复附带与游标一致的 max_lines/max_chars,其他参数不能同时提交)

引用格式统一为「《篇章名》第 N 行」。剧情文档只返回请求的原文;剧情总结与活动 时间线必须通过 timeline_search 或 Wiki 字段显式检索,不自动夹带。

timeline_search — 活动时间线

按活动名、年份及自动展开的实体别名检索活动时间线(PRTS Wiki《泰拉年表》本地投影)。

参数说明
query可选的事件正文短语(≤200 字符)
activity_names活动展示名(≤20 项,如「孤星」;接受主线章节号常见写法)
entity_names角色/实体展示名(≤20 项,自动经别名图鉴裂变后检索)
year_start / year_end年份范围(含端点,可单独使用)
source_marker反查模式:原样传回结果中的「年表出处:tle_…」标记,返回该事件完整来源
max_results最多返回事件数,默认 20、上限 100

cloud_search / cloud_inspect — 云端混合检索(可选)

用自然语言查询 PRTS.chat 云端的图谱、档案、原文、自建 Wiki 和时间线组合索引。 默认走匿名会话(内置 PoW 挑战,无需账号),也可在设置页配置静态 token。 返回末尾的「## 可读取原文」列出已映射到本地篇章的完整标题与行号,直接按 title + line 调用 corpus_read 核验。cloud_inspect 用于复查最近一次云端 检索的状态(回答材料、候选、诊断),request_id 由运行时自动注入。

web_search / web_fetch — DSH 原生网页工具

由 PRTS 模式挂载:web_search 发现网页候选,web_fetch 读取已知 URL 正文, 用于语料之外的历史沿革、词源、民俗等公网信息核验。DSH 0.1.2-alpha.1 起的匿名 HTTP provider 只允许公网 HTTP(S),并包含 DNS 解析校验、连接地址固定、同源重定向 以及响应大小和超时限制。

检索配方

Wiki 资料不是无差别文本池:工具会区分规范角色页、活动/密录页和角色×活动辅助页。 常见问题的组合方式:

凯尔希参加过哪些活动?
  → corpus_search({ resource_types: ["character_wiki"],
                     character_names: ["凯尔希"], wiki_sections: ["相关活动"] })

凯尔希在《孤星》里做了什么?
  → corpus_search({ resource_types: ["story_wiki"], activity_names: ["孤星"],
                     wiki_sections: ["角色剧情概括"], query: "凯尔希" })

1102 年 1 月发生了什么?
  → timeline_search({ year_start: 1102, year_end: 1102 })

某人亲口说过什么?
  → corpus_search({ speakers: ["阿米娅"], query: "博士" })

完整字段语义与更多配方见 skills/prts-retrieval/references/wiki-schema.mdretrieval-recipes.md(模型通过 prts-retrieval 技能按需读取)。

资料与配置

  • 默认资料目录:$DSH_HOME/prts-corpus/releases;用户配置:$DSH_HOME/prts-corpus.json
  • 配置分三层:内置默认值 ← cordis.patch.yml 行内 config ← 用户文件(设置页写入,立即生效)
  • 下载与版本检查全部优先走 ModelScope 镜像(含最新版解析),PRTS.chat 本站仅在 ModelScope 不可达时回退;下载文件写入前校验大小和 SHA-256,同一 release 的并发 准备由跨进程锁合并
  • 设置页通过 Harness Connection 认证 RPC 访问 Host;修改配置后云端工具热注册/注销

可配置项$DSH_HOME/prts-corpus.json,设置页可视化编辑):

默认说明
uiSkinharness皮肤:harness / prts-agent / endfield-aic
cloudEnabledfalse云端工具开关
cloudBaseUrlhttps://prts.chat云端地址(https,或仅环回主机的 http)
cloudToken静态 Bearer token;留空使用匿名 PoW 会话
cloudGamearknightsarknights / endfield
cloudUserId匿名会话的稳定用户标识
cloudTimeoutMs90000云端请求超时(1000–600000)
cloudMaxResponseBytes32 MiB云端响应上限(1 KiB–256 MiB)
downloadReleaseId当前 pin 版本设置页显式下载的目标版本
downloadSiteBaseUrlhttps://prts.chat回退站点地址
downloadOrder["modelscope","site"]下载源顺序
cacheShards8正文分片 LRU 缓存大小(1–128)

内存说明:本地索引准备时会把篇章定位、标题、别名和检索元数据保留在进程内存, 避免每次工具调用重新扫描压缩分片(本机实测首建索引约 10 秒量级,后台进行);正文 分片按需读取并由 cacheShards 限制缓存数量。Node/V8 可能保留已申请的堆页,操作 系统看到的常驻内存不会在查询结束后立即回落;若需显著压低常驻内存,应把索引迁到 SQLite 等磁盘索引,而不是让首次请求承担全量初始化。

皮肤

设置 → 插件 → PRTS 语料中选择:

  • Harness 默认:不改动宿主外观;
  • PRTS Agent:PRTS 终端风格界面;
  • Endfield AIC:明日方舟:终末地终端风格,含 3D 地图。所需运行代码、模型与贴图已预压缩并随插件包安装,切换皮肤不会触发额外下载。

Endfield AIC 的插件代码、UI 集成与地图渲染实现采用 MIT License;其中使用的游戏衍生模型与贴图不属于 MIT 授权范围,仅作为该可选皮肤的组成部分随包提供。具体文件范围见 GAME_ASSETS.md。这与「版本管理」下载的语料相互独立:语料按需从 ModelScope 下载,皮肤资源无需另行下载。

开发

npm run check        # 全部源码语法检查
npm test             # node --test 全量测试(93 项,需本地资料包 data/releases)
npm pack --dry-run   # 检查发布产物(142 个文件)

真实网络下载脚本 test/real-download.mjs 不在默认测试集中,避免单元测试意外 下载大型资料。

目录结构

src/
  index.js               插件入口:工具注册、配置装配、云端热重载
  search.js              corpus_search 执行层(候选预筛、扫描、签名游标分页)
  search-projection.js   搜索结果的模型可见投影与渲染
  read.js                corpus_read 执行层(around/section/document/activity)
  timeline.js            timeline_search 执行层(别名裂变、年份交集、出处反查)
  store.js               资料包只读访问层(索引、trigram 倒排、分片 LRU)
  wiki.js                Wiki 文档角色与标签字段解析
  entity-recognizer.js   实体别名 Aho-Corasick 自动机
  evidence-state.js      会话级证据状态(读取覆盖去重、上下文可见性判定)
  cloud.js               云端客户端(匿名 PoW 会话、静态 token、限流)
  cloud-projection.js    云端结果的模型可见投影
  source-map.js          云端证据 → 本地篇章映射
  installer.js           资料下载器(双源回退、SHA-256 校验、跨进程锁)
  state.js               三层配置与共享状态
  ui.js                  设置页 API(Connection RPC)与静态资源
  skill.js               prts-retrieval 技能注册
lib/
  client.js              Web 客户端 bundle(皮肤、设置 UI 席位)
  endfield-map/          终末地皮肤地图资源(brotli/gzip 预压缩)
bin/
  install.js             一键安装器
  pack-map-assets.mjs    地图资源压缩打包脚本
contracts/               工具请求/响应 JSON Schema
skills/prts-retrieval/   检索策略技能(字段语义、检索配方)

兼容性

已对照 DSH 0.1.2-alpha.10.1.2-alpha.2(web profile)真机验证;其中 alpha.1 通过官方 tag 构建并完成安装、预设解析、宿主启动、设置路由和客户端 bundle 加载检查。插件依赖宿主内部 接口(ctx.toolsagent/pre-step、Host Connection RPC、webServer 路由、agent 预设、 客户端 slots/theme);DSH 大版本升级后请按「安装 → 重启 → 设置页 → PRTS 模式 → 语料工具 → 网页工具 → 皮肤 → 版本热切换」过一遍冒烟。

许可证与第三方内容

本项目按以下边界提供和授权内容:

  • 原创代码与文档:采用 MIT License
  • 游戏相关内容:《明日方舟》《明日方舟:终末地》相关名称、商标、图像、模型、贴图、游戏数据及其他游戏素材不属于 MIT 授权范围,其权利归各自权利人所有。终末地皮肤所携带资源的具体范围见 GAME_ASSETS.md
  • 语料数据:完整语料不随 Git 仓库或 npm 包分发;用户通过插件从 ModelScope 下载的资料适用对应数据集页面标明的许可证、来源声明和使用条款,不因本项目采用 MIT License 而改变。

本项目为非官方社区项目,与相关游戏的开发商、发行商及其关联方不存在隶属、赞助或背书关系。完整声明见 THIRD_PARTY_NOTICES.md