项目矩阵 · 43 项目 / 5 大类 · 含 M20+ 后半月新加

5 台机器 / 半年+ 做出来的全部 43 个项目

按类型分 5 组,按重要程度排列。本站所有项目都是学习产物 —— 半年多把 AI agent 用成"多机器协作的工程团队"这条路上的技术演练、SOP 沉淀、协议实验、UI 打磨。每张卡 = 这是什么 + 解决什么问题 + 近期重要变化 + 洞察 + 技术栈。右下圆点标该项目被哪台机器记录(F=Fries 主控 / E=Eagle 云 / D=Dora 云 / O=Ottor / S=Surface)。Q4 · 生产化 (06-15 → 07-07) 新加 8 个: pi-yunzhan 云展生产版、Cockpit v2 面板、swap 交换吧、image-studio chat 版、PackHorizon、daily-recap cron、ai-gateway 重写、Dora bot。

排序 · 按类型分 5 组,各组内按重要程度 来源 · git log + Hermes state.db + daily/ 复盘 更新 · 2026-07-07 · 补 Q4 生产化
Q4 · 生产化聚焦06-15 → 07-07
№40 · 生产 ⭐

pi-yunzhan「云展」· 客户复用底盘

Pi 版 AI 编码项目台复刻上悟空 → 部生产 yunzhan.eduapp.com.cn。174 commit / 10 天。provider adapter 三入口 dispatch + context-window 探针 + 用户管理 MVP + 手机端整改。
№32 · 面板 v2 ⭐

Wingman + Cockpit · 多机司令完全体

5 台机器上散乱的 launchd/cron/dev 进程全汇总到 web 面板 → 24 种服务自动扫描 + 4 类 display_name auto-gen + Tauri 桌面壳 + 外网可达 wingman.nexora.restry.cn。
№41 · MVP → Wave8

swap 交换吧 · CC 227 tools 一次跑完

小区玩具车交换 MVP 全链路上线 → 站内聊天 → 六色仓鼠视觉换皮 3 次大迭代。Wave 8 CC ultracode 38m51s / $79.84 / 227 tools 一次跑完。swap.mvp.restry.cn HEAD fddb231。
№16 · chat 完整链

image-studio · AI 对话+出图+编辑

从"只能出图"演进到"AI 对话+出图+编辑"完整链路: chat agent 4 model + streaming + tool calling + 画布真实比例 + aspect_ratio+quality 参数矩阵 8/8 覆盖。deploy-prod.sh 首入固化。
№42 · 立项

PackHorizon · AI 包装设计 SaaS 三人合伙

新起项目 + 三方股权设计 + gitee 迁仓 + CC 全量技术架构分析 (479 行 / 12-12 引用抽查无幻觉) + Dora bot 进创业群。7-6 一天做完。
№43 · 自动化

daily-recap cron · 生产 4 天全绿

45 篇群聊流水账 wiki 蒸馏合并成 27 篇话题记忆 + 每日 05:00 拉群增量→更新话题记忆→08:00 发飞书卡片 cron 全链路上线。07-04/05/06/07 4 天全绿。
seenlens 自习交付聚焦06-05 → 06-14
№34 · 自习交付

选图科技云摄影 · seenlens

半年内所有项目都是自用 / 给同事 / demo, seenlens 是第一次真按客户交付节奏走完全程: 4 周 deadline · 当天最多 6 次部署 · PRD v0.5 → v0.7 · 飞书 wiki 当 issue tracker。本期新增: 微信小程序 3 Tab 完整复刻 + 13 云函数 + 管理后台 6 模块 + 34 张图入库。
№32 · 僚机

Wingman + 驾驶舱 Cockpit (H1)

6 天 74 commits。haiku 5s 节流摘要 + 飞书"一行卡片" + 本地 Web 驾驶舱 192.168.1.142:7421。6/13 三段式架构重构。Q4 已进入面板 v2: 见上方聚焦。
№31 / №33 · 基础设施 + 产品

cc-mcp-bridge · LongCut Bilibili

№31 把 Hermes 调 CC 从 spawn 升级到 MCP 异步派任务。№33 给 LongCut(YouTube 长视频学习)加 Bilibili adapter, BV API wbi 签名调通。
43
PROJECTS
5 大类 · Q4 +8 · 全部自学产物
10
DETAIL PAGES
单项目深度页
19+
PROD URLS
公网可访问 · 8/10 探活 200
583
Q4 COMMITS
06-15 → 07-07 后半月

平台 · 9 个

对外服务 / 多端 / 长生命周期

№ 40 ● 生产运营 Q4 新加 ⭐

pi-yunzhan「云展」

Pi 版 AI 编码项目台 · 客户复用底盘 · 已上生产
  • 174 commits
    Q4 后半月最大项目
  • yunzhan.eduapp.com.cn
    生产入口 · HTTP 200 · pm2 online
  • 3 provider
    MiniMax + Anthropic + OpenAI 三入口 dispatch
yunzhan.eduapp.com.cn生产入口 · 客户 EduApp 域名 时间线 M2510 天完整叙事 ~/projects/pi-yunzhanPi 0.80.3 fork 121.199.77.118 (Ubuntu 22)SSH 18822 + fail2ban
F
这是什么

Pi (原 LM Studio) 复刻成"给客户交付的 AI 编码项目台"底盘。EduApp 是首个客户,拿云展当自家 AI 编码工具入口。本期从"测试环境跑在悟空"推到"生产入口给客户看"。

解决什么问题

客户想要"AI 编码项目台"但不会自己搭。云展是可复用的底盘: 项目管理 + 会话隔离 + 用户管理 + 多 provider 模型接入 + 手机端 —— 客户接进去改改就用得起来。

Q4 重要变化
  • provider adapter 拆分 — 之前 body 无条件当 OpenAI 协议,MiniMax 图生成 multipart 必炸;抽三入口按模型名 dispatch(MiniMax responses / Anthropic messages / OpenAI chat completions)
  • context-window 探针化 — 200k 硬编码改成启动时探针每 model 的真 context length,M3 探到 100 万
  • 用户管理 MVP — 超管/普通用户/用户名隔离/模型脱敏档位(顶配/常用/快速)/登录页,CC 12 phase 后端 149 + 前端 33 测试过
  • Bug 1-5 全修 — 会话固定 / 消息返回 / steer 乐观上屏 / context-window 硬编码 / 左栏横滚
  • 手机端整改 + Opus 4.7 thinking 400 修 — 升 Pi 0.80.3 + compat.forceAdaptiveThinking=true 新协议
  • 7-3 部生产 — 16 commit(Pi 0.80.3 + provider 拆分 + 手机端) 部 yunzhan.eduapp.com.cn HTTP 200,pm2 online
洞察
  • 客户复用底盘 = 高 leverage。一个底盘做透,后续客户接进去改配置就上线,不需要每次从零。
  • Loop v2 归档得对。用户给 50 分说明方向不对,别硬撑,切回 main 做用户管理 MVP 才对路。
  • 硬编码是最大的技术债。context-window 200k 硬编码差点让 M3 128k 全炸,改探针化后一劳永逸。
TypeScriptReactVitePi 0.80.3MiniMaxAnthropicOpenAIUbuntu 22pm2
№ 32 · v2 ● 生产运营 Q4 完全体 ⭐

Wingman + Cockpit · 面板 v2

多机司令完全体 · 24 种服务自动扫描 · 外网可达
  • 20 commits / 17 天
    Q4 打磨完全体
  • wingman.nexora.restry.cn
    外网入口 · 200 OK · 200 tests PASS
  • 5 台机器 / 4 类服务
    launchd + cron + dev + sleeping + expected-down 全汇总
F
这是什么

"僚机 + 驾驶舱" —— 5 台机器上散乱的 launchd/cron/dev 进程全汇总到一个 web 面板。加 Tauri 桌面壳 + 外网反代,手机也能查、异地也能看。

解决什么问题

"5 台机器上跑的一堆服务,谁挂了不知道、谁的日志在哪不清楚、名字都是 com.frpc.daemon 这种反 DNS 看不懂。" Cockpit 面板 v2 解决 3 件: 状态看得见(24 种服务自动扫描)、日志看得到(4 类分类处理)、名字看得懂(4 类 display_name auto-gen)。

