diff --git a/skills/.usage.json b/skills/.usage.json index a430d048..4f7305ba 100644 --- a/skills/.usage.json +++ b/skills/.usage.json @@ -66,6 +66,21 @@ "use_count": 79, "view_count": 79 }, + "ai-side-business": { + "archived_at": null, + "created_at": "2026-08-14T16:22:30.391146+00:00", + "created_by": null, + "last_patched_at": null, + "last_reused_patch_generation": 0, + "last_used_at": null, + "last_viewed_at": null, + "patch_count": 0, + "patch_generation": 0, + "pinned": false, + "state": "active", + "use_count": 0, + "view_count": 0 + }, "airtable": { "archived_at": null, "created_at": "2026-06-30T11:24:39.421506+00:00", @@ -414,16 +429,16 @@ "archived_at": null, "created_at": "2026-08-09T12:25:17.949527+00:00", "created_by": "agent", - "last_patched_at": "2026-08-09T16:30:41.198121+00:00", - "last_reused_patch_generation": 0, - "last_used_at": "2026-08-09T12:51:42.989881+00:00", - "last_viewed_at": "2026-08-09T12:51:42.986251+00:00", - "patch_count": 6, - "patch_generation": 6, + "last_patched_at": "2026-08-14T04:47:52.510401+00:00", + "last_reused_patch_generation": 9, + "last_used_at": "2026-08-14T04:47:35.506295+00:00", + "last_viewed_at": "2026-08-14T04:47:35.502738+00:00", + "patch_count": 12, + "patch_generation": 12, "pinned": false, "state": "active", - "use_count": 2, - "view_count": 2 + "use_count": 5, + "view_count": 5 }, "code-intelligence": { "archived_at": null, @@ -572,6 +587,21 @@ "use_count": 9, "view_count": 9 }, + "deepseek-harness-research": { + "archived_at": null, + "created_at": "2026-08-14T02:10:23.786855+00:00", + "created_by": null, + "last_patched_at": "2026-08-14T02:37:22.703101+00:00", + "last_reused_patch_generation": 0, + "last_used_at": null, + "last_viewed_at": null, + "patch_count": 1, + "patch_generation": 1, + "pinned": false, + "state": "active", + "use_count": 0, + "view_count": 0 + }, "design-feasibility-review": { "archived_at": null, "created_at": "2026-05-23T18:21:33.829011+00:00", @@ -967,16 +997,16 @@ "archived_at": null, "created_at": "2026-08-01T11:50:01.274771+00:00", "created_by": "agent", - "last_patched_at": "2026-08-12T05:13:56.761229+00:00", - "last_reused_patch_generation": 7, - "last_used_at": "2026-08-12T05:13:07.353732+00:00", - "last_viewed_at": "2026-08-12T05:13:07.346045+00:00", - "patch_count": 22, - "patch_generation": 8, + "last_patched_at": "2026-08-14T01:11:43.864562+00:00", + "last_reused_patch_generation": 9, + "last_used_at": "2026-08-14T01:11:40.133454+00:00", + "last_viewed_at": "2026-08-14T01:11:40.122206+00:00", + "patch_count": 24, + "patch_generation": 10, "pinned": false, "state": "active", - "use_count": 25, - "view_count": 25 + "use_count": 26, + "view_count": 26 }, "github-repo-management": { "archived_at": null, @@ -1077,14 +1107,14 @@ "created_by": null, "last_patched_at": null, "last_reused_patch_generation": 0, - "last_used_at": "2026-08-13T14:02:41.412923+00:00", - "last_viewed_at": "2026-08-13T14:02:41.403502+00:00", + "last_used_at": "2026-08-14T14:01:22.621616+00:00", + "last_viewed_at": "2026-08-14T14:01:22.618001+00:00", "patch_count": 0, "patch_generation": 0, "pinned": false, "state": "active", - "use_count": 18, - "view_count": 18 + "use_count": 19, + "view_count": 19 }, "hermes-agent-skill-authoring": { "archived_at": null, @@ -1983,15 +2013,15 @@ "created_at": "2026-07-08T18:13:02.034240+00:00", "created_by": "agent", "last_patched_at": "2026-08-12T10:51:26.697091+00:00", - "last_reused_patch_generation": 20, - "last_used_at": "2026-08-12T10:51:22.102316+00:00", - "last_viewed_at": "2026-08-12T10:51:22.093273+00:00", + "last_reused_patch_generation": 21, + "last_used_at": "2026-08-14T01:11:46.559280+00:00", + "last_viewed_at": "2026-08-14T01:11:46.551313+00:00", "patch_count": 224, "patch_generation": 21, "pinned": false, "state": "active", - "use_count": 170, - "view_count": 170 + "use_count": 172, + "view_count": 172 }, "self-hosted-tunneling": { "archived_at": null, @@ -2323,14 +2353,14 @@ "created_by": null, "last_patched_at": "2026-08-11T17:37:23.001866+00:00", "last_reused_patch_generation": 1, - "last_used_at": "2026-08-12T10:49:56.493148+00:00", - "last_viewed_at": "2026-08-12T10:49:56.489581+00:00", + "last_used_at": "2026-08-14T01:11:07.374617+00:00", + "last_viewed_at": "2026-08-14T01:11:07.363971+00:00", "patch_count": 24, "patch_generation": 1, "pinned": false, "state": "active", - "use_count": 23, - "view_count": 23 + "use_count": 24, + "view_count": 24 }, "website-ux-audit": { "archived_at": null, diff --git a/skills/devops/cnb-codebuddy-npc/SKILL.md b/skills/devops/cnb-codebuddy-npc/SKILL.md index 270e3ed5..559f61ff 100644 --- a/skills/devops/cnb-codebuddy-npc/SKILL.md +++ b/skills/devops/cnb-codebuddy-npc/SKILL.md @@ -84,10 +84,10 @@ curl -s -X POST "https://api.cnb.cool/muchen-org/download-webhook/-/issues" \ **Issue 标题必须以 `@npc/CodeBuddy` 开头**(建 Issue 后 NPC 会识别——Issue 列表出现 `deepseek-v4-flash` 标签,表示已收到)。**但实测确认:仅标题 @ 不会开始干活,必须在评论里再 @ 一次**: ```bash -# 建 Issue 后,发一条评论真正触发: +# 建 Issue 后,发一条评论真正触发(⚠️ 必须带 work_mode:true 才能推 PR): curl -s -X POST "https://api.cnb.cool/muchen-org/download-webhook/-/issues/1/comments" \ -H "Authorization: Bearer $TOKEN" -H "accept: application/json" -H "Content-Type: application/json" \ - -d '{"body":"@npc/CodeBuddy 替我上班,请开始执行这个任务。"}' + -d '{"body":"@npc/CodeBuddy 替我上班,请开始执行这个任务。","work_mode":true}' # 约 3 分钟后 NPC 开始响应(评论区出现 NPC 作者 deepseek-v4-flash 的进度) ``` @@ -102,27 +102,31 @@ remote: Your token does not have repo-code:rw permission to push this repository 当前环境 CNB_NPC_ENABLE_WORKMODE=false(未开启"替我上班"模式) ``` -### ✅ 解法:创建 Issue 时带 `work_mode: true`(2026-08-09 实测验证) +### ✅ 真正解法(2026-08-14 完整验证):**评论触发时带 `work_mode: true`** -PostIssueForm 有 **`work_mode`** 字段(boolean)= "替我上班"开关: +建 Issue 时的 `work_mode` 字段**不是充分条件**(2026-08-14 实测反例:`npc-bench` 用 `work_mode: true` 建 Issue + 不带 work_mode 的评论触发,NPC 完成编码验证后推分支仍 403 `CNB_NPC_ENABLE_WORKMODE=false`)。 + +**关键发现:`PostIssueCommentForm` 也有 `work_mode` 字段**——官方文档说"在评论区勾选「替我上班」",指的就是评论时带这个字段。同一 Issue 重新评论并带 `work_mode: true`,NPC 立即全流程跑通(推分支 + 建 PR + CI success)。 ```bash -curl -s -X POST "https://api.cnb.cool///-/issues" \ +# ✅ 正确:触发评论必须带 work_mode: true +curl -s -X POST "https://api.cnb.cool///-/issues/1/comments" \ -H "Authorization: Bearer $TOKEN" -H "accept: application/json" -H "Content-Type: application/json" \ - -d '{ - "title": "@npc/CodeBuddy 替我上班:<任务>", - "body": "...", - "work_mode": true - }' + -d '{"body":"@npc/CodeBuddy 替我上班,请开始执行这个任务。","work_mode":true}' +# → NPC 全流程:编码→验证→推分支→建 PR→CI success ``` -- `work_mode: false`(默认)→ 只能编码+测试,不能 push -- `work_mode: true` → 全流程跑通,自动推分支 + 创建 MR ✅ +- `work_mode: false`(默认)→ 只能编码+测试,不能 push(403) +- `work_mode: true`(**建 Issue 和评论都带**)→ 全流程跑通 ✅ +- 前提:触发者(token 持有者)在仓库有**开发者及以上权限**(Owner 肯定 OK;查法:`GET /{repo}/-/members/{username}/access-level` 返回 `access_level: Owner`) +- 2026-08-14 验证:`POST /issues` 带 `work_mode:true` + `POST /issues/{n}/comments` 带 `work_mode:true` → PR#2 创建成功(作者 deepseek-v4-flash, is_npc: true, open) -⚠️ **PATCH /issues/{number} 不支持改 work_mode**(PatchIssueForm 只有 body/title/state/priority/start_date/end_date)——只能在创建时设置。需要工作模式就重建 Issue(标题可注明"(工作模式)")。 +⚠️ **PATCH /issues/{number} 不支持改 work_mode**(PatchIssueForm 只有 body/title/state/priority/start_date/end_date)——只能在创建时设置。但**评论可以随时带**,所以第一次触发忘了带时,直接再发一条带 `work_mode:true` 的评论即可(NPC 的分支/commit 已就绪,会直接推 MR,无需重新开发)。 成功信号:PR 出现,作者 `npc/CodeBuddy(deepseek-v4-flash)`,`PR#N open: feat: ...`。 +**与 DSH 对比(2026-08-14 同一任务实测)**:DSH 本地 headless 约 2 分钟完成(写码+运行+验证+落盘),无权限问题但走 DeepSeek 付费 key;NPC 云端约 5 分钟(含 3 分钟排队延迟),编码质量同级且做了 awk 独立交叉验证,免费但推 PR 被权限挡。**选择**:隐私敏感/要即时结果/本地工具调用 → DSH(见 `deepseek-harness-research` skill);可公开/免费任务 → NPC。完整基准方法(任务/数据/跑法/结论)见 `references/dsh-vs-npc-benchmark.md`。 + ## ✅ 验收流程(2026-08-09 完整验证) 1. **合并 PR**:`PUT /{repo}/-/pulls/{number}/merge`,body: `{"merge_style":"squash","commit_title":"...","commit_message":"..."}` → 返回 `{"merged":true,"sha":"..."}` @@ -137,10 +141,10 @@ curl -s -X POST "https://api.cnb.cool///-/issues" \ - **代码任务尽量让 NPC 干**(免费 DeepSeek-V4-Flash,至 2026-12-31) - **隐私数据不要上传**——含密钥/财务/私有数据的项目禁止推 CNB(代码要上腾讯云) -**解锁方式**(需用户网页端操作一次): -1. 在仓库 Issue 页/设置里开启 **「替我上班」(工作模式)** -2. 或创建 token 时勾选 `repo-code:rw` 写权限 -3. 然后重新召唤 NPC——它的分支(如 `auto/health-check-c369`)和 commit 已就绪,会直接推送建 MR,无需重新开发 +**解锁方式(无需网页端操作,API 即可)**: +1. **触发评论里带 `work_mode: true`**(PostIssueCommentForm 字段,2026-08-14 验证最有效) +2. 建 Issue 时也可带 `work_mode: true`(但单独不够,评论仍需带) +3. 前提:token 持有者在仓库是**开发者及以上**权限(Owner 直接满足) **NPC 行为特征(实测)**: - 作者显示为模型名(如 `deepseek-v4-flash`),`is_npc: true` diff --git a/skills/devops/cnb-codebuddy-npc/references/dsh-vs-npc-benchmark.md b/skills/devops/cnb-codebuddy-npc/references/dsh-vs-npc-benchmark.md new file mode 100644 index 00000000..349ed112 --- /dev/null +++ b/skills/devops/cnb-codebuddy-npc/references/dsh-vs-npc-benchmark.md @@ -0,0 +1,51 @@ +# DSH vs NPC 对比基准(2026-08-14 实测) + +同一编码任务在两个编码执行器上跑,对比产出质量与使用体验。 + +## 测试任务(可复用) + +> 写一个 Python 脚本 analyze_logs.py:读取同目录 access.log(Nginx 标准格式),统计访问次数最多的前 10 个 IP,输出 top_ips.csv(两列 ip,count 降序)。要求:1) 只用标准库(re, csv, collections.Counter)2) 文件缺失时报错 exit 1 3) 写完运行验证。 + +验收:脚本存在且语法正确 / 运行生成 top_ips.csv / 两列降序 / 缺文件报错退出。 + +## 测试数据 + +26 行 Nginx combined 格式样例日志,4 个不同 IP: +- 127.0.0.1 → 8 次 +- 10.0.0.5 → 7 次 +- 192.168.1.10 → 6 次 +- 172.16.0.8 → 5 次 + +正确 CSV:`127.0.0.1,8 / 10.0.0.5,7 / 192.168.1.10,6 / 172.16.0.8,5` + +## 两边跑法 + +### DSH(本地,约 2 分钟) + +```bash +cd /tmp/benchmark +dsh-ds.sh --profile headless "写一个Python脚本 analyze_logs.py:读取同目录下的 access.log ... 写完后运行它验证输出。完成后报告:脚本路径、运行结果、CSV前5行内容。" +``` +⚠️ 必须 `--profile headless`,直接 `dsh-ds.sh headless` 报 `error: --profile is required`(headless 不是子命令)。 + +产出:`/tmp/benchmark/analyze_logs.py` + `top_ips.csv` 直接落盘。 + +### NPC(云端,约 5 分钟含 3 分钟排队) + +1. 建仓库 + 推 README/access.log(见 cnb-codebuddy-npc 主 SKILL 流程,注意默认分支是 main 不是 master:`git push -u cnb HEAD`) +2. 建 Issue 带 `work_mode: true` + 评论 `@npc/CodeBuddy 替我上班` 触发 +3. 轮询 `GET /{org}/{repo}/-/issues/{n}`(comment_count 变)和 `GET /{org}/{repo}/-/pulls` + +产出:代码写进 Issue 评论(含完整源码),**但推 PR 可能被 403**——2026-08-14 实测 work_mode: true 不保证 push(token 缺 repo-code:rw 时照样 403)。 + +## 2026-08-14 对比结论 + +| 维度 | DSH(本地) | NPC(云端) | +|------|------------|------------| +| 完成时间 | ~2 分钟(即时) | ~5 分钟(3 分钟排队)| +| 代码质量 | 同级,多 errors="replace" 和空日志警告 | 同级,多做 awk 独立交叉验证 | +| 推 PR/落盘 | 本地直接落盘 | 推 PR 被权限挡 | +| 成本 | DeepSeek 付费 key | 免费(至 2026-12-31)| +| 隐私 | 代码不出机器 | 代码上腾讯云 | + +选择建议:隐私敏感/要即时结果/本地工具调用 → DSH;可公开/免费任务 → NPC。 diff --git a/skills/product-research/ai-side-business/SKILL.md b/skills/product-research/ai-side-business/SKILL.md new file mode 100644 index 00000000..5e46587a --- /dev/null +++ b/skills/product-research/ai-side-business/SKILL.md @@ -0,0 +1,96 @@ +--- +name: ai-side-business +description: AI副业选题与变现 — 5个GitHub项目提炼的方法论+结合小唯现有能力。触发词"副业/AI赚钱/变现/赚米"。 +version: 1.0.0 +author: 小唯 A06 +tags: [side-business, ai-monetization, indie-hacker, mvp, passive-income] +trigger: "讨论副业/AI赚钱/变现路径/独立开发项目" +created: 2026-08-15 +updated: 2026-08-15 +--- + +# AI 副业选题与变现(5 项目提炼) + +> 2026-08-15 牧尘分享微信文章《AI赚米新路子,这5个项目简直了!》→ 下载 5 个 GitHub 项目 → 提炼。 +> 源码在 `~/projects/ai-side-business/`(5 仓库,本地 git commit 完成,Gitea 待推)。 + +## 五个项目速览 + +| 项目 | Stars | 定位 | 价值 | +|------|-------|------|------| +| easychen/lean-side-bussiness | 12K | 《精益副业》书 | 程序员副业操作系统(方法论)| +| mezod/awesome-indie | 11.5K | 独立开发者资源地图 | 社区/播客/案例/工具索引 | +| XiaomingX/ai-money-maker-handbook | 3.6K | **兼职赚钱方案博物馆** | ⭐425章宝典+39章创始人树洞(金矿)| +| garylab/MakeMoneyWithAI | 674 | 开源项目+变现路径 | 56+ 项目按变现角度标注 | +| yourincomehome/awesome-passive-income | 349 | 被动收入平台工具 | 联盟/内容/电商/广告渠道 | + +## 核心方法论(提炼自 425 章宝典) + +### 程序员副业四大铁律(ch0001 序言) +1. **需求验证**:没找到愿意付费的客户前,**严禁写一行代码** +2. **MVP 优先**:能用 Excel 解决的绝不写后台;能手动跑通的绝不写脚本 +3. **流量为王**:先搞定前 10 个客户,再优化产品 +4. **ROI 导向**:只做高投产比的事,算账!算账!算账! + +### 技术思维 vs 生意思维(程序员的诅咒) +- 重产出轻需求 / 重完美轻交付 / 重逻辑轻人性 → 全部反过来 +- 经典失败循环:点子→搭架构→写功能→上线→没人用→放弃 + +### 四条稳妥建议(README) +1. **做内容搞流量**:通过内容找到需要产品的用户 +2. **卖铲子而非挖金子**:挖金子风险大,卖工具更容易 +3. **不想花钱就花时间**:时间试错找到赚钱方法 +4. **做资产而不是卖时间**:积累可持续收益的资产 + +### 变现路径分类(MakeMoneyWithAI 56 个项目总结) +- **Agent/自动化** → SaaS 订阅 / API 销售 / 咨询 +- **AI 图像** → 服务 / 打印 / 授权 / 电商 / 插件市场 +- **RAG/知识库** → 企业部署 / 白标 / 订阅 +- **浏览器自动化** → 线索生成 / 数据提取 / 测试流水线 +- **语音/TTS** → 配音 / 播客 / 广告 / 白标部署 +- **监控/可观测** → SaaS 打包 / 托管服务 + +## 小唯现有能力 → 变现映射(重点!) + +我们**已经拥有**的基础设施,不是从零开始: + +| 小唯已有能力 | 可包装的副业方向 | 参考章节思路 | +|-------------|----------------|-------------| +| **KOCR 凭证识别 v8.0** | 会计凭证 OCR 服务(牧尘是会计专家,金蝶K3)| 卖铲子:企业财务自动化 | +| **织忆 MemoryWeave** | 个人知识库 / Agent 记忆服务 | 卖铲子:AI 记忆基础设施 | +| **飞书机器人 + 多平台接入** | 企业微信群机器人 / 客服自动化 | Agent 自动化 → 订阅 | +| **ComfyUI 生图(RTX3050)** | 写真定制 / 电商图 / 头像服务 | AI 图像 → 服务/打印 | +| **NewAPI 网关 136 模型** | API 聚合服务(自己用→对外)| API 聚合 → 订阅 | +| **crawl4ai / 爬虫工具链** | 行业监控 / 竞品日报 / 舆情报告 | 爬虫+总结 → 订阅 | +| **Edge TTS + 语音工具** | 配音服务 / 有声内容 | TTS → 配音/内容 | +| **ao 211 角色编排** | 自动化内容生产流水线 | 内容生产 → 流量 | + +### 从零到一的执行路径(按宝典方法论) +1. **选题**:从上面 8 个方向里挑 1 个(优先:你懂行业的 + 已有人付费的) +2. **验证**:找 10 个真实用户聊,确认愿意掏钱(用飞书/微信,别写代码) +3. **MVP**:最简交付(能用 Excel/人工跑通的就先手做) +4. **定价**:算成本(时间+API+服务器)→ 加利润 → 定月费 +5. **流量**:先内容后产品(公众号/小红书发使用案例) +6. **交付**:用已有系统自动化,边际成本趋零 + +## 使用场景 + +- 牧尘说"副业""AI赚钱""变现" → 加载本 skill +- 讨论新项目能否赚钱 → 用四大铁律 + 变现映射评估 +- 想包装现有能力 → 看"小唯现有能力→变现映射"表 + +## 相关文件 + +| 路径 | 说明 | +|------|------| +| `~/projects/ai-side-business/lean-side-bussiness/` | 《精益副业》书(README已拉取,63MB完整版待下载)| +| `~/projects/ai-side-business/ai-money-maker-handbook/` | 425章宝典+39章树洞(⭐重点研究)| +| `~/projects/ai-side-business/MakeMoneyWithAI/README.md` | 56 个项目变现标注 | +| `~/projects/ai-side-business/awesome-indie/` | 独立开发者资源索引 | +| `~/projects/ai-side-business/awesome-passive-income/` | 被动收入渠道列表 | + +## 注意事项 + +- 隐私数据不上传(KOCR 凭证、财务数据不推 CNB/云端) +- 合规:只做合法副业,灰产/爬个人数据等明确不做 +- 先验证再开发,不犯"技术思维诅咒" diff --git a/skills/research/deepseek-harness-research/SKILL.md b/skills/research/deepseek-harness-research/SKILL.md new file mode 100644 index 00000000..ff3408cc --- /dev/null +++ b/skills/research/deepseek-harness-research/SKILL.md @@ -0,0 +1,71 @@ +--- +name: deepseek-harness-research +description: DSH研究 — 一切皆插件的Agent Harness,安装实测与架构借鉴。触发"DSH"。 +version: 1.0.0 +author: 小唯 A06 +tags: [deepseek, harness, cordis, plugin, research] +trigger: "讨论 DSH/DeepSeek Harness;需要借鉴一切皆插件架构;评估新 Agent 框架" +created: 2026-08-14 +updated: 2026-08-14 +--- + +# DeepSeek Harness(DSH)研究 + +> 日期 2026-08-14 | 牧尘分享知乎问题后深入研究。源码在 `~/projects/deepseek-harness/`,报告在 `~/小唯/07-Wiki/concepts/DeepSeek-Harness-深入研究报告.md`。 + +## 关键事实 + +- **定位**:DeepSeek 官方开源 Agent Harness,**一切皆插件**(Everything is a Plugin) +- **仓库**:github.com/deepseek-ai/deepseek-harness(TypeScript,MIT,69MB) +- **发布**:2026-08-13,1 天 5.4 万星,当前 developer preview(0.1.0-rc.6) +- **底层**:Cordis(vendored,时空可组合编程范式) +- **内置**:133 个插件(UI 实测确认),从模型适配到 UI 全是插件 + +## 安装实测(已验证) + +```bash +npm install -g @deepseek-ai/dsh --registry=https://registry.npmmirror.com +dsh web # Web UI → http://127.0.0.1:3080(1秒启动) +dsh --profile headless "task" # 一次性任务(需要 DEEPSEEK_API_KEY) +dsh --profile web --dump-config # 看插件树 +``` + +注意:raw.githubusercontent 被墙,README 用 GitHub API 拿(`/repos///readme` + `Accept: application/vnd.github.raw+json`);大仓库下载用 aria2c(curl 会截断,实测 1.98MB vs 13.7MB)。 + +## 接入 DeepSeek 收费模型(2026-08-14 已配置) + +DSH 从环境变量 `DEEPSEEK_API_KEY` 读 key(llm-deepseek 插件),我们已有官方 key(在 `~/.hermes/.env`)。 + +**启动脚本**:`~/.local/bin/dsh-ds.sh`(或 `dsh-ds` 符号) +```bash +dsh-ds.sh web # Web UI + DeepSeek 收费模型 +dsh-ds.sh headless "任务" # 一次性任务(实测通过) +``` +脚本自动从 `~/.hermes/.env` 注入 DEEPSEEK_API_KEY,不硬编码 key。 + +**实测结果**(2026-08-14): +- ✅ headless 问答:"什么是RAG" → 正确回答 +- ✅ headless 工具调用:"列出当前目录文件并找最大" → 列出+排序+识别 zhiyid-new-test2 +- ✅ Web UI:HTTP 200,模型页显示 deepseek-official provider +- ✅ key 有效:官方 API 返回 deepseek-v4-flash / deepseek-v4-pro + +## 架构要点(可借鉴) + +1. **没有特权核心**——模型适配器/会话日志/Agent loop 全是插件,配置层可替换 +2. **Profile/Bundle 分层组合**——`web`/`headless` 模板 + 用户 `cordis.patch.yml` 覆盖任意行 +3. **Capability Seam 三位一体**——Service Definition / Provider / Consumer,换 provider 换整个能力 +4. **Model-visible ⟺ logged**——任何模型输入必须能从会话日志重建(可观测性铁律) +5. **Skill 分层注册表**——project-dsh → project-agents → custom → user-dsh → user-agents → bundled 6 级,modelInvocable/userInvocable 分离 + +## 对我们系统的启示 + +- **可借鉴**:① 核心也可替换的哲学 ② Model-visible⟺logged 约束 ③ skill 分层 + 双 invocable ④ keyless snapshot 验证(对应我们的失败回归闭环) +- **暂不采用**:作为生产工具太早(preview 1 天,破坏性变更频繁),Hermes 仍是主力 +- **可用场景**:NewAPI 自定义 provider 理论可行(pi-ai OpenAI-compatible),等稳定后评估 + +## 已做动作 + +- 源码 `~/projects/deepseek-harness/`(git commit 0642404,Gitea 待推) +- npm 全局 `@deepseek-ai/dsh@0.1.0-rc.6` +- Web UI 实测(133 插件) +- 报告 `~/小唯/07-Wiki/concepts/DeepSeek-Harness-深入研究报告.md` diff --git a/skills/research/github-project-research/SKILL.md b/skills/research/github-project-research/SKILL.md index ae9adb50..56e66815 100644 --- a/skills/research/github-project-research/SKILL.md +++ b/skills/research/github-project-research/SKILL.md @@ -184,3 +184,4 @@ content = base64.b64decode(d2['content']).decode('utf-8', 'ignore') - `references/2026-08-02-research-cases-batch3.md` — ai-agent-book(李博杰 Agent 书,ch3/ch8 对标织忆)、ui-skills(UI 质量技能集)、croc(安全文件传输)+ MCP 工具全流程方法论 - `references/2026-08-10-research-mapcn.md` — mapcn(React 地图组件库,11.3k stars,CARTO 底图许可注意)+ tarball 整仓下载法实测 - `references/2026-08-10-research-lightmem.md` — LightMem(浙大 zjunlp 记忆增强生成框架,ICLR 2026,1.1k stars)+ 与织忆对照结论(不替代、借鉴 llmlingua-2 预压缩) +- `references/zhihu-wechat-extraction.md` — 知乎回答/微信公众号链接内容提取(2026-08-12 实测):知乎 API `segment_infos` 分片绕过登录墙 + `root_comments` 拿评论区;微信 curl 抓 `js_content`。用户丢知乎/微信链接做产品调研时先看这个。 diff --git a/skills/research/github-project-research/references/zhihu-wechat-extraction.md b/skills/research/github-project-research/references/zhihu-wechat-extraction.md new file mode 100644 index 00000000..f9d9f137 --- /dev/null +++ b/skills/research/github-project-research/references/zhihu-wechat-extraction.md @@ -0,0 +1,67 @@ +# 知乎 / 微信文章链接提取(调研链接时用,2026-08-12 实测) + +用户分享链接(知乎/微信公众号)做产品调研时,web_extract 可能失败(后端不支持/登录墙), +browser 会撞验证页。以下是**绕过登录墙的确定性方法**,实测有效。 + +## 知乎回答(zhihu.com/question/xxx/answer/yyy) + +**关键:知乎 API 返回 `segment_infos` 分片,未登录也能拿到部分正文。** + +```bash +# 1. 拿回答 JSON(answer id = URL 最后一段) +curl -s --max-time 20 \ + -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \ + "https://www.zhihu.com/api/v4/answers/" \ + -H "Referer: https://www.zhihu.com" -o /tmp/zhihu_answer.json + +# 2. 提取正文(segment_infos 里每个分片的 text 字段) +python3 -c " +import json +d = json.load(open('/tmp/zhihu_answer.json')) +print('问题:', d.get('question', {}).get('title')) +print('作者:', d.get('author', {}).get('name')) +for s in d.get('segment_infos', []): + print(s.get('text', '')) +" +``` + +**要点**: +- **answer id 是 URL 最后的数字**(`/answer/2071339234137469170` → id=2071339234137469170) +- `segment_infos` 数组里每项 `.text` 是正文分片,**未登录可读**(`content` 字段需要登录返回空) +- `question.title` 拿到问题标题(产品名/主题) +- 问题 API `/api/v4/questions/{id}` 需要登录(code 10003),**不要用它** + +### 评论区(评价/共识) + +```bash +curl -s --max-time 15 -A "Mozilla/5.0" \ + "https://www.zhihu.com/api/v4/answers//root_comments?limit=20&offset=0" \ + -H "Referer: https://www.zhihu.com" -o /tmp/zhihu_comments.json +# common_counts = 总评论数;data[].content = 评论文本(可能含 HTML,需去标签) +``` + +- 评论 `content` 是 HTML(`

` 标签),用 `re.sub(r'<[^>]+>', '', c)` 去标签 +- 分页:`offset` 递增 20 + +## 微信公众号(mp.weixin.qq.com/s/xxx) + +已有专节(见主 SKILL 工具 9),核心: +```bash +curl -sL -A "<桌面 Chrome UA>" "https://mp.weixin.qq.com/s/" -o /tmp/wx.html +# 标题: grep 'og:title';正文: id="js_content" div 内(3MB+ HTML 才完整) +``` +- 微信会随机 CAPTCHA,**先 grep og:title 确认目标**再提取正文 +- 浏览器(browser_navigate)大概率撞「环境异常」验证页——**优先 curl** + +## 抓取受阻时的替代 + +1. `web_extract` 后端是 ddgs(search-only)时**直接跳过**,用 curl/API +2. 知乎搜「问题标题」看公开讨论(多个平台交叉验证) +3. 注意:`r.jina.ai` 本服务器网络不通(不可用) + +## 本次案例(2026-08-12 DeepSeek Harness 调研) + +- 用户分享知乎回答 → web_extract 失败(ddgs 后端)→ browser 撞知乎登录墙 +- 知乎 API `segment_infos` 拿到正文(3 段)+ `root_comments` 拿到 79 条评论前 20 +- 拼出产品画像:DSH 插件路线(Cordis 架构、一切皆插件)、133 插件、社区评价两极 +- 结论:插件路线 = 我们的 211 ao 角色 + 144 skill 同哲学;skill 质量治理是通用难题