@qlingzzy/qling 1.0.0 → 1.1.0
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/CHANGELOG.md +154 -0
- package/README.en.md +82 -17
- package/README.md +15 -7
- package/dist/agent/main-loop.d.ts +120 -0
- package/dist/agent/main-loop.d.ts.map +1 -0
- package/dist/agent/main-loop.js +279 -0
- package/dist/agent/subtask-parallel.d.ts +29 -0
- package/dist/agent/subtask-parallel.d.ts.map +1 -0
- package/dist/agent/subtask-parallel.js +107 -0
- package/dist/agent/subtask.d.ts +13 -0
- package/dist/agent/subtask.d.ts.map +1 -1
- package/dist/agent/subtask.js +79 -24
- package/dist/agent/system-prompt.d.ts +39 -0
- package/dist/agent/system-prompt.d.ts.map +1 -0
- package/dist/agent/system-prompt.js +89 -0
- package/dist/agent/tool-orchestrator.d.ts +66 -0
- package/dist/agent/tool-orchestrator.d.ts.map +1 -0
- package/dist/agent/tool-orchestrator.js +355 -0
- package/dist/agent-loop.d.ts +29 -16
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +262 -807
- package/dist/agents/roles.d.ts +57 -0
- package/dist/agents/roles.d.ts.map +1 -0
- package/dist/agents/roles.js +198 -0
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +17 -3
- package/dist/commands/claude-style.d.ts.map +1 -1
- package/dist/commands/claude-style.js +19 -10
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +3 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +6 -0
- package/dist/commands/mode.d.ts +16 -0
- package/dist/commands/mode.d.ts.map +1 -0
- package/dist/commands/mode.js +67 -0
- package/dist/commands/recover.d.ts +3 -0
- package/dist/commands/recover.d.ts.map +1 -0
- package/dist/commands/recover.js +69 -0
- package/dist/commands/runtime.d.ts +2 -0
- package/dist/commands/runtime.d.ts.map +1 -1
- package/dist/commands/runtime.js +2 -0
- package/dist/commands/trace.d.ts +3 -0
- package/dist/commands/trace.d.ts.map +1 -0
- package/dist/commands/trace.js +45 -0
- package/dist/commands/verify.js +2 -2
- package/dist/config-report.d.ts +0 -1
- package/dist/config-report.d.ts.map +1 -1
- package/dist/config-report.js +1 -2
- package/dist/config.d.ts +0 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -1
- package/dist/context-report.d.ts +13 -7
- package/dist/context-report.d.ts.map +1 -1
- package/dist/context-report.js +64 -61
- package/dist/context-tool-hygiene.d.ts +36 -0
- package/dist/context-tool-hygiene.d.ts.map +1 -0
- package/dist/context-tool-hygiene.js +125 -0
- package/dist/dashboard/client.d.ts +2 -0
- package/dist/dashboard/client.d.ts.map +1 -0
- package/dist/dashboard/client.js +305 -0
- package/dist/dashboard/model.d.ts +13 -0
- package/dist/dashboard/model.d.ts.map +1 -0
- package/dist/dashboard/model.js +112 -0
- package/dist/dashboard/page.d.ts +3 -0
- package/dist/dashboard/page.d.ts.map +1 -0
- package/dist/dashboard/page.js +204 -0
- package/dist/dashboard/types.d.ts +63 -0
- package/dist/dashboard/types.d.ts.map +1 -0
- package/dist/dashboard/types.js +1 -0
- package/dist/dashboard-server.d.ts +24 -4
- package/dist/dashboard-server.d.ts.map +1 -1
- package/dist/dashboard-server.js +397 -302
- package/dist/discovery-registry.d.ts +17 -3
- package/dist/discovery-registry.d.ts.map +1 -1
- package/dist/discovery-registry.js +78 -3
- package/dist/doctor.d.ts +8 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +116 -0
- package/dist/eval/llm-tasks.d.ts +5 -0
- package/dist/eval/llm-tasks.d.ts.map +1 -0
- package/dist/eval/llm-tasks.js +125 -0
- package/dist/eval/repo-tasks.d.ts +12 -0
- package/dist/eval/repo-tasks.d.ts.map +1 -0
- package/dist/eval/repo-tasks.js +220 -0
- package/dist/eval/runner.d.ts +3 -1
- package/dist/eval/runner.d.ts.map +1 -1
- package/dist/eval/runner.js +23 -4
- package/dist/eval/tasks.d.ts.map +1 -1
- package/dist/eval/tasks.js +186 -0
- package/dist/eval/types.d.ts +8 -5
- package/dist/eval/types.d.ts.map +1 -1
- package/dist/execution/event-bus.d.ts +44 -0
- package/dist/execution/event-bus.d.ts.map +1 -0
- package/dist/execution/event-bus.js +76 -0
- package/dist/execution/failure-classifier.d.ts +11 -0
- package/dist/execution/failure-classifier.d.ts.map +1 -0
- package/dist/execution/failure-classifier.js +66 -0
- package/dist/execution/progress-detector.d.ts +3 -0
- package/dist/execution/progress-detector.d.ts.map +1 -0
- package/dist/execution/progress-detector.js +23 -0
- package/dist/execution/recovery-controller.d.ts +24 -0
- package/dist/execution/recovery-controller.d.ts.map +1 -0
- package/dist/execution/recovery-controller.js +114 -0
- package/dist/execution/recovery-messages.d.ts +24 -0
- package/dist/execution/recovery-messages.d.ts.map +1 -0
- package/dist/execution/recovery-messages.js +48 -0
- package/dist/execution/recovery-metrics.d.ts +16 -0
- package/dist/execution/recovery-metrics.d.ts.map +1 -0
- package/dist/execution/recovery-metrics.js +73 -0
- package/dist/execution/recovery-strategy-planner.d.ts +6 -0
- package/dist/execution/recovery-strategy-planner.d.ts.map +1 -0
- package/dist/execution/recovery-strategy-planner.js +24 -0
- package/dist/execution/run-trace-store.d.ts +29 -0
- package/dist/execution/run-trace-store.d.ts.map +1 -0
- package/dist/execution/run-trace-store.js +140 -0
- package/dist/execution/staged-verifier.d.ts +33 -0
- package/dist/execution/staged-verifier.d.ts.map +1 -0
- package/dist/execution/staged-verifier.js +39 -0
- package/dist/execution/types.d.ts +58 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +1 -0
- package/dist/execution/verification-loop.d.ts +58 -0
- package/dist/execution/verification-loop.d.ts.map +1 -0
- package/dist/execution/verification-loop.js +195 -0
- package/dist/execution/verification-stages.d.ts +17 -0
- package/dist/execution/verification-stages.d.ts.map +1 -0
- package/dist/execution/verification-stages.js +102 -0
- package/dist/help-topics.d.ts.map +1 -1
- package/dist/help-topics.js +11 -0
- package/dist/index.js +0 -8
- package/dist/lsp/ts-service.d.ts +36 -0
- package/dist/lsp/ts-service.d.ts.map +1 -0
- package/dist/lsp/ts-service.js +291 -0
- package/dist/memory/lifecycle.d.ts +19 -0
- package/dist/memory/lifecycle.d.ts.map +1 -0
- package/dist/memory/lifecycle.js +53 -0
- package/dist/memory.d.ts +0 -16
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +0 -36
- package/dist/metrics/collector.d.ts +7 -0
- package/dist/metrics/collector.d.ts.map +1 -1
- package/dist/metrics/collector.js +60 -0
- package/dist/mission/manager.d.ts +1 -0
- package/dist/mission/manager.d.ts.map +1 -1
- package/dist/mission/manager.js +9 -0
- package/dist/mission/progress-notify.d.ts +39 -0
- package/dist/mission/progress-notify.d.ts.map +1 -0
- package/dist/mission/progress-notify.js +386 -0
- package/dist/pipeline/hooks.d.ts +1 -1
- package/dist/pipeline/hooks.d.ts.map +1 -1
- package/dist/pipeline/hooks.js +1 -0
- package/dist/pipeline/sections.d.ts +8 -4
- package/dist/pipeline/sections.d.ts.map +1 -1
- package/dist/pipeline/sections.js +70 -27
- package/dist/pipeline/verification.d.ts +1 -0
- package/dist/pipeline/verification.d.ts.map +1 -1
- package/dist/pipeline/verification.js +10 -7
- package/dist/providers/llm-client.d.ts +38 -0
- package/dist/providers/llm-client.d.ts.map +1 -0
- package/dist/providers/llm-client.js +105 -0
- package/dist/sdk.d.ts +1 -0
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +1 -0
- package/dist/session/durable-session-supervisor.d.ts.map +1 -1
- package/dist/session/durable-session-supervisor.js +13 -6
- package/dist/session/session-persistence.d.ts +29 -0
- package/dist/session/session-persistence.d.ts.map +1 -0
- package/dist/session/session-persistence.js +45 -0
- package/dist/session/session-scheduler.d.ts +8 -1
- package/dist/session/session-scheduler.d.ts.map +1 -1
- package/dist/session/session-scheduler.js +33 -4
- package/dist/session-task-report.d.ts +1 -0
- package/dist/session-task-report.d.ts.map +1 -1
- package/dist/session-task-report.js +2 -1
- package/dist/shortcuts.d.ts.map +1 -1
- package/dist/shortcuts.js +1 -0
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +10 -0
- package/dist/skills/security-scan.d.ts +15 -0
- package/dist/skills/security-scan.d.ts.map +1 -0
- package/dist/skills/security-scan.js +95 -0
- package/dist/skills/types.d.ts +2 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/statusline.d.ts +3 -3
- package/dist/statusline.d.ts.map +1 -1
- package/dist/statusline.js +9 -17
- package/dist/token-usage.d.ts +27 -0
- package/dist/token-usage.d.ts.map +1 -0
- package/dist/token-usage.js +107 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +5 -3
- package/dist/tools/browser-act-session.d.ts +48 -0
- package/dist/tools/browser-act-session.d.ts.map +1 -0
- package/dist/tools/browser-act-session.js +168 -0
- package/dist/tools/browser-act.d.ts +14 -0
- package/dist/tools/browser-act.d.ts.map +1 -0
- package/dist/tools/browser-act.js +297 -0
- package/dist/tools/code-symbols.d.ts +35 -0
- package/dist/tools/code-symbols.d.ts.map +1 -0
- package/dist/tools/code-symbols.js +257 -0
- package/dist/tools/index.d.ts +4 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +22 -2
- package/dist/tools/lsp.d.ts +13 -0
- package/dist/tools/lsp.d.ts.map +1 -0
- package/dist/tools/lsp.js +136 -0
- package/dist/tools/patch.d.ts +5 -0
- package/dist/tools/patch.d.ts.map +1 -1
- package/dist/tools/patch.js +25 -4
- package/dist/tools/search.d.ts +7 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +20 -3
- package/dist/tools/skill.d.ts +2 -0
- package/dist/tools/skill.d.ts.map +1 -1
- package/dist/tools/skill.js +47 -14
- package/dist/tools/subtask.d.ts +3 -1
- package/dist/tools/subtask.d.ts.map +1 -1
- package/dist/tools/subtask.js +151 -56
- package/dist/tui/shell.d.ts +12 -0
- package/dist/tui/shell.d.ts.map +1 -1
- package/dist/tui/shell.js +36 -3
- package/dist/tui/streaming-repl.d.ts +1 -0
- package/dist/tui/streaming-repl.d.ts.map +1 -1
- package/dist/tui/streaming-repl.js +27 -4
- package/dist/tui/streaming-tui.d.ts +10 -0
- package/dist/tui/streaming-tui.d.ts.map +1 -1
- package/dist/tui/streaming-tui.js +70 -12
- package/dist/types.d.ts +0 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow-runtime.d.ts.map +1 -1
- package/dist/workflow-runtime.js +10 -2
- package/dist/workflow-types.d.ts +2 -0
- package/dist/workflow-types.d.ts.map +1 -1
- package/docs/install.md +29 -8
- package/docs/skills.md +56 -7
- package/docs/web-routing.md +83 -0
- package/package.json +18 -4
- package/scripts/dep-layers.mjs +275 -0
- package/scripts/eval-llm.mjs +27 -0
- package/scripts/eval-recovery.mjs +101 -0
- package/scripts/eval-tasks.mjs +20 -0
- package/scripts/validate-packaging.mjs +51 -0
- package/skills/examples/README.md +23 -0
- package/skills/examples/add-function/SKILL.md +31 -0
- package/skills/examples/fix-failing-test/SKILL.md +32 -0
- package/skills/examples/pr-summary/SKILL.md +34 -0
- package/skills/lifecycle-build/SKILL.md +22 -0
- package/skills/lifecycle-plan/SKILL.md +32 -0
- package/skills/lifecycle-review/SKILL.md +25 -0
- package/skills/lifecycle-ship/SKILL.md +22 -0
- package/skills/lifecycle-spec/SKILL.md +24 -0
- package/skills/lifecycle-test/SKILL.md +21 -0
- package/skills/opencli/SKILL.md +222 -0
- package/skills/qling.md +14 -3
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lifecycle-ship
|
|
3
|
+
description: 发布就绪:版本、CHANGELOG、文档、回滚。触发:准备发版、npm publish、上线。
|
|
4
|
+
tags: [lifecycle, ship, release]
|
|
5
|
+
triggers: [发布, ship, 发版, /ship]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 生命周期 · 发布(Ship)
|
|
9
|
+
|
|
10
|
+
## 清单
|
|
11
|
+
|
|
12
|
+
1. **验证绿**:build / 相关测试 / eval:smoke。
|
|
13
|
+
2. **CHANGELOG**:用户可见变更用完整句子。
|
|
14
|
+
3. **版本**:与 package.json / 可见 badge 一致。
|
|
15
|
+
4. **文档**:README / skills / install 是否需更新链接。
|
|
16
|
+
5. **回滚**:如何退回上一版本或关闭新 env 开关。
|
|
17
|
+
6. **密钥**:无明文 key 进入仓库。
|
|
18
|
+
|
|
19
|
+
## 不要
|
|
20
|
+
|
|
21
|
+
- 不要在红测状态下声称可发布。
|
|
22
|
+
- 不要把实验性破坏变更伪装成 patch。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lifecycle-spec
|
|
3
|
+
description: 在写代码前把需求收敛成可验证规格(问题、用户、约束、验收)。触发:新功能、需求不清、要写 PRD。
|
|
4
|
+
tags: [lifecycle, spec, planning]
|
|
5
|
+
triggers: [规格, PRD, 需求, 定义问题, /spec]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 生命周期 · 规格(Spec)
|
|
9
|
+
|
|
10
|
+
在实现之前先冻结「做什么 / 不做什么」。
|
|
11
|
+
|
|
12
|
+
## 步骤
|
|
13
|
+
|
|
14
|
+
1. **问题一句话**:用户痛点与当前失败表现。
|
|
15
|
+
2. **目标用户与场景**:谁、何时、在哪用。
|
|
16
|
+
3. **范围内 / 范围外**:明确本轮不做。
|
|
17
|
+
4. **验收标准**:3–7 条可观察条件(Given/When/Then 或 checklist)。
|
|
18
|
+
5. **风险与依赖**:权限、数据、外部 API、Windows 差异。
|
|
19
|
+
6. **输出**:用 Markdown 写 `## Spec` 小节,请用户确认后再进入 plan。
|
|
20
|
+
|
|
21
|
+
## 不要
|
|
22
|
+
|
|
23
|
+
- 不要在规格未确认时直接 `write`/`patch`。
|
|
24
|
+
- 不要假装已理解模糊需求;缺信息就列问题清单。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lifecycle-test
|
|
3
|
+
description: 用测试证明行为正确:单元优先,必要时 smoke。触发:要加测试、修 bug、验收。
|
|
4
|
+
tags: [lifecycle, test, tdd]
|
|
5
|
+
triggers: [测试, TDD, 单测, /test]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 生命周期 · 测试(Test)
|
|
9
|
+
|
|
10
|
+
## 步骤
|
|
11
|
+
|
|
12
|
+
1. 明确被测行为与失败表现。
|
|
13
|
+
2. **先写/补失败用例**(RED),再实现到绿(GREEN)。
|
|
14
|
+
3. 覆盖边界:空输入、权限拒绝、Windows 路径。
|
|
15
|
+
4. 运行项目约定命令(如 `node --test`、`npm run eval:smoke`)。
|
|
16
|
+
5. 报告:通过数 / 失败 / 未覆盖风险。
|
|
17
|
+
|
|
18
|
+
## 不要
|
|
19
|
+
|
|
20
|
+
- 不要只「手动点一下」就声称完成。
|
|
21
|
+
- 不要为了过测而删断言。
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opencli
|
|
3
|
+
description: >
|
|
4
|
+
正确调用本机 opencli 获取网页/社交平台数据。触发:opencli、抖音、douyin、小红书、
|
|
5
|
+
微博、B站、bilibili、TikTok、推特/twitter/X、知乎、豆瓣、boss、登录抓取、反爬、
|
|
6
|
+
_$jsvmprt、acrawler、挑战页、评论点赞播放量。此时必须加载本 skill 并用 bash 执行
|
|
7
|
+
opencli,禁止 url_fetch 强反爬站,禁止用 opencli tiktok 操作抖音。
|
|
8
|
+
tags: [opencli, web, social, douyin, xiaohongshu, weibo, bilibili, tiktok, twitter]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# opencli 调用手册(轻灵 Agent)
|
|
12
|
+
|
|
13
|
+
本机 CLI:`opencli`(Universal CLI Hub)。通过 **bash 工具**执行,输出优先 **`-f json`**。
|
|
14
|
+
|
|
15
|
+
## 0. 硬规则(先读)
|
|
16
|
+
|
|
17
|
+
1. **强反爬 / 需登录的平台数据 → 只用 opencli 站点命令**,不要用 `url_fetch` / 裸 `curl`。
|
|
18
|
+
2. **抖音 ≠ TikTok**
|
|
19
|
+
- `douyin.com` / 国内抖音 → `opencli douyin …`
|
|
20
|
+
- `tiktok.com` 国际版 → `opencli tiktok …`
|
|
21
|
+
3. 不确定有没有命令时:**先发现再调用**(见 §1),禁止臆造子命令。
|
|
22
|
+
4. 返回 HTML 含 `_$jsvmprt` / `acrawler` / `window.location.reload` → 这是**反爬挑战页**,不是业务数据;应改用对应 `opencli <site>` 适配器,并检查登录。
|
|
23
|
+
5. 轻灵 `browser_fetch` 适合文档站,**不保证**能过抖音风控;平台数据优先 opencli。
|
|
24
|
+
|
|
25
|
+
## 1. 发现命令(必做习惯)
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
opencli list -f json
|
|
29
|
+
opencli <site> --help
|
|
30
|
+
opencli <site> <command> --help
|
|
31
|
+
opencli doctor
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- `list`:发现站点与命令。
|
|
35
|
+
- `--help`:参数与读写标签。
|
|
36
|
+
- `doctor`:Daemon / Chrome 扩展是否连通。
|
|
37
|
+
|
|
38
|
+
Agent tip:`opencli <site> --help -f yaml` 可拿结构化参数说明。
|
|
39
|
+
|
|
40
|
+
## 2. 标准调用形态
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
opencli <site> <command> [args] [options] -f json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
常用选项:
|
|
47
|
+
|
|
48
|
+
| 选项 | 说明 |
|
|
49
|
+
|------|------|
|
|
50
|
+
| `-f json` | **默认用这个**,便于解析 |
|
|
51
|
+
| `-v` | 调试 |
|
|
52
|
+
| `--window foreground\|background` | 浏览器窗口 |
|
|
53
|
+
| `--site-session ephemeral\|persistent` | 会话生命周期 |
|
|
54
|
+
|
|
55
|
+
需要**用户已登录的 Chrome**(扩展已连接)时,先 `opencli doctor`;登录:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
opencli <site> login
|
|
59
|
+
opencli <site> whoami -f json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 3. 站点路由速查
|
|
63
|
+
|
|
64
|
+
| 用户意图 / URL | 正确入口 | 错误入口 |
|
|
65
|
+
|----------------|----------|----------|
|
|
66
|
+
| 抖音 / douyin.com | `opencli douyin` | `opencli tiktok`、`url_fetch` |
|
|
67
|
+
| TikTok 国际 | `opencli tiktok` | `opencli douyin` |
|
|
68
|
+
| 小红书 / xhslink / rednote | **优先** `opencli xiaohongshu`(也有 `opencli rednote` 英文别名) | `url_fetch`、只传裸 note-id |
|
|
69
|
+
| 微博 | `opencli weibo` | 裸抓 HTML |
|
|
70
|
+
| B 站 | `opencli bilibili`(以 list 为准) | 裸抓 HTML |
|
|
71
|
+
| 推特 / X | `opencli twitter` | 裸抓 HTML |
|
|
72
|
+
| 通用打开页面 | `opencli browser <session> open <url>` | 臆造 `browser open` 缺 session |
|
|
73
|
+
|
|
74
|
+
> 站点名以 `opencli list` 为准;上表为常见路由,未列出时以 list 为准。
|
|
75
|
+
|
|
76
|
+
## 4. 抖音(douyin)推荐流程
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 登录态
|
|
80
|
+
opencli douyin whoami -f json
|
|
81
|
+
# 未登录
|
|
82
|
+
opencli douyin login
|
|
83
|
+
|
|
84
|
+
# 搜索
|
|
85
|
+
opencli douyin search "关键词" -f json
|
|
86
|
+
|
|
87
|
+
# 作品列表 / 统计(有 aweme_id 时)
|
|
88
|
+
opencli douyin videos -f json
|
|
89
|
+
opencli douyin stats <aweme_id> -f json
|
|
90
|
+
|
|
91
|
+
# 用户视频(有 sec_uid 时)
|
|
92
|
+
opencli douyin user-videos <sec_uid> -f json
|
|
93
|
+
|
|
94
|
+
# 账号信息
|
|
95
|
+
opencli douyin profile -f json
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
常见子命令:`activities` `collections` `delete` `draft` `drafts` `hashtag` `location` `login` `profile` `publish` `search` `stats` `update` `user-videos` `videos` `whoami`。
|
|
99
|
+
|
|
100
|
+
写操作(delete/publish/update/draft)**先征得用户确认**。
|
|
101
|
+
|
|
102
|
+
## 4b. 小红书(xiaohongshu)— 高频失败点
|
|
103
|
+
|
|
104
|
+
### 本机前置
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
opencli doctor
|
|
108
|
+
opencli xiaohongshu whoami -f json # logged_in 应为 true
|
|
109
|
+
# 未登录:
|
|
110
|
+
opencli xiaohongshu login
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 正确命令(优先 xiaohongshu,不要用 url_fetch)
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# 搜索笔记(返回 title/author/likes/url;url 通常已带 xsec_token)
|
|
117
|
+
opencli xiaohongshu search "关键词" --limit 10 -f json
|
|
118
|
+
|
|
119
|
+
# 首页 Feed
|
|
120
|
+
opencli xiaohongshu feed --limit 10 -f json
|
|
121
|
+
|
|
122
|
+
# 笔记正文 + 点赞收藏评论(必须传「完整签名 URL」)
|
|
123
|
+
opencli xiaohongshu note "<完整笔记URL含xsec_token>" -f json
|
|
124
|
+
|
|
125
|
+
# 评论(同样要求完整签名 URL)
|
|
126
|
+
opencli xiaohongshu comments "<完整笔记URL含xsec_token>" --limit 20 -f json
|
|
127
|
+
|
|
128
|
+
# 用户主页笔记
|
|
129
|
+
opencli xiaohongshu user "<userId或主页URL>" --limit 15 -f json
|
|
130
|
+
|
|
131
|
+
# 下载媒体(完整 URL 或 xhslink 短链)
|
|
132
|
+
opencli xiaohongshu download "<完整笔记URL或xhslink>" --output ./xiaohongshu-downloads -f json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
创作者中心(需创作者登录态):`creator-profile` `creator-stats` `creator-notes` `creator-note-detail` `creator-notes-summary`。
|
|
136
|
+
|
|
137
|
+
### ⚠️ 关键:note / comments 不能只传 note-id
|
|
138
|
+
|
|
139
|
+
官方参数说明:`note-id` 实为 **Full Xiaohongshu note URL with xsec_token**。
|
|
140
|
+
|
|
141
|
+
| 传参 | 结果 |
|
|
142
|
+
|------|------|
|
|
143
|
+
| 仅 `6a3b66c5…` 裸 id | ❌ 失败:`requires a full signed URL` / exitCode 2 |
|
|
144
|
+
| `https://www.xiaohongshu.com/explore/<id>?xsec_token=...` | ✅ |
|
|
145
|
+
| 从 `search` / `feed` / `user` 结果里复制的 `url` 字段 | ✅(优先用这个) |
|
|
146
|
+
|
|
147
|
+
**正确流程:**
|
|
148
|
+
|
|
149
|
+
1. `search` 或 `feed` 拿列表
|
|
150
|
+
2. 从结果 JSON 取 `url`(含 `xsec_token`)
|
|
151
|
+
3. 再 `note` / `comments` / `download` 用该完整 url
|
|
152
|
+
|
|
153
|
+
禁止:跳过 search、手编 explore 链接且不带 token;禁止 `url_fetch` 打开小红书页。
|
|
154
|
+
|
|
155
|
+
### 别名
|
|
156
|
+
|
|
157
|
+
- `opencli rednote …` 与小红书同源英文适配器(feed/search/note/comments 等),**优先统一用 `xiaohongshu`**,避免混用导致参数习惯不一致。
|
|
158
|
+
|
|
159
|
+
## 5. 通用 browser 会话(高级)
|
|
160
|
+
|
|
161
|
+
形态:`opencli browser <session> <command> …`
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 先绑定真实 Chrome 标签(扩展在线)
|
|
165
|
+
opencli browser mysess bind
|
|
166
|
+
opencli browser mysess open "https://example.com"
|
|
167
|
+
opencli browser mysess state -f json
|
|
168
|
+
opencli browser mysess eval "document.title"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
注意:
|
|
172
|
+
|
|
173
|
+
- **必须有 session 名**,不是 `opencli browser open url`。
|
|
174
|
+
- `eval` 参数是要执行的 JS;引号要按当前 shell 正确转义(Windows 用 `bash` 工具时走 cmd,注意转义)。
|
|
175
|
+
- 强反爬站点仍应优先站点适配器,而不是 browser+eval 硬抠。
|
|
176
|
+
|
|
177
|
+
## 6. 反模式(禁止)
|
|
178
|
+
|
|
179
|
+
| 反模式 | 原因 |
|
|
180
|
+
|--------|------|
|
|
181
|
+
| `url_fetch` 打开 douyin/xhs 分享链 | 返回挑战页 JS,无结构化数据 |
|
|
182
|
+
| `opencli tiktok` 处理 douyin.com | 错误站点 |
|
|
183
|
+
| 小红书 `note`/`comments` 只传裸 note-id | opencli 要求带 `xsec_token` 的完整 URL |
|
|
184
|
+
| 未 `list`/`--help` 就编造命令 | 易失败 |
|
|
185
|
+
| 把挑战页 HTML 当成功数据总结 | 误导用户 |
|
|
186
|
+
| 未确认就 `delete`/`publish` | 写操作风险 |
|
|
187
|
+
|
|
188
|
+
## 7. 失败诊断清单
|
|
189
|
+
|
|
190
|
+
1. `opencli doctor` — Daemon / Extension 是否 OK
|
|
191
|
+
2. `opencli <site> whoami -f json` — 是否登录
|
|
192
|
+
3. `opencli <site> --help` — 命令是否存在、参数是否正确
|
|
193
|
+
4. 若仍是反爬页 — 换站点适配器 API 命令,而不是加大 `url_fetch` 重试
|
|
194
|
+
|
|
195
|
+
## 8. 与轻灵其他工具的分工
|
|
196
|
+
|
|
197
|
+
| 工具 | 默认 | 用途 |
|
|
198
|
+
|------|------|------|
|
|
199
|
+
| **opencli**(via bash) | 本机 CLI | 平台结构化数据、登录会话、站点适配器 |
|
|
200
|
+
| **url_fetch** | 开 | 白名单内简单 HTTP API / 静态资源 |
|
|
201
|
+
| **browser_fetch** | 开 | 文档站等需 JS 渲染、弱反爬页面摘要 |
|
|
202
|
+
| **browser_act** | **关** | 有限点击/填表(`QLING_BROWSER_ACT=1`);强反爬仍用 opencli |
|
|
203
|
+
| **skill opencli** | — | 本手册(调用平台前加载) |
|
|
204
|
+
|
|
205
|
+
完整路由:包内 `docs/web-routing.md`。
|
|
206
|
+
|
|
207
|
+
## 9. 最短决策树
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
需要网页/平台数据?
|
|
211
|
+
├─ 是社交/内容平台(抖/红/微/B/推/TikTok…)
|
|
212
|
+
│ → skill name="opencli"
|
|
213
|
+
│ → opencli list / <site> --help
|
|
214
|
+
│ → whoami/login → 业务命令 -f json
|
|
215
|
+
├─ 是普通文档/API(无强反爬)
|
|
216
|
+
│ → url_fetch 或 browser_fetch
|
|
217
|
+
├─ 需要本机已登录浏览器交互
|
|
218
|
+
│ → opencli browser <session> …(推荐)
|
|
219
|
+
│ → 或 browser_act(须 QLING_BROWSER_ACT=1,同进程 session 跨步保活)
|
|
220
|
+
└─ 不确定
|
|
221
|
+
→ opencli doctor / list,不要盲目 url_fetch
|
|
222
|
+
```
|
package/skills/qling.md
CHANGED
|
@@ -5,6 +5,11 @@ description: 轻灵 Agent 自身使用指南
|
|
|
5
5
|
|
|
6
6
|
# 轻灵 Agent 使用指南
|
|
7
7
|
|
|
8
|
+
## 任务执行三条基本规则
|
|
9
|
+
1. **外部工具先关联分析**:调用 opencli/bash/url_fetch 等前,先判断工具与任务是否匹配、如何调用、期望输出是什么。
|
|
10
|
+
2. **成功后总结正确流程**:写清可复现步骤与关键命令,便于用户复用。
|
|
11
|
+
3. **失败实事求是**:单流程失败或结果不准时明确承认,附错误证据,不编造成功。
|
|
12
|
+
|
|
8
13
|
## 快速开始
|
|
9
14
|
```bash
|
|
10
15
|
cd C:/Users/Lenovo/projects/qling
|
|
@@ -14,16 +19,22 @@ node dist/index.js repl # 简易 REPL
|
|
|
14
19
|
```
|
|
15
20
|
|
|
16
21
|
## 工具列表
|
|
17
|
-
- **bash**: 执行 Shell 命令(支持 timeout、cwd
|
|
22
|
+
- **bash**: 执行 Shell 命令(支持 timeout、cwd 参数);调用本机 **opencli** 也走 bash
|
|
18
23
|
- **read**: 读取文件(path, offset, limit)
|
|
19
24
|
- **write**: 写入文件(path, content)— 注意:覆盖写入,非追加
|
|
20
25
|
- **search**: 搜索文件内容或文件名(pattern, file_glob, context, limit)
|
|
21
26
|
- **planner**: 生成任务执行计划(goal)
|
|
22
|
-
- **skill**:
|
|
27
|
+
- **skill**: 动态加载知识文件;平台数据前先 `skill name="opencli"`
|
|
23
28
|
- **todo**: 任务管理(action: list/add/done/cancel/remove/clear)
|
|
24
|
-
- **url_fetch**: 受 Guard
|
|
29
|
+
- **url_fetch**: 受 Guard 约束的结构化网络请求;**不要**用来抓抖音等强反爬站
|
|
30
|
+
- **browser_fetch**: JS 渲染文档页;不保证过抖音风控
|
|
25
31
|
- **subtask**: 隔离子任务执行(独立上下文,共享记忆,深度=1)
|
|
26
32
|
|
|
33
|
+
## opencli(本机 CLI Hub)
|
|
34
|
+
- 先 `skill name="opencli"` 读手册,再 `bash` 执行命令
|
|
35
|
+
- 抖音:`opencli douyin … -f json`(禁止 `opencli tiktok` 操作抖音)
|
|
36
|
+
- 发现:`opencli list -f json` / `opencli <site> --help` / `opencli doctor`
|
|
37
|
+
|
|
27
38
|
## CLI 模式
|
|
28
39
|
- `run <task>` — 一次性执行任务后退出
|
|
29
40
|
- `chat` — 流式 TUI 模式(默认,无参数时进入)
|