Q4 完全体 4 件
  • services 面板 v2 — 5 类 collector 全扫(launchd + hermes_cron + dev + disabled + expected_down),ServiceMonitor 守护 30s scan 全量 replace_all 写库,新加服务自动入榜
  • display_name autogen — 4 类都做兜底(cron/dev/service/sleeping,expected-down 并入 sleeping),测试 162 PASS,commit 8a1abd7+643bde4,curl 4 类抽样真
  • Tauri v2 桌面壳跑通(commit 557a4f7),cockpit menu-bar 上电脑
  • 外网可达 — 加 nexora 反代 wingman.nexora.restry.cn HTTP 200 稳跑; fix launchd cockpit plist 路径 Projects→projects
洞察
  • P0 严重度看场景不看等级。深夜 XFF spoof 事件: reviewer 报 P0 但家网单人无威胁面,最终立铁律 reviewer P0 工程洁癖类默认合 main、不打断业务。
  • display_name = "看得懂" 是核心。之前面板上一堆 com.frpc.daemon 谁都看不出是 frpc 内网穿透 —— 面板可用性 80% 就靠这一件事。
PythonFastAPIReactTauri v2CaddylaunchdPlaywright
№ 01 ● 运营中

Clawline 平台

把自家 AI 的对外聊天通道,从「租别人的 IM」改成「自有全栈 Web/桌面/扩展」
  • 3 → 1
    三个独立仓合并成 monorepo
  • 5 端
    Web · 桌面 mac/win/linux · 浏览器扩展
  • 3 个月
    3-17 启动 → 5-13 转维护期
项目详情完整里程碑 + 洞察 chat.clawlines.net主入口·Web 端 @clawlines/channelnpm 1.0 已发 clawline/platformmonorepo
EDS
这是什么

一套自有的「聊天 + 桌面端 + 浏览器扩展」全栈,专门给自家 AI agent 当对外通道。Web 端跑在 chat.clawlines.net,桌面端 Tauri 打包,扩展走 Chrome MV3。

解决什么问题

之前用 Telegram / Discord 这些第三方 IM 给 AI agent 当门面,永远受制于别人家的平台规则、限速、API 变动,账号一封整条业务就停。Clawline 把整条通道收回到自家域名下:用户在哪聊、消息怎么存、能不能流式、要不要桌面客户端,全部自决。

近期重要变化
  • 5 月初三仓合并成 monorepo — 之前 channel / client-web / gateway 三个独立仓,改一次功能要追三个 PR;合完之后一个改动一次提交搞定。
  • npm 包正式 1.0@clawlines/channel 上 npm,外部开发者可以接入做自己的 channel 集成。
  • 桌面端可发布版 — v0.5.4 三平台都能装,从 0 → 可分发的客户端。
  • "幽灵消息"问题归零 — 5-08 之后再没出现过消息错乱 / 跨会话串台,长期挂账的 reliability 收尾。
  • 主入口让位给飞书 — 5-13 之后日常对话主战场切回 Hermes + 飞书 DM,Clawline 转入「随时可用但不强推」的维护期。
洞察
  • 通道自有 = 体验自主。第三方 IM 用得再顺手也始终是别人家的房子,自家产品长期一定要有自家的通道。
  • 架构走对一次顶改一百个 bug。流式协议在第二天就掉头改对方向,省下后面 N 周的修补成本。
TypeScriptReact 19Vite 6Tailwind v4TauriChrome MV3Supabase PGLogto SSO
№ 02 ● 日常使用

Wiki + Hermes Skills

自家的「永久记忆 + 操作手册」—— 让 AI 不再每次失忆
  • 153 页
    wiki + 39 entities + 35 项目页
  • 200+
    memory 文件跨 4 机汇合
  • 21 cron
    14 跑 / 6 关 / 1 once
~/wiki/本地 Obsidian + Quartz 渲染 ~/.hermes/skills/各机统一安装的 skill 库 LanceDB Pro向量记忆 · 跨 agent 共用
EDOS
这是什么

两套互补的 AI 知识基础设施。Wiki 跨平台归并对话历史,按 entity / concept / project / decision 整理;Hermes Skills 把踩过的坑写成 markdown 操作手册,触发关键词自动加载。

解决什么问题

AI 没记忆是最大痛点 —— 同一个坑每次跟它说一遍,同一份背景每次重讲。Wiki 让 AI 自己按主题查归档,Skills 让 AI 不用每次问「怎么部署 X / 怎么处理 Y」。两套都接 Karpathy 风格 ADR:只记不可回退或成本高的决策,不记日常操作。

核心做法
  • Wiki 每页强制 frontmatterupdated + sources: [hermes:platform/host/YYYY-MM-DD],证据链可追到具体对话
  • Skills 按触发词自动加载 — 关键词命中就把 markdown 喂进 AI 上下文,不需要手动 import
  • 跨机统一分发 — sync-skill 把同一份 skill 推到 4 台机,AI 在哪台机器经验都一致
QuartzObsidianLanceDB ProReact FlowHermes SkillsMarkdown ADR
№ 03 ● 日常使用

GrowLog

给 Dora 视角的个人 AI 长期记忆 —— 向量库 + 文件层 + 主题地图
  • 108 主题
    持续生长 3 个月稳定
  • 5 轮迭代
    收敛到 React Flow 工作流地图
  • 3 个月
    Hermes 的记忆底座
LanceDB Pro向量记忆层 · 跨会话共用 Obsidian vault文件层 · 人类可读 + LLM 可检索 React Flow主题地图 UI
D
这是什么

Hermes 的「长期记忆底座」。三层结构:LanceDB Pro 做向量检索、Obsidian 做文件层(人类可读 + 手编辑)、React Flow 主题地图把 108 个主题之间的关系可视化。Hermes 跨 agent / 跨会话都靠它复用历史经验。

解决什么问题

AI 助手聊一次忘一次,长期记忆只能靠 prompt 里塞历史 —— 但 prompt 容量有限。GrowLog 把记忆外置:向量索引让 AI 按相关性自查、文件层让人能手动审阅修改、主题地图让 5 个月前的某个决策能被快速找回上下文。

5 轮迭代得出的判断
  • UI 收敛到工作流地图,不是树状/列表 — 知识本来就是网状结构,树/列表强行扁平化反而看不清
  • 自研 lossless-claw CJK token 引擎 — 中文 token 估算市面工具都不准,自己写一个保证向量切片不切坏
  • 不是一次性 demo,是真用了 3 个月 — 沉淀这件事最难的是坚持,技术不复杂,关键是不停往里写
LanceDB ProObsidianReact Flowlossless-claw CJK
№ 04 ● 日常使用

Agent Portal / portalbot

多 agent 项目管理 + 产出物 Pipeline 工作台 —— 3-10 立项扛到现在
  • 117 产出物
    首次扫描入库
  • 40s
    L1+L1.5 Pipeline 并行跑完全量
  • 3 层模型
    gpt-4.1 / 4o / 5.4 分级
trigger :18790本地 server.cjs HTTP 入口 PostgreSQL 直连弃用 Supabase REST agent-portalReact + Vite 前端
D
这是什么

统一管理多个 AI agent 工作台:左边 Bot Fleet(各 agent 状态 / 任务队列)、右边 Server Fleet(每个 agent 的产出物入库)。Pipeline 做「产出物粗筛」,把 100+ 文件按主题分类归档,方便事后回看。

解决什么问题

多 agent 并行干活时,产出物散落在十几个目录里,事后想找「上周 portalbot 写过的那份」得手动翻 git 记录。Portal 把所有 agent 的产出物一次性扫描入库,按主题 / 状态 / 时间检索,配合 Pipeline 自动归类。

关键架构调整
  • 3-10 放弃 Next.js — Next 16 + Turbopack 首次编译卡死,--no-turbopack 已不可用 → 30 分钟内出 React + Vite v2 原型
  • 4-02 数据层切 PG 直连 — Supabase /pg/query 401、REST 不支持 JOIN / 聚合 / DDL,server.cjs 有 39 个复杂 SQL 不适合 REST 化
  • 4-03 Pipeline L1 改「筛沙」文本粗筛 — JSON 结构化太慢,改纯文本粗筛后 40s 跑完全量 117 个产出物
