dsh-shlr-bilitoolkit 0.1.28 → 0.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/README.md +1 -1
- package/dist/dsh.js +5 -3
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
除常驻工具(bili_gen_qr / bili_login_status / bili_recommend / bili_video_detail / bili_search / bili_open)外,其它 B 站能力默认**懒加载**:
|
|
10
10
|
1. 先调 `bili_open()`(不带参数)看有哪些分组、每组含哪些工具;
|
|
11
11
|
2. 再 `bili_open({ group: "comment" })` 或直接 `bili_open({ tool: "bili_comment_list" })` 打开;
|
|
12
|
-
3.
|
|
12
|
+
3. **下一轮起**该组工具才可调用。同时最多保留 3 组,超出会关掉最久没用的——顺序使用不同领域时不受影响,只有频繁在 4+ 个领域间往返才需要重新开组。
|
|
13
13
|
|
|
14
14
|
## 多步查询走 run_code(省 token)
|
|
15
15
|
需要多个 B 站数据时(如「视频详情 + 热评 + UP主资料」),写进 `run_code` 一段代码里完成,不要连续调用多个工具:
|
package/README.md
CHANGED
|
@@ -80,7 +80,7 @@ const [ups, _] = await client.space.videos(574115689, 1, 10);
|
|
|
80
80
|
- **数据目录**:Cookie / 缓存 / 二维码 / 设备号统一放在一个目录里,默认 `bili_data/`(相对 dsh 工作目录),避免散落污染工作目录。可用 `BILI_DATA_DIR` 改目录;`BILI_COOKIE_FILE` / `BILI_CACHE_FILE` / `BILI_QR_FILE` / `BILI_DEVICE_FILE` 可精确指定单个文件。设备号(私信 `dev_id`)会落盘到 `bili_data/bili_device.json`,跨重启保持稳定,避免被 B 站当成新设备触发风控。兼容旧版:若新目录还没有 Cookie、而旧位置(`./bili_cookies.json`)有,会继续沿用旧的。
|
|
81
81
|
- **扫码登录(独立获取 Cookie)**:运行 `npm run login`,终端会打印 ASCII 二维码,用「哔哩哔哩」App 扫码并确认后,Cookie 自动写入 `bili_data/bili_cookies.json`。也可在对话里先调 `bili_login_status` 查登录态、调 `bili_gen_qr` 拿二维码链接与可直接展示的 `ascii` 二维码。写操作(点赞 / 收藏 / 投币 / 关注 / 评论 / 私信 / 三连)都依赖该 Cookie 中的 `SESSDATA` / `bili_jct`。
|
|
82
82
|
- **缓存持久化**:除 Cookie 外,客户端还会把 WBI 签名密钥(`B 站每天轮换`)、`bvid→aid` 映射这类稳定 / 带 TTL 的数据写入本地 JSON 缓存(`BILI_CACHE_FILE`,默认 `bili_data/bili_cache.json`),用临时文件 + 原子替换落盘、文件损坏会自动自愈。冷启动或跨进程时直接复用,避免每次都请求 `nav` 接口;密钥过期或失效时 `refresh()` 会重新拉取并覆盖缓存。若签名反复报 `-403/-352`,可调用 `bili_cache_clear` 强制清空缓存后重试(不影响 Cookie / 登录态)。
|
|
83
|
-
- **计费 / 缓存与懒加载**:默认**按需加载(懒加载)**——49 个工具 schema 约 5200 token,常驻太占上下文窗口;默认只注册「常驻核心 + `bili_open`」约 700 token,其余 `bili_open({ group })`
|
|
83
|
+
- **计费 / 缓存与懒加载**:默认**按需加载(懒加载)**——49 个工具 schema 约 5200 token,常驻太占上下文窗口;默认只注册「常驻核心 + `bili_open`」约 700 token,其余 `bili_open({ group })` 按需开组(下一轮生效)。同时最多保留 **3 组**(LRU,超出关掉最久未用的)——前缀被压在「核心 + 3 组」约 1800 token 以内;顺序使用不同领域时 LRU 自然轮换、不产生额外开销。`BILI_LAZY=0` 退回全量注册(前缀稳定、命中最大化,适合不在意窗口);`BILI_LAZY_EVICT=0` 可改成完全不淘汰;`BILI_LAZY_EVICT_MAX` 可调组数上限(默认 3)。列表类工具默认**精简返回**(`full=true` 取全量)。
|
|
84
84
|
|
|
85
85
|
> **给 Agent 的约定**:仓库根目录的 [`AGENTS.md`](./AGENTS.md) 写明了登录流程——需要登录时必须调用 `bili_gen_qr` 并把二维码**图片**展示给用户,而不是只给链接或 ASCII。把这份 `AGENTS.md` 放到 dsh 的工作目录(或确保你的 dsh 会读取它),agent 就会按约定输出登录二维码。
|
|
86
86
|
|
package/dist/dsh.js
CHANGED
|
@@ -1139,10 +1139,12 @@ export const TOOLS = [
|
|
|
1139
1139
|
let toolsRegistry = null;
|
|
1140
1140
|
const openGroups = new Map();
|
|
1141
1141
|
const groupLru = [];
|
|
1142
|
-
//
|
|
1143
|
-
//
|
|
1142
|
+
// 同时最多保留几组,超出关掉最久未用的(LRU)。默认 3:
|
|
1143
|
+
// 单个任务通常只用到 1-2 个能力领域;顺序做完一个再开下一个时 LRU 自然轮换,不会横跳。
|
|
1144
|
+
// 只有真的在 4+ 个领域间快速往返才会触发淘汰(代价=重新 bili_open,+1 轮)。
|
|
1145
|
+
// 想完全不淘汰设 BILI_LAZY_EVICT=0,想更宽设 BILI_LAZY_EVICT_MAX。
|
|
1144
1146
|
const MAX_OPEN_GROUPS = Number(process.env.BILI_LAZY_EVICT_MAX ?? 3) || 3;
|
|
1145
|
-
const EVICT_GROUPS = process.env.BILI_LAZY_EVICT
|
|
1147
|
+
const EVICT_GROUPS = process.env.BILI_LAZY_EVICT !== "0" && process.env.BILI_LAZY_EVICT !== "false";
|
|
1146
1148
|
// 常驻核心:登录链路必须随时可用 + 最常用的几个读取
|
|
1147
1149
|
export const CORE_IDS = [
|
|
1148
1150
|
"bili_gen_qr",
|