DeepSeek Harness 对话内多源搜番插件,聚合 Mikan/AniBT/AnimeGarden 结果,按 Bangumi 索引展示卡片、磁力与种子,内置试点流媒体源可在同页选集播放。
- 语言
- TypeScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add github:cocofhu/anime-find在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 cocofhu/anime-find:先查看仓库 https://github.com/cocofhu/anime-find.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
anime-find 是 DeepSeek Harness Web 上的对话内搜番插件,让 Agent 在回复中直接展示来自 Mikan / AniBT / AnimeGarden 的番剧卡片,并在同页查看磁力、种子和 Bangumi 介绍,还可以基于静态解析的规则直接在对话里选集播放。
核心能力
- 多源聚合搜索:同时调用 Mikan、AniBT、AnimeGarden 三个站点,按来源合并展示卡片,单源失败不会阻塞其他源
- 按 Bangumi 索引补全:对每张卡片自动补全评分、原名、标签等信息(带 bgmId 的直接拉,无则按标题搜一次)
- 资源详情面板:按字幕组浏览集数,提供磁力一键复制与 .torrent 文件下载链接
- Bangumi 介绍与短评:详情卡加载介绍、评分、类型标签和最多 5 条短评,Bangumi 不可用时自动隐藏对应 Tab
- 流媒体在线播放:根据搜索结果在静态解析的规则站点试播,整段 HLS 通过 Host 代理后重写分片链接
- 智能追问:识别"还有吗""换一批""再推荐"等指令,自动翻页取下一批结果
- 季度感知:说"本季""最近好看的"时按 Asia/Shanghai 时区识别当前季度,支持"2026 夏""2026-07"等显式季度
- 插件内更新检查:在配置页可手动对照 GitHub 正式 Release,发现新版本提供复制好的更新命令
技术实现
- 语言: TypeScript(Host 端
src/*.ts,构建到lib/host.js)+ JavaScript + React(Client 端src/client.js,构建到lib/client.js,含 HLS 播放器) - 关键依赖: cheerio(HTML 解析)、hls.js(HLS 播放)、@deepseek-ai/dsh-tools(工具注册)、@deepseek-ai/cordis(插件注入)
- 架构模式: 通过 cordis.patch.yml 向宿主注册
anime-find插件 ID 与默认配置;Host 端apply(ctx, config)同时注入tools(注册anime_find_search工具)、webServer(注册/anime-find等代理与封面端点)、systemPrompt(追加段以约束 Agent 调用行为);Client 端经@deepseek-ai/dsh-client-runtime与@deepseek-ai/dsh-client-ui-slots在 ToolView 渲染卡片与播放器 - 入口文件: 宿主入口
lib/host.js(package.json#exports['.']),客户端入口lib/client.js(package.json#exports['./client']);构建由prepare脚本(tsc+ 资源拷贝)触发
适用场景
在 DeepSeek Harness Web 的对话里直接搜番,不想切换到浏览器标签页。希望看到"本季有什么""某个番的磁力在哪""能不能在线看"的统一答案,而不是逐个站点查找。适合爱好追番、需要常态化在新番季和补旧番之间切换的用户;对只想看具体来源站点的资深用户价值有限,因为本插件不托管任何媒体,规则站点需要用户自行确认可观看性。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH Web | >= 0.1.0-rc.6 | peerDependency 声明 @deepseek-ai/dsh-tools(开发时使用 ^0.1.0-rc.6);客户端需 @deepseek-ai/dsh-client-runtime 与 @deepseek-ai/dsh-client-ui-slots |
| Node.js | >= 22 | package.json#engines.node |
| 运行时 | — | Host 端基于 Node.js,不需要原生模块;客户端浏览器原生 ESM + hls.js |
| 平台 | 跨平台 | macOS / Windows / Linux 均可,运行时只依赖浏览器与 Node |
| 原生模块 | 无 | dependencies 仅 cheerio 与 hls.js;无 node-gyp 构建步骤 |
安装方式
dsh plugin --profile web add github:cocofhu/anime-find
安装后重启 dsh web,并在浏览器中强制刷新页面。
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 搜索源 | 多选 | 启用的来源:Mikan / AniBT / AnimeGarden,默认仅 Mikan | 仅 Mikan |
| 搜索结果上限 | 数字 | 每批返回的卡片数;查看本季时自动不低于 36 | 12 |
| Mikan 站点地址 | URL | Mikan 的根域名,可换镜像 | https://mikanani.me |
| AniBT 站点地址 | URL | AniBT 的根域名,可换镜像 | https://anibt.net |
| AnimeGarden API 地址 | URL | AnimeGarden API 入口 | https://api.animes.garden |
| 上游请求超时(毫秒) | 数字 | 3 秒到 120 秒之间 | 20000 |
| 请求 UA | 字符串 | 发送至上游的 User-Agent | Mozilla/5.0 (compatible; anime-find/0.1) |
| 流媒体总开关 | 开关 | 关闭后详情卡不再显示"流媒体"Tab | 开启 |
| 流媒体规则 | JSON 数组 | 静态可解析的播放源,每条至少含 8 个字段(name、baseURL、searchURL、searchList、searchName、searchResult、chapterRoads、chapterResult);{{keyword}} 或 {{query}} 替换为搜索关键词 | 内置一条 xfdm(试点源) |
配置保存即生效,写入 $DSH_HOME/anime-find.json。
常见问题
Q: 在对话里说什么才会触发搜番?
A: 任何与番剧相关的问题都会让 Agent 调用 anime_find_search 工具,并在回复中输出可点击卡片。说"最近有哪些好看的动漫""本季""还有吗"会自动按当前季度(Asia/Shanghai 时区)展开。说"搜下无职转生"则按标题搜。
Q: 卡片点开后能看到什么?
A: 按字幕组分组的资源列表,含集数、磁力链接和 .torrent 文件地址;若卡片带 Bangumi ID,详情里还会拉取介绍、评分、类型标签和最多 5 条短评,全部在 Host 侧代理完成,不会写入给 Agent 的工具正文。
Q: 流媒体 Tab 默认能用吗?需要自己准备规则吗?
A: 默认开启,并内置一条试点规则 xfdm(仅静态解析,不托管内容)。如果该站点不可用,可在设置里关闭或粘贴自定义规则 JSON;规则必须可静态解析,至少含 name/baseURL/searchURL/searchList/searchName/searchResult/chapterRoads/chapterResult 八个字段。
Q: 安装后必须重启 dsh web 吗?
A: 是的。安装/更新插件后需重启 dsh web 并强制刷新浏览器;这是因为 HLS 播放器(hls.min.js)由 Host 显式注册,只有刷新后才能被 ToolView 加载。
Q: 配置改完需要重启吗?文件存在哪?
A: 不需要,保存即生效。配置写入 Harness 用户目录下的 anime-find.json($DSH_HOME 未设时为 ~/.dsh/anime-find.json,DSH_HOME 优先)。版本与安装来源是只读字段,不会写入该文件。
Q: 提示"播放器无法加载该集"怎么办?
A: 该集未解析出可播放地址或源站限制所致。可以在同 Tab 切换其他源,或直接打开源站页面观看;规则解析受限时,流媒体 Tab 会自动隐藏但不影响介绍和资源浏览。
Q: 数据会发给模型或上传到云端吗?
A: 不会。搜索请求由插件发往对应源站(Mikan/AniBT/AnimeGarden),Bangumi 介绍/短评由 Host 代理请求后只渲染到 UI,不会写入给 Agent 的工具正文;配置文件只存在本机。
Q: 怎么更新到最新版?
A: 在插件设置页"版本与更新"区块手动点"检查更新"。发现新版本时按提示在终端执行 dsh plugin --profile web update anime-find,然后重启 dsh web 并强制刷新浏览器;不会自动检查,也不使用预发布/草稿 Release。本地 link: / file: 安装时不会显示该命令。
上手难度
入门 — 在对话里用自然语言即可使用,配置项有合理默认,不需要写规则也能立即搜番并查看磁力;自定义流媒体规则需要理解 CSS/XPath 选择器和 JSON 字段约定,对应"进阶"工作量。
已知问题与限制
- 流媒体规则首期不支持脚本、函数与文本匹配等动态 XPath 谓词,也不执行页面 JavaScript 或 WebView 拦截;首期不会自动同步社区规则仓库
- 单集不能播放或解析出 0 个播放地址时,不会回退到同集其他线路,详情卡会提示"播放器无法加载该集"或隐藏整个流媒体 Tab
- Bangumi 短评来自
next.bgm.tv/p1非公开接口,可能变更或下线,失败时只隐藏短评 Tab,不影响介绍和资源浏览 - 单个来源失败不会中断其他来源,但插件不会自动重试;当 AniBT/AnimeGarden 启用但域名无法连通时,搜索结果数会显著减少(默认仅 Mikan)
- 翻页结果依赖源站返回足够多的资源,本季结果较少时可手动提高结果上限或在设置中启用其他来源
dsh plugin update命令仅对 GitHub 来源可用;本地link:/file:安装时更新检查仍生效,但不会提供可复制的更新命令

DeepSeek Harness 搜番插件。在对话中搜索番剧,以可点击卡片展示结果,并在详情面板中查看字幕组、磁力链接和种子文件。
功能
- 聚合 Mikan、AniBT 和 AnimeGarden
- 在对话流中展示番剧封面、标题、评分、格式和资源数量
- 根据 Asia/Shanghai 时区识别当前新番季度
- 支持「还有吗」「换一批」等追问并分页展示更多结果
- 点击卡片后按字幕组和集数浏览资源,并可查看 Bangumi 介绍、评分和短评
- 支持复制磁力链接和打开
.torrent文件 - 可选流媒体 Tab:按搜索结果显示用户规则解析出的可播源,并在同页选集播放
- 可在 Harness 插件设置中启用来源、调整结果数量和站点地址
- 在插件设置中查看当前版本,并手动检查 GitHub 正式 Release
环境要求
- Node.js 22 或更高版本
- DeepSeek Harness Web
安装
从 npm 安装:
dsh plugin --profile web add @cocofhu/anime-find
本地开发:
dsh plugin --profile web add /absolute/path/to/anime-find
安装后重启 dsh web,并强制刷新浏览器页面。不要用 github:cocofhu/anime-find 或无前缀的 anime-find 安装:git 源会跑 prepare;旧包名已迁到 @cocofhu/anime-find。
使用
可以直接对 Agent 说:
搜一下无职转生,看看有没有磁力
最近有哪些好看的动漫
还有吗
插件向 Agent 提供 anime_find_search 工具。搜索完成后,对话中会显示可点击卡片;点击卡片即可查看字幕组与下载资源。
资源详情
按字幕组浏览集数、复制磁力链接或打开种子文件:

流媒体播放
在详情中切换到流媒体,选择剧集后可在对话中直接播放:

配置
打开 设置 → 插件 → 插件配置 → 搜番:
- 搜索源:默认仅启用 Mikan,可选 AniBT 和 AnimeGarden
- 搜索结果上限:每批返回的卡片数量
- 站点地址:各来源的服务地址,可按需替换镜像
保存后立即生效。用户配置落在 Harness 用户目录 $DSH_HOME/settings.yaml 的 anime-find: 段(由 dsh 设置服务原子写入)。版本与安装来源为只读信息,不会写入该段。
从旧版升级时,若仍存在 $DSH_HOME/anime-find.json 且 yaml 中尚无该用户段,插件会把 json 导入 anime-find: 后将原文件改名为 anime-find.json.bak;若 yaml 里已有用户配置则跳过导入,仍只改名备份,之后不再读取 json。
流媒体播放
流媒体默认开启,并内置一条可静态解析的试点规则(xfdm)。打开 设置 → 插件 → 插件配置 → 搜番
可关闭总开关、启停或替换规则 JSON。规则须为可静态解析的 CSS 或受限 XPath 子集,至少包含
name、baseURL、searchURL、searchList、searchName、searchResult、chapterRoads
和 chapterResult。{{keyword}} 或 {{query}} 会替换为搜索关键词。
播放地址支持两种取法:playURL 既可以是指向 src/href 的选择器,也可以写成
script:player_aaaa.url,从播放页内联脚本对象里读取(MacCMS 站点常用,按同级
encrypt 字段自动处理 URL 编码或 base64)。
当媒体位于站点之外的 CDN 时,用 mediaHosts 显式声明这些域名,只有声明过的域才会
被解析和代理放行;私网、回环和链路本地地址始终拒绝。
mediaHeaders 只作用于媒体请求,值留空表示不发送该头。同一站点的不同 CDN 要求可能
相反(有的必须带 Referer,有的带了就报错),所以键名含点时视为域名,其下的头只对该
域及其子域生效:
{
"mediaHosts": ["cdn-a.example", "cdn-b.example"],
"mediaHeaders": { "cdn-b.example": { "referer": "" } }
}
流媒体 Tab 只显示已解析出剧集的源;单集不能播放时可换源或打开源站。媒体请求仅会代理到
已启用规则的域名及其声明的 mediaHosts(HLS playlist 会重写分片链接),不提供开放代理。首期不支持依赖
Kazumi WebView 拦截的动态规则,也不会自动同步社区规则仓库。受限 XPath 支持常见的
//tag、层级、序号、属性与属性包含谓词;脚本、函数和文本匹配谓词仍不支持。插件不托管任何内容,请仅
访问你有权观看的内容并遵守来源站点条款。
也可通过 cordis.patch.yml 设置默认来源:
- id: anime-find
config:
sources: [mikan]
数据与网络
启用某个来源后,插件会向对应站点发送搜索和详情请求。封面通过插件服务转发,配置仅保存在本机,不会写入仓库。
详情卡在有 Bangumi subject ID 时,会通过 Host 使用插件配置的 User-Agent 和超时设置请求 Bangumi 条目信息;介绍、评分和基础信息来自公开 v0 API。短评由 Host 代理 Bangumi 的非公开 p1 接口,最多展示 5 条。该接口可能变更或不可用,届时短评 Tab 会自动隐藏,不影响介绍和资源浏览;本期不使用 HTML 抓取后备。
Bangumi 的介绍和短评只在用户点击详情卡后加载和渲染,不会写入提供给模型的工具正文。
请遵守来源站点的使用条款,并仅将下载能力用于你有权访问的内容。
版本与更新
在 设置 → 插件 → 插件配置 → 搜番 的「版本与更新」区块中,可手动检查 GitHub 上的最新正式 Release。打开设置页不会自动检查,也不会使用预发布版或草稿 Release。
发现新版本时,保留显示以下官方命令供参考。点击「更新」并确认后,插件会自动使用
当前 profile 执行该命令、拉起新的 dsh web(可能使用不同端口),然后自动跳转到新
地址:
dsh plugin --profile web update @cocofhu/anime-find
当前以 link: 或 file: 本地方式安装时,页面仍会显示版本对比,但禁止自动更新,
以免覆盖开发环境。若仓库尚未发布正式 Release,检查结果会显示「暂无可用 Release,无法判断是否有更新」。
开发
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
源码位于 src/,构建结果输出到 lib/。lib/ 不提交到版本库,安装或发布时由 prepare 脚本生成。
Harness + MiniMax 中国站验收
使用隔离的 DSH_HOME 部署本地插件时,需要先为 Harness 注册模型提供方;否则 Web 首次引导无法创建会话,也无法触发 anime_find_search 和 ToolView。密钥只通过环境变量传入,不要写入仓库或 settings.yaml:
export MINIMAX_KEY_CN='...'
export DSH_HOME="$(mktemp -d)"
mkdir -p "$DSH_HOME"
cat >"$DSH_HOME/settings.yaml" <<'EOF'
llm-pi-ai:
providers:
minimax-cn:
apiKeyEnv: MINIMAX_KEY_CN
api: openai-completions
baseURL: https://api.minimaxi.com/v1
models:
- id: MiniMax-M3
EOF
npx @deepseek-ai/dsh web
随后在 设置 → 模型 选择 minimax-cn / MiniMax-M3,并从另一个终端安装本地插件:
DSH_HOME="$DSH_HOME" npx @deepseek-ai/dsh plugin --profile web add /absolute/path/to/anime-find
在新会话中请求搜番,确认工具视图的「流媒体」Tab、可播源卡片、选集和播放器路径。该配置仅用于验收;流媒体规则和任何第三方站点授权仍须由测试者自行提供。
故障排查
- 页面停在 Loading plugins:确认
pnpm build成功,重启dsh web后强制刷新 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED:改用 npm 安装dsh plugin --profile web add @cocofhu/anime-find,不要走 git 源或旧包名anime-find- loader 报
requires options.id或requires options.key:settings.plugin.item在部分 Harness 版本是 list slot(要id),在 rc7 起是 keyed slot(要key)。客户端必须同时注册id和key;Host 通过installSettingsSection登记anime-find命名空间后才会分发配置卡 - 搜番卡片未出现:开启新对话,并确认
anime_find_search已加载 - 本季结果较少:提高结果上限,或在设置中启用 AniBT / AnimeGarden
- 来源请求失败:检查网络与对应站点地址;单个来源失败不会阻止其他来源返回结果
参与贡献
提交 Issue 或 Pull Request 前请阅读 CONTRIBUTING.md。安全问题请按 SECURITY.md 私下报告。
许可证
收录徽章
[](https://deepseek-plugin.org/plugins/cocofhu/anime-find)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。