React + VitePostgreSQL 直连Python Pipelinegpt-4.1/4o/5.4 分级
№ 05 ● 活跃迭代

Nexora DevHub + Hermes Agent

多 agent 项目工厂 + 飞书入口 —— DevHub 建项目、Hermes 当主控
  • PR #11~#59
    持续推进 49 个 PR
  • 21 cron
    14 active / 6 paused / 1 once
  • 9+6
    DEPLOY.md subagent 找出 9 真坑 + 6 错误
项目详情完整里程碑 + 飞书接入 nexora-devhubsystemd KillMode=process · 重启不杀 CC 子任务 飞书入口interactive clarify card 已落地
DS
这是什么

DevHub 是项目工厂:建项目自动创专属 OC 机器人(agent-factory)、统一管 SKILL.md / soul、配 cron。Hermes Agent 是统一 AI 主控,接 OAuth providers + 本地 OpenAI 兼容代理 + 飞书 / Discord / Telegram 多通道。两个配合:DevHub 出项目,Hermes 在飞书里跟 AI 对话推进。

解决什么问题

之前每个项目都要手动配 agent / cron / 部署脚本 / IM 通道,新增一个项目要折腾半天。DevHub 把这些标准化成模板,建项目 = 一键创整套机器人 + 部署管线。Hermes 解决「多 AI 主控散乱」问题,把 Claude / GPT / 各 channel 都收口到一个入口。

近期落地
  • 5-13 飞书交互卡片 — interactive clarify card 让 AI 在飞书里发选项卡,用户点按钮直接回,不用手打
  • DEPLOY.md 派 subagent dry-run — 写完部署文档让 subagent 模拟跑一遍,找出 9 个真坑 + 6 个错误,全修后评级 A
  • systemd KillMode=processsystemctl restart nexora-devhub 不杀正在跑的 CC 子任务(reconcile 重新接管),避免误伤长任务
Next.js 15systemdOAuth providers本地 OpenAI 兼容代理Hermes /goal 自主
№ 06 ● 样本验证

Agentic BI / bibot

数据问答机器人 —— FastAPI + DuckDB + Azure OpenAI 三层 agent 编排
  • 3 层 agent
    router / executor / summarizer
  • DuckDB
    本地物化 · 避免每次现拉
  • 0 SQL
    LLM 不写 SQL · 只做意图+总结
FastAPIHTTP 入口 DuckDB本地物化数据层
D
这是什么

数据问答的样板项目:用户一句自然语言(如「上周销售额怎么样」)→ LLM 路由意图 → DuckDB 跑预先写好的 SQL → LLM 把结果转回自然语言。三层 agent 解耦:router / executor / summarizer,失败局部化。

解决什么问题

让 LLM 直接生成 SQL 不稳定 —— 生产环境一旦写错就是数据事故。三层 agent 把 SQL 阶段做成 deterministic:LLM 只做意图分类和自然语言总结,SQL 由人预先写。失败时按层局部回退(router 错重路由 / executor 错重 SQL / summarizer 错降级输出原表)。

核心判断
  • 「LLM 不写 SQL」的工程边界 — Hermes 在数据问答场景的样本,验证 LLM + DB 怎么分工最稳
  • 三层解耦让调试有抓手 — 出错时能定位是意图 / 执行 / 总结哪一层挂,不是整个 pipeline 黑盒重跑
  • DuckDB 物化层避免每次现拉 — 上游数据每天 ETL 一次到 DuckDB,问答阶段只读本地
FastAPIDuckDBAzure OpenAI
№ 07 ● 元项目 · 已沉淀

工具链迁移:OpenClaw → Hermes + Claude Code

贯穿全程的「换主战场」决策 —— 从 OpenClaw 单 agent 切到双轨
  • 3 个月
    3 月 → 5 月平台收敛
  • 双轨
    Hermes 飞书 + Claude Code 干活
  • 统一收口
    技能从分散 → 一个 Git 仓库
OpenClaw → HermesIM 入口 · Mattermost → 飞书 + Claude Code干活 agent · ultrawork / 浏览器测试
DEOS
这是什么

2026 H1 跨项目的元决策:从 3 月的 OpenClaw 单 agent + Mattermost 协作模式,到 5 月切换为 Hermes(飞书 + azure-devops sync 当主入口)+ Claude Code(写代码 + 浏览器测试 + HTML 可视化)双轨。

为什么要切

3 月用 OpenClaw 的 rabbit / giraffe / quokka / owl 各管一摊,靠 Mattermost / Matrix 在 IM 里通讯 —— 上下文跨 bot 同步代价高、用户得记哪件事找哪个 bot。4 月中果断换掉:Hermes 当统一对话入口,Claude Code 当背后干活的 worker,IM 通道收口到飞书。技能分散在各机 → 收到一个 Git 仓库(sync-skill)统一分发。

迁移后的判断
  • 主控和 worker 分层比多 bot 平铺好 — 用户只跟一个主控聊,主控按任务派给合适的 worker
  • IM 通道选有原生 app 的 — 飞书 native app 在通知 / 跨设备同步上甩 Mattermost 几条街
  • 技能分发要集中 — 散在各机的技能永远会漂移,必须有「中央仓库 + sync 工具」组合
OpenClaw → HermesMattermost → 飞书+ Claude Code 双轨

基础设施 · 13 个

网关、部署面、CI/CD、可观测、安全

№ 08 ● 生产运营

Copilot Proxy

把 Copilot 订阅里的 Claude 解出来 —— 自家可观测、可计费、可分发的统一网关
  • ≈3.3 万
    请求 / 9 天
  • 7+ 下游
    服务并发
  • ≈$10+¥80
    月成本
ES
这是什么

GitHub Copilot 订阅里附带的 Claude Opus / Sonnet 调用权被解出来,做成一个统一可观测、可计费、可分发的网关。Claude Code / Cursor / 任何 SDK 客户端无缝白嫖 Copilot 后端的 Claude / GPT / Gemini。

解决什么问题

个人开发者已经为 Copilot 付费,那份额度被锁死在 IDE 插件里 —— 想在 Claude Code / agent / 自动化里复用,只能再付一份 Anthropic。Copilot Proxy 把这份额度释放成自家可用的统一 API,月成本压到 $10(Copilot)+ ¥80(基建)。

近期落地
  • OAuth 切割 — API 走 sk-proxy 自家 key,控制台走 Logto SSO + JWKS 验证,两条认证路彻底隔离
  • monthly_29 包月 5h 滚动窗口 — windowRolloverIfNeeded 在 /user/plan/user/me 上幂等触发
  • 微信内置浏览器免扫码 — UA 检测自动跳 wx-gateway /wx/oauth/start,白屏问题根治
  • 多 model fallback — claude-opus-4.6 → sonnet → openai-completions,失败计数自动降权,Copilot upstream 429 自愈
Node.js ESMCaddypm2better-sqlite3Logto SSOjose JWKS
№ 09 ● 生产运营

wx-gateway

多业务方共享的微信公众号网关 —— 1 个号 / 1 个 access_token 给 6+ 业务用
  • 6 业务方
    App 注册 · 共用 access_token
  • 100% 自愈
    40001 token 冲突循环消除
  • 2 服务号
    造悟者 + 莆阳
wx.mvp.restry.cn网关主入口 + admin wxmsg.mvp.restry.cn莆阳实例 pg_advisory_xact_lock防 cron 并发刷双份 token
ED
这是什么

集中持有 WX_APP_SECRET 的微信公众号网关,把扫码登录 / 微信支付 / 模板消息 / 菜单管理 / 永久二维码生成 一次性收口。6+ 业务方共用一份 access_token,不需要各自维护一份微信密钥。

解决什么问题

微信公众号一个号只能有一份有效 access_token,多个业务方各自存 secret 各自刷 token → 谁后刷把别人踢成 40001 错误循环。wx-gateway 用 pg_advisory lock 锁住刷 token、HMAC 给业务方分发,所有业务方走 /internal/wx-token 拿,杜绝 6 处各自存 secret

核心做法
  • 集中 access_token + HMAC 分发 — 业务方 GET /internal/wx-token 拿,凭 HMAC 签名授权
  • 永久二维码 scene_str = appName 1:1 — App 表 lazy 生成 + 缓存,珍惜 10 万张永久码配额
  • 菜单管理做进 admin — click 按钮 Save 时自动 upsert/delete menu-${key} 路由
Node.jsPostgreSQLpm2CaddyHMACadvisory lock
№ 10 ● 生产运营

MVP Deployer

POST 一个 zip 秒级上 HTTPS —— 13 个 MVP 的统一发布控制平面
  • 9 服务
    活跃部署
  • 90 天
    审计日志滚动
  • 4 层
    纵深防御 commits 全落地
ED
这是什么

AI 写完代码 → POST 一个 zip + manifest → 自动 install + build + PM2 + Caddy → 秒级上线 HTTPS。不搬 K8s / Helm / Argo 这套企业级,但围绕「RCE-as-a-service」做了 4 层纵深防御。

解决什么问题

AI 造的 MVP 要上线 → 手动 SSH 一条龙:scp 代码、pnpm i + build、手写 PM2 ecosystem、改 Caddyfile reload。一个项目 20 分钟,改完一个域名另一个 reload 后 404,忘填 host 会把别人的线上路由静默改没。Deployer 把这条龙收成一个 zip-only 异步 API。

4 层硬化(5-09 XMRig 入侵后)
  • NDJSON 审计日志 — 每次 /api/exec, /api/deploy, /api/db/provision 写一行 ts/ip/ua/tokenFp/route/cmd/exitCode/fileSha256
  • AUDIT_READ_TOKEN 拆分 — DEPLOYER_TOKEN 只能 exec/deploy,AUDIT_READ_TOKEN 只能读日志,权限切片
  • CIDR 白名单 + TRUST_PROXY=true — 信任 Caddy X-Forwarded-For,403 body 回 yourIp 方便排查
  • XMRig 矿机潜伏 6 周被发现 + 全套加固 — kill + rm + mount -o noexec,nosuid /var/tmp + iptables 9800 锁回 127.0.0.1 + 轮换 token
Node.js Expresspm2Caddy auto-TLSNDJSON auditCIDR allowlist
№ 11 ● 生产运营

menshen-ui 门神

给部署面的 secrets vault + token 管理 admin —— 和 deployer 解耦避免控制面被攻破
  • 独立站
    和 deployer 后端完全解耦
  • Logto SSO
    和 wx-gateway / copilot-proxy 共用身份
  • namespace
    按 prefix 隔离 secret
项目详情完整里程碑 独立 admin 站非 deployer 内嵌路由
ED
这是什么

独立的项目,给 MVP Deployer 配套做 secrets vault + token 管理 admin。和 deployer 后端完全解耦 —— 把控制面和数据面分开,避免控制面被攻破连带数据面。按 namespace 隔离:deployer / wx-gateway / cspy 各自只能拿到自己 prefix 的 secret。

解决什么问题

2026-05-09 XMRig 矿机潜伏 6 周事件后,意识到一份 prod token 散落各机的风险。门神把所有 prod secrets 集中管,配 Logto SSO 鉴权 + 90 天滚动审计日志,所有轮换走它统一推 —— 一次轮换全网生效,避免漏。

核心做法
  • 独立项目而非 deployer 内嵌 — 控制面 / 数据面强制分开,被攻破半边不会连根
  • 共用 Logto SSO — 跟 wx-gateway / copilot-proxy 共一份身份,添新管理员一处生效
  • namespace prefix 隔离 — deployer 只能取 DEPLOYER_*,业务方各自只能取自己的 prefix
Next.jsLogto SSOPostgres
№ 13 ● 生产运营

lark-channel-bridge

飞书消息 ↔ 本地 Claude Code 任务 —— Hermes / DevHub 的飞书入口都靠它
  • daemon 长驻
    断线指数退避 + webhook 幂等
  • systemd
    KillMode=process 重启不杀子任务
  • 无预编译
    GitHub 包必须 pnpm build
独立仓 · 必本地 buildGitHub 包没预编译 dist/ 是 9 真坑之一 飞书 Webhook幂等 ACK · 重复推不重复触发
DS
这是什么

飞书消息 → 本地 Claude Code 任务的桥接 daemon。Hermes 和 Nexora DevHub 的飞书入口都依赖它 —— 用户在飞书发消息,daemon 收到 webhook,触发对应的本地 CC 任务。

解决什么问题

Hermes / DevHub 需要把飞书这个外部 IM 平台接到本地跑的 AI worker 上,本身没有官方桥。lark-channel-bridge 做这个粘合层:长驻 daemon、断线自动重连、webhook ACK 幂等(重复推不重复触发任务)。和 DevHub agent-factory 配合:新建项目时自动注册飞书群 + 本地 CC 任务通道。

部署铁律
  • 必须单独 clone + pnpm build — GitHub 包没预编译 dist/(DEPLOY.md subagent 找到的 9 真坑之一)
  • systemd KillMode=process — 重启 service 时不杀正在跑的 CC 子任务,reconcile 重新接管
  • 幂等 ACK — 飞书 webhook 经常重推同一条消息,必须按 message_id 去重
Node.js飞书 Webhooksystemd KillMode=process
№ 14 ● 生产运营

sync-skill 跨机同步站

一处写 skill 多机同时生效 —— 跨机器 ~/.hermes/skills/ 统一安装
  • 4 台机
    rabbit/giraffe/quokka/owl 同步
  • 软链接
    本地无重复 · 中央分发
  • machine_id
    注册机制追溯同步历史
skill.mvp.restry.cn同步站主入口 central Git技能从分散 → 一个仓库统一管
EDO
这是什么

跨多机的 Hermes Skills 统一安装 / 同步站。各机注册一个 machine_id,~/.hermes/skills/ 全部走软链接指向中央 Git 仓库的 checkout —— 一个 skill 改了 push 一次,4 台机 sync 完同步生效。

解决什么问题

之前 skills 分散在各机的 ~/.hermes/skills/,每台机各自维护各自的。改一次得到处复制粘贴,时间长了各机版本完全漂移 —— AI 在不同机器上经验不一致。sync-skill 用「中央 Git + 各机软链接」把这事彻底解决,过去找运维的活基本让 AI 代劳。

核心做法
  • 软链接安装而非复制 — 各机 ~/.hermes/skills/X 都是中央 checkout 的软链,pull 一次全部生效
  • sync 状态写在 wiki/sync-history — 出问题可追是哪台机哪一次同步坏的
  • 跨机器路由器透明代理 — 本地 sync 站 + 路由器透明代理,sync 体验跟本地 git 一样
Node.js软链接安装machine_id
№ 16 ● 生产运营

Infrastructure

5 节点拓扑 + Caddy 泛解析 —— 个人 AI 工程的基础设施底盘
  • 5 节点
    主 + 备 + 内网 + Azure CN
  • *.dora.restry.cn
    泛解析 + 自动 TLS
  • 双环境
    内网 + Azure China 互备
Azure VM × 5主备 + 内网 + Azure China Caddy auto-TLS泛解析 *.dora.restry.cn sing-box/VPN自建代理 · 路由器透明转发
EDOS
这是什么

整个个人 AI 工程的服务器底盘:5 个 Azure 节点(Owl 主 + Wolf-SG / Eagle-SG 备 + claw-bot 内网 + Azure China)、Caddy 反代 + 自动 TLS + *.dora.restry.cn 泛解析、自建 sing-box/VPN + 路由器透明代理。所有 MVP 都跑在 localhost 高位端口,Caddy 自动接管 TLS。

解决什么问题

个人项目散在 10+ 个域名上,手动签 cert / 配 Nginx / 改路由要烦死。Caddy 泛解析 + 自动 TLS 让新增项目 = 起个端口 + 在 Caddyfile 加一行。外网 push 网盘 + 内网 sync-pull 落 Git的双端文件同步把内外网打通。研发任务在飞书可视可管,把外部研发系统状态拉进个人日常使用的飞书。

底盘做法
  • localhost 高位端口 + Caddy 自动 TLS — 新增项目改一行 Caddyfile,证书自动签
  • 外网 push / 内网 sync-pull 双端同步 — 大文件先扔网盘,内网定时 pull 落 Git 目录
  • 跨机器技能同步 + 密钥泄露清理 + 定时体检 — 全套基础运维让 AI 代劳,过去找运维的活基本不用人
Azure VMCaddysing-box/VPNiptablespm2
№ 18 ● 标准化

claude-mem / PROJECT_MEMORY

每个仓库自带「这个仓库踩过哪些坑」—— Claude Code 进目录自动读
  • 9 仓库
    已采用此模式
  • 4 节
    ADR / known-bugs / deploy-notes / quick-ref
  • 和 wiki 互补
    全局 vs 单项目深度
PROJECT_MEMORY.md仓库根 · Claude Code 自动加载 .claude/memory/细分文件目录
EDSO
这是什么

仓库内置的 AI 记忆机制。每个仓库根放一份 PROJECT_MEMORY.md + .claude/memory/,记录该仓库的 ADR / 已知 bug / 部署注意。Claude Code 进入工作目录自动读,AI 不需要每次问「这个项目怎么部署 / 有哪些坑」。

解决什么问题

Wiki 是全局知识,但有些坑是仓库特有的(特定版本 bug、自定义部署脚本、内部约定)—— 全部塞进 wiki 会污染全局检索。PROJECT_MEMORY 跟着代码走,跟着仓库 clone,Claude Code 工作时第一时间读到。和 sync-skill 互补:全局技能走 sync-skill,项目特有坑留在仓库。

文件结构约定
  • 按节分 — ADR / known-bugs / deploy-notes / quick-ref 四节,Claude Code 按需 grep 节而非全文
  • 沉淀优先级 — 项目特有坑写仓库 PROJECT_MEMORY,跨项目坑写 wiki,跨机操作写 skill
  • 和 Hermes wiki 双轨 — wiki 跨项目跨机器,PROJECT_MEMORY 单项目深
Markdown 约定Claude Code 自动加载
№ 31 ● 活跃迭代

Claude Code MCP Bridge

Hermes 调 Claude Code 从 "spawn 进程" 升级到 "MCP 客户端" — 派出去就别管, 完事自动飞书通知
  • spawn → MCP
    主控调度架构升级
  • 6 工具
    run / status / wait / cancel / list / forget
  • 12 天
    5-31 fork → 6-12 反向通知 + dashboard API 落地
Restry/claude-code-mcp-bridgeGitHub · MIT npm 待发等 npmjs token 重置 HTTP :39213本地 daemon / dashboard event stream
F
这是什么

把 Claude Code CLI 包成一个 MCP server 给 Hermes(或任何 MCP 客户端)用。Hermes 派 CC 不再 spawn(claude -p ...) 然后阻塞等输出,而是 mcp_cc_claude_run() 立即返回 task_id, CC 在后台跑, 完事走 notify_target 直接发飞书话题。task 持久化跨 Hermes restart, 多 MCP client 共享同一 daemon。

解决什么问题

老式 claude -p 是同步 spawn: Hermes 必须等 CC 跑完才能干别的, CC 一跑 30 分钟 Hermes turn 就死。还有裸 shell 起 CC 拿不到 ANTHROPIC_BASE_URL(.zshrc 只 interactive 加载, login shell 拿不到), CC 启动直接 "Not logged in"。MCP bridge 一次解决: 异步派出 + 跨 client 持久化 + env 在 daemon 启动时锁定 + 完事自动通知。

近期重要变化
  • 6-10 跑通 Hermes 接入 — config 加 mcp_servers.cc, 真派 1+1=2 8s 通过, 6 工具全活; patch adapter 加 CLAUDE_BIN 支持解 nvm PATH 问题。
  • 6-11 飞书反向通知打通notify_target 字段携带 anchor_msg_id, daemon 在 CC 任务终态时直接调 lark-cli 把 "✅ 完成" 卡片回到原话题。本质上把"派 CC"变成异步指令 + 远程回执。
  • 6-12 dashboard API 三件套GET /api/sessions/all + GET /api/sessions/transcript + per-task recent_events, 为僚机驾驶舱(№32)的 CC action stream 实时面板供数。
  • 6-13 写权 RCA — Pi/CC 事件不再写 Hermes 的 SQLite, 看板不再撞车;per-target lark_home 让 shared daemon 用调用方身份发通知。
  • 跨平台守护 — case-insensitive root match for macOS/Windows;launchd 模式下注意要往 plist 注入 ANTHROPIC_* env(否则 CC 拿不到 BASE_URL)。
洞察
  • 派出去 + 不阻塞 + 自带回执是 agent 调用 agent 的三件套。spawn 范式只满足第 1 条, MCP 把后两条补齐。
  • 把 CC 的 env (ANTHROPIC_*) 锁在 daemon 启动时刻,比让每个 CC 进程自己读 .zshrc 靠谱百倍。这是 06-10 调通 launchd 守护时学到的硬道理。
MCP ProtocolClaude Code CLINode.js + TypeScriptstdio transportHTTP :39213lark-cli notifier
№ 32 ● 运营中

僚机 Wingman + 驾驶舱 Cockpit

把 Hermes / CC / Pi 多任务流监听起来 — haiku 5s 节流摘要, 自动飞书通知 + 本地 Web 看板
  • 74 commits / 6 天
    从 0 到三段式架构
  • Source / Summarizer / Notifier
    6-13 大重构 — 多 source 分层
  • 192.168.1.142:7421
    本地驾驶舱 · watchtower 暖米色
项目详情立项→重构→架构 ~/projects/wingmanfanout consumer · 74 commits ~/projects/cockpitWeb 驾驶舱 · monorepo 6 包 @ccpark/daemonnpm published
F
这是什么

监听 Hermes 主控 / Claude Code / Pi 三路 agent 任务流, haiku 5s 节流抽出"在干什么 / 等什么 / 卡哪了"的人话摘要。两个出口: ① 飞书话题里发"✅ 完成 · X 分 Y 秒 · summary"一行卡片 ② 本地 Web 驾驶舱 192.168.1.142:7421 三段式分组(需要你看 / 进行中 / 已完成), 暖米色 watchtower 风格 + 移动端 swipe-down 关详情 + 快捷回复按钮。

解决什么问题

单台 Fries 上同时跑 N 个 agent 任务时, 完成消息混在飞书消息流里看不过来, 卡了不知道在等什么决策, 老话题翻起来累。僚机的角色就是"司令的副官": 不是要替你做决定, 是要把"现在有几个待你拍板的 + 几个还在跑的 + 完事的"始终保持一目了然。Web 驾驶舱补足"完整态" — 飞书话题翻到第 30 个就乱, 驾驶舱永远是 4 格统计 + 卡片墙。

近期重要变化
  • 6-09 wingman → cockpit 转向 — 飞书卡片体验差(刷屏), 砍掉, 改 FastAPI 单文件 Web 看板 + 移动优先双栏。done 通知改为 messages-reply --reply-in-thread 发一行 "✅ 完成 · X分Y秒"。
  • 6-10 cockpit v11 主次倒置 — 进展 19px serif 当主角 / 判断 13px 副位 + 4 色状态渐变 + 1h 自动折叠 + 移动端 swipe-down 关详情 + 快捷回复按钮(parser 抠 A:/B:/1./是否 5 种格式, POST /api/respond 走 lark-cli 代发)。
  • 6-12 cockpit monorepo baseline — 6 包零 typecheck 错误; @ccpark/daemon 真 wrap claude CLI;persist relay state in sqlite。
  • 6-13 三段式架构重构 — Source(Hermes/Pi/CC 分层) + Summarizer(Haiku) + Notifier(Lark) 完全解耦, 旧 daemon/worker 删掉; HaikuResult frozen+slots; CC 事件不再写 Hermes SQLite — 看板和主控状态库再不撞车。
  • 6-14 三段式卡片墙 + 中转网关 fallback — UI 落地三分组; haiku 调用失败时走中转网关兜底。
洞察
  • "小 LLM 中间层"是 agent UX 的关键中转。把"原始事件流 → 人话摘要"用 haiku 5s 节流挡一层, 主模型/通知层只面对 readable summary, 不被 raw event 淹。
  • 飞书做"快讯", 自家 Web 做"全景" — 强制把"即时一条通知"和"完整任务态"两种交互拆开。试图在飞书卡片里塞驾驶舱必败(刷屏 + 状态不一致)。
  • 多 source 必须共用一个 SQLite 才会撞车。6-13 把 Pi/CC 拆出去用自己的 DB, 看板立马清爽 — 数据所有权边界要清。
Python · FastAPISQLiteClaude Haiku (节流摘要)launchdlark-clipnpm monorepo (6 包)@ccpark/daemon (npm)

产品 · 6 个

端到端给人用的工具

№ 19 ● 生产运营

cspy / nexora-loop

微信公众号 → 多 bot 智能客服 + 工单 —— 一句话找对人 / 跨轮上下文不丢
  • 18 bot
    3 客服 + 1 工程师 + 14 internal
  • 19.8s
    WS sendAndWait 端到端
  • 5 脚本
    部署后必验 smoke
EDS
这是什么

微信服务号智能客服 + 工单系统。用户在公众号发一句「我订单怎么样」,系统自动找对的 bot 答(18 个 bot 各管一摊业务),跨多轮对话保持工单上下文,admin 控制台能看到所有对话 / 工单 / feature 进度。

解决什么问题

小公司没专职客服,公众号留言爆掉接不动。手动答复慢、没工单系统沉淀、用户体验跟大公司没法比。cspy 把「公众号收消息 → AI 分诊 → ESCALATE 升级 → 自动派工程师 bot → admin 审核 → 推回用户」串成一条龙,运营 0 人 24h 在线。

关键工程
  • MM bot 流式协议 v2 — per-channel max(update_at) + 30s static window + pickFinal 倒序找首个非空 post,端到端 19.8s
  • WS 取代 polling — lib/mm/ws-client.ts 单例 + lazy connect + 重连指数退避 1→30s + 抖动 + MM_WS_DISABLE=1 escape hatch
  • SSE 推前端 typing 动画 — streamingKey=clientMessageId,server action 在 background 跑不阻塞
  • 5 个 smoke 脚本必跑 — 部署后 curl 各关键路径,否则不放行
Next 16React 19TurbopackPrisma v6NextAuth v5Mattermost WSSSEvitest
№ 20 ● 自习中

Prism / stock-dashboard

股票监控 + 6 维大师加权评分 —— 脚本是事实源 / LLM 只做 reason 润色 · 个人财务自习项目
  • 4 标的
    活跃监控 · 港 + A + 美股
  • 386+ 快照
    3 分钟 cron 持续
  • 硬护栏
    单日 ≤3 笔 / 加仓 ≤ 20% / 新开仓 cap
stock.eagle.openclaws.co.ukDecisions Dashboard 硬护栏单日 ≤3 笔 / 仓位 / 价格 / decision 枚举 9 股神 cron长期跑 + health-check 守卫
ED
这是什么

股票监控 + 模拟交易决策系统。Cron 3 分钟拉行情快照,配 9 个「股神 cron」(巴菲特 / 芒格 / 林奇 / Cathie Wood / 达摩达兰 / Druckenmiller / Ackman 等)按 6 维加权打分。所有 buy/sell decision 走硬护栏,不让 AI 抽风下大单。

解决什么问题

让 LLM 直接判股票买卖太容易抽风。Prism 把工程边界画清楚:脚本是事实源(拉行情、跑公式、写入库),LLM 只负责把决策 reason 用人话写出来 + 多维评分加权。所有金额操作走硬护栏(单日 ≤ 3 笔 / 加仓 ≤ 20% / 新开仓 cap),被拒错误信息带 max_shares ≈ N 提示让 LLM 下轮自动合规重试。

决策架构
  • 6 维加权 — 基本面 25% (巴菲特+芒格) / 增长 20% (林奇+Cathie Wood PEG) / 估值 25% (达摩达兰 DCF) / 技术 15% (Druckenmiller MA/RSI/MACD) / 情绪 10% / 风险 5% (Ackman)
  • 硬护栏 — 单日 buy/sell ≤ 3、加仓 ≤ 持仓 20%、新开仓 notional cap (HK 50k / CN 30k / US 5k)、价格 ±5%、decision 枚举
  • 多源 fallback — 港股切腾讯主源 + Yahoo fallback(4-23)—— Yahoo HK regularMarketPrice 开盘后持续返昨收
PythonSQLiteNext.js dashboardAnthropic 经 Copilot ProxyHermes skills
№ 21 ● 已沉淀进 cspy

wechat-bot-tickets

cspy 前身 · 独立 product memory —— 工单 schema + 状态机的最小可用验证
  • 5 态
    open/pending-user/pending-agent/resolved/escalated
  • 演化
    经验直接灌进 cspy/nexora-loop
  • 最小可用
    证明这条路可走
独立 product memory记录 cspy 之前的探索
E
这是什么

cspy 之前的微信 bot 工单实验。早于 cspy 验证「用户一句话 → 自动找对 bot + 工单上下文绑定」这条路可行。沉淀了 ticket schema、跨轮上下文绑定、5 态状态机,这些经验直接迁移到 cspy / nexora-loop。

为什么单独留档

作为 product memory 单独留档,记录「为什么 cspy 这么设计」的源头 —— 任何后来人接手 cspy,能看到设计决策的来龙去脉,不是凭空跳出来的。是「先做最小可用,验证可行,再写正式版」这套节奏的标本。

核心结论
  • 工单状态机 5 态足够 — open / pending-user / pending-agent / resolved / escalated 覆盖 90% 场景
  • 跨轮上下文按 ticket_id 绑 — 不靠 session,而靠 ticket,避免用户切换设备就丢上下文
  • 沉淀为最小可用方案 — 证明「微信公众号 + bot 工单」这条路可走,cspy 才敢投资源做正式版
Node.js微信公众号SQLite
№ 22 ● 活跃迭代

Image Studio

Azure GPT-Image-2 · AI 出图能力自学产物 —— 从"能出一张图"到 chat + 画布 + 参数矩阵完整链
  • Azure GPT-Image-2
    国内可用 · 绕开 OpenAI 直连支付
  • chat + 画布
    streaming + tool calling + 真实比例
  • 积分系统
    注册门槛挡批量薅
项目详情完整里程碑 design.mvp.restry.cn主入口域名 Prompt 库分模型 + 分场景
DO
这是什么

基于 Azure GPT-Image-2 的 AI 出图能力自学项目。从"能出一张图"演进到 chat + 画布 + 参数矩阵 + Prompt 库 + 多模型选择的完整链。学习点覆盖: Azure OpenAI 端点接入、streaming chat + tool calling、chat 与画布的信息架构、aspect_ratio × quality 参数覆盖、图片编辑多图参考。有前端注册/积分/充值只是把自习产物"包装成能给别人玩玩"的完整原型,不代表定位为商业产品。

解决什么问题

国内设计师 / 推广号要用 AI 出图:OpenAI 国际版要折腾信用卡 + 网络、本地跑 Stable Diffusion 要算力 + 模型选型、Midjourney 月费犹豫。Image Studio 给一个一站式入口 —— 微信扫码登录、微信支付充值、按张扣积分。后端用 Azure GPT-Image-2(国内可用),按场景拆 vertical。

核心做法
  • 选 Azure GPT-Image-2 当底层模型 — 绕开 OpenAI 直连的支付 / 带宽问题,国内能直接用
  • 从「偶尔生成一张图」升级为「可运营的内容生产工具」 — Prompt 库、模型选择、注册积分一并做
  • 积分系统 + 注册门槛挡批量薅 — Azure 出口图片成本可控,不会被白嫖打穿
Azure GPT-Image-2Next.jswx-gateway 接入
№ 23 ● 日常使用

围绕孩子的成长与教育

AI 不只是工作工具 —— 深度嵌入育儿:成长档案 / 职业认知 / 健康问答 / 课程提醒
  • 3 岁
    儿子长期成长档案
  • 汪汪队
    互动剧 · 语音/职业/场景
  • cron 课表
    上课定时提醒
薯条成长平台平台名复用 agent 角色「薯条」 家庭健康问答舌苔积食 / 植物识别
O
这是什么

AI 已经深度嵌入育儿,不是单纯的工作工具。涵盖给 3 岁儿子的成长档案系统、汪汪队职业认知互动剧(带语音 / 分职业 / 分场景)、舌苔积食判断 + 植物识别 + 平衡车比赛兴趣记录、上课提醒 cron 课表。

为什么单列一个项目

2026 上半年最重要的转变之一:AI 从「我用来干活」变成「我和家人一起用」。这一组项目证明 AI 已经能在家庭场景里产生实际效用,不是 demo 不是炫技 —— 是真的省事 + 解决问题。对应「AI 嵌入生活的真实程度」这个底层指标。

真实使用场景
  • 薯条成长平台 — 给 3 岁儿子的长期成长档案,平台名直接复用 agent 角色「薯条」
  • 汪汪队互动剧 — 自制低幼教育小应用,带语音、分职业、分场景,孩子真在玩
  • 日常健康问答 — 看舌苔判断积食、识别植物、记录孩子兴趣(比如平衡车比赛进展)
  • cron 课表提醒 — 把孩子周课表做成定时任务,提前 X 分钟自动提醒
cronOpenClaw本地小应用
№ 33 ● 活跃迭代

LongCut · 长视频学习

把长 YouTube / B 站视频自动剪成"主题精华片段" — AI 在 1 小时纪录片里找你要的 10 分钟
  • YouTube → 多平台
    6-10 加 Bilibili adapter 抽象层
  • BV API wbi 签名
    B 站隐式签名实调通过
  • Next.js 15 · Turbopack
    smart / fast 双模式 + 主题选择
~/projects/longcutfork 自上游, 多平台改造中 lib/video-platforms/4 文件 · 仿 ai-providers 抽象层 17 migrations内网 PG 真验证通过
F
这是什么

Next.js 15 app, 输入一个长视频 URL(YouTube / 现在加上 Bilibili), AI 自动从 transcript 找出"分散在全片各处但同一主题"的精华片段, 生成可点播的 highlight reels。Quote matcher 用 Boyer-Moore + n-gram 把 AI 摘要精确定位回原 transcript 时间戳;chat / notes / summary 三路 tab 并行。

解决什么问题

长访谈 / 纪录片 / 课程录像里"你真要的 10 分钟"散在 60 分钟各处, 1.5x 倍速也看不完。LongCut 让 AI 先看完全部 transcript, 按你选的主题(例: 这场播客里只看 "AI agents" 那段)给你 5 段精华 + 准确时间戳 + 可点跳转 + chat 问。fork 上游做国内平台支持(B 站) — 长视频学习这事在国内的 95% 内容池才能盘活。

近期重要变化
  • 6-10 Bilibili platform 适配 Round 1 — DB migration youtube_id → video_id rename + 加 platform 列 + 复合 unique;新建 lib/video-platforms/ 抽象层(仿 ai-providers);4 route 切到 adapter 接口;BV API wbi 隐式签名调通过。
  • 6-10 Round 1.5 真验证 — 派 CC 在内网 PG(claw-bot 192.168.1.235:15432 test-postgresql)跑完整 17 个 migration 真验证, 不是 self-report;admin 密码漂移已 ALTER 复位。
  • 6-11 Phase 4 UI platform wiring — VideoPlayer wrapper + BilibiliPlayer + BV slug 解析。
  • 跟上游分流 — 抽象层用 fork 友好的方式(ai-providers / video-platforms 双 registry), 后续合并新功能不冲突。
洞察
  • "fork 海外 OSS 改国内适配"是合理路径但要先建抽象层。先把 platform 解耦成 adapter, 再加 Bilibili — 不然每个新平台都要改一遍核心路径, 上游一更新冲突爆炸。
  • "派 CC 自报 = 不能信"。Round 1 完成后必须 Round 1.5 在真实数据库跑一次 migration 验证, self-report 不算数。
Next.js 15 · App RouterTurbopackSupabase AuthBoyer-Moore + n-gramMiniMax / Grok / GeminiPostgres (内网测试)BV wbi 签名

真实业务侧演练 · 2 个

在有真 deadline 的业务里演练 AI 协作 —— 学习焦点是流程 / SOP / 工具链, 不是业务本身

№ 24 ● 演练中

PackHorizon / PackHorizonAi

在真实业务里演练 AI 从 coder → product analyst 的角色升级 —— 学习焦点是怎么用 Browser Agent 跑端到端测试 + 用 AI 梳理产品全貌
  • Azure VM
    测试环境部署
  • Browser Agent E2E
    report-v2 浏览器测试 + 4 类盲区
  • AI 角色升级
    从写代码 → 梳理产品全貌
pack.restry.cn业务侧入口 REPORT_GENERATION_FLOW方案对比文档
S
这是什么

PackHorizon 是公司业务侧的包装报告产品(pack.restry.cn),本站关注的不是产品本身,是在这个真实业务里演练 AI 协作流程: 围绕 report-v2 报告生成做方案对比 + Browser Agent 浏览器测试 + 4 类盲区扫描 + 端到端主流程画像。

AI 角色升级

5 月起 AI 协作从「写代码」升级到「帮梳理产品全貌」—— 核心痛点是「流程不清晰、产出零散」。AI 角色不再是 coder,而是 product analyst: 读 REPORT_GENERATION_FLOW 文档 → 给出方案对比 → 用 Browser Agent 跑端到端测试。学习点是AI 在真实业务里能扮演的角色边界

核心做法
  • Browser Agent 跑真实端到端测试 — report-v2 浏览器测试 + 4 类盲区扫描,不是 demo
  • 方案对比走文档 — REPORT_GENERATION_FLOW.md,对几个 report 生成方案的优劣面对面摆开
  • 在真实业务里验证 AI 工作流 — 有真 deadline 才知道流程能不能扛住
Clawline Browser Agent E2EAzure VMREPORT_GENERATION_FLOW 文档
№ 34 ● 运营中

选图科技云摄影 · seenlens

自习交付第一次跑通全流程 — 人像摄影 web demo, slogan「照见你的美」, 4 周节奏走完
  • 自习交付
    第一次真按客户交付节奏走完全程
  • 19 commits / 7 天
    6-05 立项 → 6-12 上线 ~6 次部署
  • PRD v0.7
    飞书 wiki 3 篇全程跟单
F
这是什么

人像摄影服务的微信小程序前的Web demo, 预览设计 + 验证信息架构。slogan「照见你的美」(Seen + Lens), repo 英文 seenlens。React 19 + Vite 6 + Tailwind v4, 部署在 mvp-deployer。需求 / PRD / 设计 / 决策全在飞书 wiki, 不在 GitHub — 用 mattpocock setup-matt-pocock-skills 把 issue tracker / triage / domain 接口换到飞书。

解决什么问题

半年内所有项目都是自用 / 给同事 / demo, seenlens 是第一次真按客户交付节奏走完全程 — 有真 deadline、需求会变(从 4 步合作模式 → 福利/服务/场景三段 → 精简 3 模块)、PRD 要落档、设计稿要交付、上线要真 redeploy。「用 AI agent 把项目从需求到上线走通」这条路第一次跑通 — 7 天内 PRD 从 v0.5 → v0.7, 当天 6 次部署上线。

近期重要变化
  • 6-05 立项 + PRD v0.5 — 8+3 条范围(人像场景 / slogan / 4 周 / 只北京);用 Azure img2 出品牌识别单图, 莫兰迪定稿。
  • 6-08 三 Tab 信息架构定型 — 首页 / 作品 / 关于;管理后台齿轮入口加 5 模块;踩到 mvp-deployer "build 成功但 smoke 502 自动回滚" 的坑, 手动修后新 bundle 上线。
  • 6-10 → 6-11 四轮 UI 重做 — hero 全屏 7 张轮播 + Cormorant Garamond + Noto Serif SC + Playfair 三套远程字体 + 删 8 Years/最新动态旧版/首席摄影师 + 加合作模式 4 步 + 通栏横幅(君谊中学/协和医院/腾讯年会);第 3 个 Tab 定稿"合作";作品页全屏 Lightbox;管理后台 5 模块。
  • 6-12 改名 + 精修 — 仓库重命名 xuantu-demo → seenlens(repo + pm2 + 服务器路径), 域名保留 xuantu.mvp.restry.cn 兼容客户书签;新增「服务理念 + 6 大特色 + 4 类客群 + 福利」段;作品页两组照片自动 fade 切换。
  • 飞书 wiki 3 篇 — index(rev67) / 需求(rev65) / PRD(rev14), 用 grill-with-docs 流程多轮 grill 出 Q1-Q6 PRD §6 砍掉技术实现。
洞察
  • "客户的需求会变 7 次", 必须接受这是常态。当天 6 次部署不是 bug 是 feature, 关键是基建(mvp-deployer)能承接, PRD 能跟得上, 飞书 wiki 当 issue tracker 比 GitHub Issues 顺手得多。
  • repo 英文名 ≠ 客户中文名。改成 seenlens 后内部代码爽、客户视角不变(域名保留 xuantu + 客户文案不改)。这是给"未来开源 / 给他人接手"留余地。
  • mattpocock skills 接飞书 — 把 issue-tracker / triage / domain 这些通用 skill 的"GitHub-first"假设换成"飞书-first", 第一次跑通能用。这套模板可以复制给后续每个客户项目。
React 19 + Vite 6Tailwind v4mvp-deployer (PM2)飞书 wiki (issue tracker)setup-matt-pocock-skillsCormorant Garamond / Noto Serif SC

实验 / 想法 · 7 个

实验室或想法阶段

№ 25 ● 一周冲刺 · 已上线

ClawCraft

OpenClaw RTS 风格游戏化控制台 —— 一周从立项到 HTTPS
  • 一周
    3-11 立项 → 3-16 HTTPS 上线
  • 10 轮辩论
    GPT-5.4 自动架构辩论 → 定方案
  • 100% 覆盖
    vs OpenClaw 28/54 → 路线图 62%→100%
D
这是什么

把多 Agent 系统做成等距网格 RTS 控制台 —— 像 StarCraft 那样,每个 agent 是一个建筑,数据流是粒子轨道。一周从 PRD v1.0 → 6 轮视觉迭代 → Wave 3 上线 → Caddy SSL 绕开 sing-box 占 UDP:443。

解决什么问题

多 agent 系统的「看不见」问题:传统 dashboard 全是图表和列表,看不到 agent 之间的流动关系。RTS 隐喻把抽象的 multi-agent 互动具象化 —— 谁在工作 / 谁在等 / 数据从哪流到哪一目了然。验证了「用空间 / 图形而非文本对话 agent」的产品形态可行性。

一周冲刺记录
  • 3-12 GPT-5.4 10 轮架构辩论 → 定方案:Plugin + React HUD + PixiJS + SSE
  • 3-13 6 轮视觉+UX 迭代 — 等距网格、3D 建筑、数据流连线、星空粒子;Gemini 3 轮手机端审查 15 条 P0/P1/P2
  • 3-15 10 轮自主迭代 — 围墙、数据流线、Agent 半圆、轨道动画
  • 3-16 Wave 3 + Caddy SSL — 绕开 sing-box 占 UDP:443,HTTPS 正式上线
React HUDPixiJSSSECaddy SSLdocker-registry
№ 26 ● 已沉淀进 cspy 设计

B2P Hackathon 5 bot 协作模式

黑客马拉松多 agent 协作复盘 —— cspy 18 bot 设计的源头
  • 5 bot
    黑客马拉松同台协作
  • 角色分工
    SKILL.md/soul + 共享 memory + role priority
  • 催生
    cspy admin 控制台需求
eagle-b2p.md10KB 完整复盘文档
E
这是什么

B2P 黑客马拉松上 5 个 bot 同台协作的完整复盘:角色分工 / 上下文同步 / 冲突仲裁 / 共享 memory 的踩坑全记录。后续 cspy 18 bot 设计的源头 —— 当时踩过的坑,cspy 全部避开。

核心结论

多 bot 同时改一个 ticket 时按 timestamp + role priority 仲裁,不允许后写覆盖前写。上下文同步靠中央 memory 拉,不靠 bot-to-bot 直连 IM(这点后来 Clawline 走了相反方向,发现两种都各有适用场景)。复盘出「多 bot 之间需要一个 admin 看板」的需求 → 直接催生 cspy admin 控制台。

三条沉淀
  • 5 bot 角色分工 — 每个 bot 有自己的 SKILL.md/soul,共享一份 memory 但写权限按 role 收口
  • 冲突仲裁 — timestamp + role priority,不允许后写覆盖前写
  • 催生 cspy admin 控制台 — 多 bot 间需要一个仲裁面板,这个需求直接成了 cspy 立项的核心动机之一
多 bot 协作共享 memoryrole priority
№ 27 ● 活跃迭代

Browser Agent

给 code agent 装上眼和手 — 一行 HTTP 直接驱动真实 Chrome
  • 1440 行
    从 5100 行重构压到 28% (-72%)
  • Midscene 1.8.9
    引擎升级 · 自研 agent 完全换掉
  • 2 月
    4-08 初版 → 6-04 v2 重构落地
EDS
这是什么

独立的 Chrome MV3 扩展 + Node native host + HTTP API(0.0.0.0:4821)。Hermes / Claude Code / Cursor 这种 code agent 一行 curl /v1/action 就能让真实 Chrome 点页面、查内容、跑 E2E。挂在用户日常 Chrome 上,自带登录态,不是 headless 沙箱。

解决什么问题

code agent 会写代码会推理,但对浏览器是瞎的 —— 看不见按钮长啥样、点不了登录后才出现的菜单、验证不了 UI bug。传统 Puppeteer / Selenium 要单独管 cookie、过 CI 反爬、维护无头浏览器。Browser Agent 直接挂在用户已经开着的 Chrome 上,自带登录态和真实环境,agent 一发 HTTP 就能驱动。

近期重要变化
  • 6-04 引擎大换血:扔掉自研 agent,全切 Midscene 1.8.9 — 自家 a11y tree + 自家 LLM loop 那一套在复杂 UI 上定位不准,全换成 Midscene 视觉定位。代码从 5100 行 → 1440 行(-72%)。
  • API 收口 — /v1 / /v2 临时并行了一周,6-04 收成只剩 /v1(Midscene 接口):/v1/{action, query, assert, tap, screenshot},每条对应 Midscene 一个原子能力。
  • Anthropic adapter — 给 Midscene 写了 OpenAI-shaped 适配层,能直连自家 Anthropic proxy,不用迁到 OpenAI 账号。
  • 真实生产场景跑通 — PackHorizon report-v2 端到端浏览器测试用它跑(含 4 类盲区扫描),不是 demo。
  • 多 sidepanel 并行 — 一个用户开多个 Chrome window 也能路由不冲突,per-task API key / model 覆盖,多 agent 同时跑互不打架。
洞察
  • 能用别人造好的轮子就别自己造。自研 a11y tree agent 跑了 2 个月一直定位飘,换 Midscene 视觉定位一周就稳了。早期为了"完全自主可控"造的轮子,后期 90% 价值都在被替换。
  • "挂在用户日常 Chrome 上"是不可复制的护城河。Puppeteer 解决不了"我要登录后的状态",cloud browser 解决不了"我家的 cookie",扩展形态恰好绕过两边。
Chrome MV3Midscene 1.8.9Chrome Debugger ProtocolNative MessagingrsbuildHTTP API :4821
№ 30 ● 想法阶段

可视化对话画布

AI 回复不只输出文字 —— 而是输出可持久化、可交互的视觉画布
  • 范式转移
    长文本 → 画布
  • 理论依据
    图比长文易理解
  • 候选立项
    Ottor 视角 · 留作下半年验证
想法阶段未立项 · 留作 H2 候选
O
这是什么

一个原创产品想法(Ottor 视角):AI 回复不局限于输出文字,而是输出可持久化、可交互的视觉画布(Mermaid / HTML Canvas)。用户能在画布上拖动、编辑、追加,AI 也能在画布上画下一轮。

核心洞察

人对图的理解远强于长段文字。当前 AI 产品都还是「长 prompt → 长回复」的文本范式,但实际上很多场景图比文字直接得多 —— 这是产品形态的范式转移。这个想法和 ClawCraft 的 RTS HUD 呼应:都在探索用空间 / 图形而非文本对话 agent

意义
  • 不止是用 AI,还在反思 AI 产品形态 — 从消费者切换到产品设计者视角
  • 留作 Ottor 视角原创思考 — 列入盘点,对外可作为下半年立项候选
  • 当前未立项 — 等 H2 有时间窗口再做小型 POC 验证
MermaidHTML Canvas想法阶段