assistant/docs/整体方案-v0.2.md

509 lines
56 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI 获客助手整体方案
版本:v0.2
整理日期:2026 年 10 月 21 日
最近更新:2026 年 10 月 22 日,参考 A2A 学习端,将已有的参数化、验证和版本管理细化为有界学习闭环。
本轮补充:学习端使用独立验证记录库;平台账号由商家在官方页面自行登录,按账号复用本地浏览器资料并核验会话。
工程实施补充:`browser_use` 的桌面壳等仍按第 4.4 节评估;根据当前实施决定,学习后台以 `D:\qiekj\PenguinUniOS-Workspace\projects\learning` 的适用模块为基础裁剪,接入本项目独立的 PostgreSQL 与 Playwright 工作进程,见第 5.8 节。
状态:已进入本机学习与验证后台基建。方案中的商家桌面端、真实平台适配、AI 与商业模块仍是后续工作,不能将后台基础功能视为整个获客产品完成。已确认事项、实施建议和待验证选择在第 13 节分别记录。
维护约定:每轮实际进展与验证结果追加到 [开发进度](开发进度.md);优化、设计决定和优先级维护在本方案,近期实施顺序见第 14 节。进度文档记录事实,不用规划替代完成证据。
交互图解:[方案图解](方案图解.html),包含系统架构、获客流程、学习发布、AI 与额度、任务恢复、登录会话和实施阶段。设计调整时同步维护文字与图解。
## 1. 建议采用的整体路线
产品由三部分组成:**商家安装的桌面端、我们维护的学习与链路开发工具、云端 AI 与商业后台。**
桌面端负责账号登录、浏览器操作、任务运行和线索管理;学习工具负责把平台操作变成经过验证的能力包;云端负责模型调用、软件权益、订单和额度结算。
第一版明确同时适配 Windows 和 macOS,两端按同一业务范围开发、验证和发布。第一条学习链路已选定小红书「搜索笔记 → 详情 → 评论读取」;先验证本机演示页的基础链路,再由维护者在官方页面自行登录后进行实际适配。正式首发平台取决于验证结果,抖音、快手及手机执行端后续分别评估。
桌面框架采用 Electron,界面采用 React + TypeScript。浏览器侧以 Playwright 固定执行为主线,围绕当前产品需要设计能力契约、定位、等待和状态核验。当前已决定采用 A2A 学习后台的适用模块;其他 A2A 与 browser_use 资产仍按需选择。Midscene 是可选辅助组件,在出现明确定位或视觉需求后再对比引入,不作为首版必选依赖。
本地存储建议采用 SQLite,新增执行器建议采用 Node.js/TypeScript,云端数据库建议采用 PostgreSQL。云端可采用现有测试工程的 FastAPI 认证与管理骨架,再新增本项目的 AI、权益与计量模块;这项选择在基础模块提取验证后确定,不再将服务端统一使用 TypeScript 作为建议前提。实现选择以当前需求、验证效果和双端分发维护成本为依据;具体依赖版本在原型通过后固定。
模型由我们在运营后台按用途配置,客户端不绑定具体厂商或版本。基础分析优先验证较低成本模型,复杂复核和视觉操作分别配置,均有独立预算。
这是一套围绕获客业务组织的产品。正常运行的链路、参数和分支由程序控制,模型负责内容理解和少量需要重新理解页面的步骤。
## 2. 商家使用过程
1. 安装软件,登录我们平台的产品账号。
2. 添加平台账号,在软件打开的独立浏览器中自行扫码,或在平台官方页面输入手机号和验证码完成登录。软件核验登录状态和账号后保存本地账号映射;再次运行先检查原会话,失效时再请商家登录。
3. 创建商品档案:商品、使用场景、服务地区、客户类型和排除条件;未设置的地区等条件不自动补齐。
4. 配置搜索关键词或推荐流入口、任务范围、预算及跟进方式。
5. 启动任务,查看候选视频、主页判断、评论线索和筛选依据。
6. 对匹配对象执行配置的关注、私信及后续跟进任务,记录结果。
7. 查看任务报告、已用分析额度和后续回复。
第一版建议提供账号、商品档案、任务、线索、跟进、用量六个主要页面。链路开发和模型调试放在维护工具中,商家主要配置业务条件。
自动关注和私信继续保留为产品目标。研发顺序先验证发现与筛选,再验证跟进动作;首版正式开放范围依据验证结果确定。
## 3. 业务主流程
保留关键词搜索和推荐流浏览两个入口,首轮先完成搜索入口。内容判断后分成同行商家和采购方两条路径。
```mermaid
flowchart TD
A[商品与目标客户条件] --> B[搜索或浏览视频]
B --> C[内容相关性判断]
C -->|不相关| B
C -->|相关或需要上下文| D[读取主页与相关作品]
D --> E{账号角色与需求}
E -->|同行商家| F[读取相关视频评论及回复]
F --> G[评论采购意图判断]
E -->|作者有采购需求| H[核对需求与商品条件]
E -->|信息不足| I[待判断]
G --> J[线索去重与依据保存]
H --> J
J --> K[关注与私信任务]
K --> L[核对结果并记录后续回复]
```
内容相关不代表有采购意图。同行身份也不排除采购需求,例如面向经销商销售的商品。一个账号可以有多个角色标签,业务分支按当前需求决定。
## 4. 系统如何分工
```mermaid
flowchart LR
subgraph DEV[维护者环境]
LEARN[限定目标并观察取证] --> KNOW[字段、状态、分支与缺口]
KNOW --> CANDIDATE[候选能力与验证用例]
CANDIDATE --> CHECK[固定规则校验]
CHECK --> VERIFY[变参试跑与结果核对]
VERIFY --> PKG[发布不可变能力版本]
VERIFY -. 验证失败后修订 .-> CANDIDATE
end
subgraph LOCAL[商家电脑]
UI[Electron 商家界面] --> RUN[任务与链路执行器]
RUN --> ADAPTER[平台适配器]
ADAPTER --> PW[Playwright 浏览器驱动]
PW --> BROWSER[按账号隔离的浏览器]
RUN --> DB[SQLite 任务与线索记录]
RUN -. 按需评估 .-> MS[可选 Midscene 辅助]
MS -.-> PW
end
subgraph CLOUD[云端服务]
API[账号与权益 API] --> LEDGER[订单与额度账本]
CONFIG[运营后台模型配置] --> AI
AI[AI 网关] --> MODEL[文本与视觉模型]
AI --> LEDGER
RELEASE[能力包与客户端版本发布]
end
PKG --> RELEASE
RELEASE --> RUN
RUN -. 失败证据回流维护端 .-> LEARN
UI --> API
RUN --> AI
MS --> AI
```
这张图表达职责,不表示首版需要拆成许多独立服务。云端可以先用一个应用和一个 PostgreSQL 实例;本地用一个桌面程序配独立执行进程。
### 4.1 桌面端
桌面采用 Electron,界面建议使用 React + TypeScript,Windows 和 macOS 共享界面、任务、平台链路及 AI 客户端代码;应用目录、系统凭据存储、进程管理、菜单快捷键、安装与升级通过小范围系统适配处理。界面用于配置、查看和接管;浏览器任务放到独立执行进程,避免耗时操作阻塞界面。新增执行代码建议采用 Node.js/TypeScript,界面通过受限 IPC 调用任务能力。只有某个外部组件有明确价值并通过验证时,才按需增加其他运行时和进程适配。
第一版建议控制独立、可见、可最大化的浏览器窗口。商家登录时像使用普通浏览器一样操作,登录完成后回到软件控制台。Electron 的界面窗口和被自动化控制的平台浏览器是两部分;后续若要将平台画面嵌入软件内容区,需要另行验证会话和执行器接入。
现有测试工程已实现 WebContentsView 宿主、面板布局和人工接管,因此将内嵌浏览器列为首版可验证的替代方案。先验证它与本项目固定执行器的接入、官方页面人工登录、账号会话复用、收起及截图行为,再决定是否采用;验证前保留独立窗口作为当前主线。采用其桌面壳不要求同时采用内嵌宿主、Python 本地后端或 browser-use Agent。
该进程划分参考 [Electron 官方进程模型](https://www.electronjs.org/docs/latest/tutorial/process-model)。打包、进程退出和浏览器生命周期都需要在 Windows 与 macOS 安装包中分别验证。
构建目标建议覆盖 Windows x64、macOS Apple Silicon(arm64)和 Intel(x64)。最低系统版本在锁定 Electron、Playwright 和浏览器版本后明确,以各依赖支持范围的交集为准,不直接承诺所有历史 Windows/macOS 版本。参考 [Electron 支持平台](https://github.com/electron/electron#platform-support)与 [Playwright 系统要求](https://playwright.dev/docs/intro#system-requirements)。
安装包按目标平台及架构产出,例如 Windows 安装程序和 macOS DMG。各端构建、签名与 macOS 公证、升级和回滚分别建立流水线;SQLite 等原生依赖和配套浏览器也按平台、架构准备。共享业务代码不意味着一份二进制安装包直接用于所有系统。分发方式参考 [Electron 官方打包说明](https://www.electronjs.org/docs/latest/tutorial/application-distribution)。
### 4.2 浏览器与账号
固定执行层负责打开页面、点击、输入、滚动、等待和读取,首选 Playwright,按本项目的能力契约封装与验证。一个运行会话明确由一个驱动持有。每个平台账号绑定独立的浏览器数据目录,保留其登录状态。产品账号、平台账号和浏览器目录分别建模。
**登录交互。** 商家在软件管理的浏览器中打开平台官方页面,自行扫码或输入手机号、验证码等登录信息。我们的产品账号界面不索取这些平台登录信息,也不代收验证码。登录阶段业务执行器暂停动作,商家持有操作权;登录判定只读取必要的已登录页面标志及账号标识。手机号、验证码和密码不进入业务数据库、日志、学习证据或模型输入。
**登录成功的判据。** 等待平台完成登录跳转,并检查可用的已登录页面标志和可靠账号标识,绑定到本地账号记录。二维码消失、登录弹窗关闭、已有 Cookie 或数据库上次记为已登录,都不能单独证明当前账号有效。身份不明、与任务预期账号不一致或仍需验证时,保持等待处理。具体判据按平台学习、验证和维护。
**登录后的窗口。** 首选在同一浏览器会话中从人工操作移交给执行器,登录完成后回到控制台;可最小化浏览器继续执行,提供重新显示和接管入口。最小化对视频加载、读取和任务推进的影响在 Windows/macOS 分别验证;未验证前保留可见执行方式。关闭整个浏览器会结束当前执行会话,运行端应暂停任务并保存检查点,不能把关闭窗口视为浏览器仍在执行。首版不将可见登录后自动切换无头运行作为默认流程。
**下次如何复用。** 每个账号分配固定的专用资料目录,使用 Playwright 的持久化上下文打开同一目录,保存浏览器支持持久化的 Cookie 和本地存储等资料。目录位于应用本地数据区,与安装目录分开;正常重启、任务结束和客户端升级保留目录。SQLite 保存账号标识、目录引用、会话状态和最后核验时间,平台登录资料由浏览器管理。
如采用内嵌浏览器,由 Electron 的稳定 `persist:` 会话分区保存资料,执行器连接该宿主的实际页面目标;上层仍按本地平台账号映射会话引用。独立浏览器目录和 Electron 分区是两种存储实现,不把登录页放在一个会话、执行页另建到空白会话,也不依赖复制两种实现的 Cookie 来切换。现有测试工程在新建会话时追加随机标识,需改为稳定的账号作用域,并保留身份核验、控制权与账号互斥规则。
新任务先复用已有浏览器会话;需要重开时先正常关闭并释放原会话,再用同一目录启动,打开页面核验账号和登录有效性。资料保留且平台会话有效时可直接执行,不需要每次重新扫码。平台会话到期、退出登录、资料清理或平台要求重新验证时,进入等待登录;不承诺永久免登录,也不设未经实测的有效天数。不同设备及 Windows/macOS 各自建立和验证会话,不将资料目录直接复制作为登录迁移方案。
一个平台账号同一时间由一个执行任务持有,暂停接管时移交控制权,避免人和执行器同时操作。同一数据目录不得被多个浏览器实例同时占用。
首版可先运行一个平台账号,但数据结构从开始就保留账号标识。登录失效进入等待登录状态,完成登录并核验身份后再继续。
浏览器通道与版本、视口和页面条件尽量保持可比较,优先复用两端相同的网页链路。字体、快捷键、缩放及平台页面差异仍需分别验证;存在必要差异时由适配层处理。首版浏览器控制不依赖全屏鼠标坐标或系统级桌面点击。
持久化目录与连接能力以 [Playwright 官方 BrowserType 文档](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context)为依据。首版使用专用目录,不依赖复制商家日常浏览器的整份资料。
登录资料复用仍需按真实平台验证;可复用状态与失效处理参考 [Playwright 身份状态文档](https://playwright.dev/docs/auth)。保存目录不保证所有内存或临时会话状态在重启后可用,重新打开后的有效性检查始终保留。
### 4.3 本地与云端的数据边界
商家端独立的业务 SQLite 保存平台账号映射、任务、检查点、候选内容、线索、证据及动作结果。账号映射包含浏览器目录或会话分区引用和最后核验状态;平台登录资料保留在对应本地浏览器资料中。维护者学习端使用独立 PostgreSQL 学习库和检索库,两端分别管理生命周期和数据,不共享商家登录资料。
云端 PostgreSQL 保存产品账号、设备权益、订单、额度账本、模型请求计量以及版本清单。模型分析按任务提交所需文本或图片。
第一版以本地线索为主,不默认建设全量线索同步。网页后台先服务产品管理、订单、用量和发布;如果后续要在手机上查看线索,再增加明确的线索同步功能。
学习维护所需的失败回流,首版通过诊断导出与维护端导入实现,内容限定为相关能力版本、必要输入、失败位置及对应页面证据片段。诊断资料和业务线索同步分别设计,浏览器登录资料仍保留在本地账号目录。
供应商模型密钥保存在服务端。客户端通过我们自己的 AI 网关调用模型,网关负责身份、模型路由、额度和请求预算。模型配置发布后有明确版本;客户端按业务用途调用,服务端记录实际使用的配置与模型。若引入 Midscene 或 browser_use 的模型调用,也接入这层网关,分别验证协议及模型适配兼容性。
### 4.4 测试工程可以采用哪些基础
2026 年 10 月 22 日只读核对 `D:\qiekj\browser_use` 当前工作区的源码、路由、数据结构、打包脚本与历史验证记录。该工程已有大量未提交修改,本次结论针对当前工作区;源码存在和历史通过记录不代表本轮重新验收通过。未修改源工程,未启动其服务、任务、数据库或平台账号。
**候选采用范围。**
- 桌面壳:`electron/` 的窗口、应用协议、preload 与 IPC、就绪检查、产品账号登录及刷新生命周期;`renderer/` 的布局、任务状态、历史、接管和通用展示组件。原后端进程管理接口可参考,启动对象改为本项目执行进程。
- 管理界面:`console/` 的布局、主题、登录页、菜单权限、用户管理、审计、筛选与通用表格组件。商品、线索、用量和商业管理页面按本项目新增。
- 云端骨架:`server/` 的 FastAPI 应用、产品用户与会话、权限和审计,以及配置草稿、修订与发布机制。可保留 FastAPI/PostgreSQL;学校业务 JSON 需要替换为本项目配置与能力清单契约。
- 浏览器宿主:WebContentsView、人工接管、输入隔离及目标检查作为独立候选组件,按第 4.1、4.2 节验证,避免把浏览器展示层与原 Agent 编排整套绑定。
**必须适配的边界。**
1. 学校、学生、业务系统与成员关系贯穿原表结构、接口和 UI,需要映射为商家、产品用户、内容平台及本地平台账号模型;不能仅替换文案。原同一用户、同一系统唯一绑定也需要适配同平台多账号。
2. 原业务登录依赖用户名、加密密码、角色绑定和受控凭据证据。采用产品账号认证时,将第三方平台登录单独改为官方页面人工登录、本地持久化会话和账号身份核验,不携带原密码代配与凭据租约链。
3. 原 runner 在新建内嵌分区及独立浏览器目录时加入随机标识,不能直接提供本项目按账号跨任务复用登录态。采用宿主后需稳定账号映射;同一活跃会话保活与重开后复用分别验收。
4. 原 `backend/` 本地服务与中心 `server/` 均使用 PostgreSQL。桌面业务存储仍按本项目 SQLite 设计,学习端仍使用独立验证库;提取基础时切开本地 PG/Docker 和校园编排依赖。
5. 原本地模型设置、供应商密钥与兜底调用,不等同于本项目云端按用途配置、预算和计费网关。客户端模型配置界面需替换;设备登录标识也不等同于商业设备权益。
6. 原打包入口只配置 Windows 免安装目录,已有非 Windows 路径分支不能视为 macOS 发布验证。本项目仍需完成目标系统与架构验证、安装包、签名、macOS 公证和升级回滚。
**继续新增的产品能力。** 获客业务页面与平台链路、商家业务和学习验证存储、独立能力包契约与门禁、订阅套餐、订单与续费、设备权益、AI 网关、模型配置版本、额度预占结算及对账仍需建设。本次未在原中心路由和表结构中发现完整商业模块实现。
**建议提取顺序。** 先在本项目建立独立应用标识、数据目录、端口与构建入口,提取桌面壳和后台布局,再适配产品认证与商家模型,接入 SQLite 与固定执行器,随后增加 AI 与商业模块。内嵌浏览器只作限定范围验证后决定采用。原工程含端口探测及关闭旧本地服务逻辑,新应用须校验进程归属,不能沿用旧项目端口或关闭其运行实例。提取范围限选定源码、必要资源、依赖声明和相应测试;不复制原环境配置、账号资料、运行数据、依赖目录、构建产物或 Git 元数据。
## 5. 学习端怎样落地
### 5.1 谁负责学习
首版由我们在维护者环境中学习、调试和验证平台链路,然后发布给商家使用。同一版本的共性平台操作可以复用;商家的关键词、商品和客户条件作为运行参数。
学习端从开发工具做起,采用“限定范围、观察取证、整理操作知识、生成候选、固定校验、变参试跑、发布版本”的闭环。维护者可以手写、借助模型生成或修订实现;各类实现经过相同的校验和验证。首版不要求自动学习任意网站,也不要求每个学习步骤都由模型完成。
每次学习先明确平台、能力目标、页面入口、账号角色、输入输出、需要覆盖的正常与异常分支,以及时间、步骤和模型调用预算。一次学习未覆盖的情况记录为缺口,不能把“见过页面”“理解操作”和“执行验证通过”合并成一个成功状态。
### 5.2 从页面证据到可执行能力
1. **观察并留存依据。** 记录页面和当前对象、操作前后状态、动作、读取值、定位候选及匹配数量、等待条件、结果和观察时间。截图或页面快照作为可回看的依据,具体保存范围受本次学习预算限制。
2. **整理结构化操作知识。** 明确输入字段的类型、必填条件和值来源,记录页面状态、步骤先后、分支条件、预期效果及未理解项。例如搜索的有结果、无结果、需要登录,评论的继续加载、展开回复和读取结束分别描述。
3. **形成候选能力及用例。** 将确定的步骤变成参数化实现,附输入输出契约、结果核对方式、验证用例和证据引用。模型的文字说明、点击录像或 Midscene 缓存都不能直接作为已发布能力。
4. **固定规则校验。** 由程序检查结构与类型、参数绑定、动作范围、定位与等待定义、输出映射、用例覆盖和证据引用。校验拒绝先返回候选修订;这一步不能代替真实浏览器验证,也不由模型自行宣告通过。
5. **变参试跑并核对结果。** 在维护环境安装候选版本,改变关键词、视频或账号对象、列表长度和页面状态,核对实际对象、字段、来源、分支及结束条件。存在多个匹配元素时明确作用域并核验目标,不能默认点击第一个。内容本身会变化,不要求两次返回完全相同的视频列表。
6. **发布经过验证的版本。** 只有满足该版本覆盖范围和双端验收要求的候选才进入发布清单;范围外情况保留缺口或明确不支持。更新生成新版本,旧版本及其验证记录保留。
“校验通过”表示产物结构符合约定;“试跑通过”表示指定环境与样本中实际执行并核对成功;“已发布”表示进入商家可用清单。这些状态分别记录。学习资料另记已观察范围、理解情况和剩余缺口,避免用单一进度百分比代替覆盖情况。
### 5.3 学习产物与最小存储
每条能力包至少包括:能力名称、内容平台、版本与内容校验值、输入输出定义、前置状态、参数化动作实现、定位与等待规则、完成判据、错误与未知结果状态、恢复规则、证据引用、验证用例、操作系统与浏览器兼容范围。发布清单关联验证结果,记录 Windows 与 macOS 各自的状态,不能把单端通过视为双端通过。
首版可以采用显式 TypeScript 实现加 JSON 清单,不先建设通用流程语言或工作流平台。学习记录与能力包分开:学习记录解释如何得到实现、还有哪些缺口,商家执行包只携带运行所需的契约、实现和兼容信息。
维护端保存学习任务、观察证据、操作知识与缺口、候选版本、校验与试跑记录、发布清单。学习后台采用独立 PostgreSQL 学习库,截图、快照等大文件保存为文件并由记录引用。检索库与学习账本分库,准备 pg_search 与 pgvector;商家桌面业务库仍采用 SQLite。SQLite 学习原型保留作离线开发及隔离测试,原库迁移后保留。首版不要求先建设多机调度或全站探索队列。
每次验证单独追加一条记录,至少包含学习任务、能力版本及内容校验值、用例和参数快照、平台与测试账号引用、操作系统与浏览器版本、执行器及必要模型配置版本、开始结束时间、前置与结束状态、预期效果、实际读回、校验或执行结论、失败原因、耗时和模型消耗,以及证据引用。未使用模型时可记录零调用;未取得实际计量时标记未知,不能用零替代。
固定校验、浏览器试跑、结果核对与双端验收分别记录并关联同一候选版本。重跑、修订回归产生新记录,保留历史结论;验证界面可按能力、版本、用例和系统筛选,查看预期与实际结果及关联证据。发布清单引用具体通过记录,同时保留未覆盖项;记录库中不保存平台手机号、验证码、密码或原始登录凭据。
例如,搜索能力输入关键词和读取范围,输出候选视频标识、标题、作者、来源及本轮读取状态;评论能力输入视频标识和进度,输出本轮评论、父子关系、来源及下一读取状态。验证时既检查数据结构,也检查读出的字段是否属于当前视频和评论对象。
固化的是“如何找到并处理当前对象”,不是把一次录制中的第几个按钮或屏幕坐标照搬到所有任务中。动态评论列表需要每次重新识别当前内容;DOM 句柄不能作为跨运行的长期身份。
### 5.4 学习范围与运行判断的分工
首批沿用六类链路:搜索、视频读取与切换、主页与作品读取、评论与回复读取、关注、私信。先完成前四类的只读流程,关注、私信按跟进阶段验证。跟进链路把准备、动作和结果核对分开,试跑使用明确的测试账号和测试对象。
学习单元是可复用的平台操作及其必要分支。一条视频、一条评论和一个潜在客户是运行时处理的业务对象,不为每个对象新建一条需要学习的能力,也不遍历整个平台后才开始运行。
运行端按业务规则调用已发布能力;内容相关性、账号角色和采购意图仍结合当前商品及上下文在运行时判断。可以固定读取与调用步骤,不能把一次学习中的客户判断冻结到所有商家和所有新内容上。
### 5.5 失败怎样回到学习端
区分候选校验拒绝、试跑失败、商家运行异常和动作结果未知。登录失效、额度耗尽等由既定运行状态处理;页面结构变化或未覆盖分支则回流维护端,携带能力版本、输入、相关证据和失败位置。
维护端在限定预算内定位原因,修订候选,并重新执行固定校验、受影响用例及必要回归,形成新版本。运行任务固定旧版本,不能让诊断模型在商家任务中边探索边替换生产脚本。发布后,新任务使用新版本;旧任务可恢复时仍使用原版本。原版本无法继续而需要新版本时,先检查检查点兼容性,再建立关联原任务的新任务,并继承已完成对象和动作账目,避免重新跟进。
关注或私信等操作结果未知时,先核对实际效果,再决定后续处理。不能为了生成失败样本或验证修复而重复发送;候选校验拒绝也不能记成浏览器执行失败。某次试跑通过不代表完整的自然失败、修订、回归闭环已被验证,验收记录分别说明覆盖情况。
### 5.6 现有项目与开源项目的角色
- **browser_use 测试工程的桌面与后台:** 本轮已检查其工程基础,按第 4.4 节作为候选提取源;这与采用 browser-use Python Agent 框架分别决定。优先减少窗口、产品认证和管理界面的重复建设,业务执行和存储按本项目契约重接。
- **A2A 学习端:** 当前决定以其现有学习后台的适用页面和工作流为基础裁剪,迁移与差异见第 5.8 节。能力包、参数化、定位、等待、会话和结果核验按本项目边界适配;原项目的业务验证不能等同于获客平台适配完成。browser_use Agent 的采用仍按需决定。
- **Midscene:** 作为可选的探索页面、局部定位、视觉读取和诊断组件,出现明确需求后,验证其效果、成本与集成价值。其规划与定位缓存可以减少调用,但查询和断言仍可能调用模型,不能直接当作免模型的已发布能力包。参见 [缓存机制](https://midscenejs.com/caching)和 [Playwright 集成](https://midscenejs.com/integrate-with-playwright)。
- **OpenAdapt Flow:** 重点研究录制、编译、参数化和执行后检查。当前开发位于 [OpenAdapt 主仓库的 flow 包](https://github.com/OpenAdaptAI/OpenAdapt/tree/main/packages/flow)。首版先参考产物设计,验证通过后再决定是否接入 Python 运行时。
- **Riot、Browser Use Desktop、Workflow Use:** 保留为实现参考与对照原型,暂不作为首版同时引入的运行依赖。
第一版普通流程优先用显式代码执行。页面不匹配时可以调用有预算的只读诊断;发现新的操作方法后,在维护环境验证并发布新版本。已发布任务不直接把临时探索结果当作新能力包。
### 5.7 参考项目与本项目的边界
选型以当前业务需要和执行方式为准。browser-use 的 Agent 可以探索页面,也提供直接动作与无 LLM 的初始动作;不能把它等同于所有步骤都必须调用大模型。参见 [官方 Agent 配置](https://docs.browser-use.com/open-source/customize/agent/all-parameters)。这些能力可供参考,不构成必须采用它的理由。
本项目重复运行少量已知流程,首选 Playwright 固定执行、普通程序等待和结果核对,模型主要处理内容判断。降低调用量来自链路固化和职责划分,不能仅归因于更换框架。只有需要在具体实现之间做选择时,才使用相同流程和模型条件比较,不把旧项目对照测试设为开发前置。
A2A 与 browser_use 提供设计和实现经验,本项目独立定义需要的功能、数据结构和执行边界。可以借鉴思路、按需采用合适组件,也可以直接实现;不为了复用而增加旧项目耦合、额外运行时或迁移工作。学习与运行端通过能力契约隔离底层驱动,不把框架对象写入业务数据格式。
此前对本机代码的只读核对显示,A2A 学习工程已有 Playwright 参数化动作、定位和等待实现,旧 browser_use 工程也有固定流程与会话管理实现。这些是可参考的实现案例,不是本项目的依赖或现成获客链路;测试宿主也不能直接视为商家生产执行器。
本轮进一步参考 `D:\qiekj\PenguinUniOS-Workspace\projects\learning` 的观察取证、操作知识、候选校验、参数装配、试跑读回及失败修订设计,补齐本项目学习闭环。其全站分层探索、多工作者领取与租约、跨端能力供给及知识检索体系暂不引入;模块职责可以借鉴,具体存储、协议和实现独立决定。参考工程的独立闭环验收仍有未完成项,不能将其设计或局部通过记录视为整套能力已验证。
首轮围绕搜索、主页和评论构建最小只读链路,记录完成情况、读取正确性、模型调用量、总耗时以及 Windows/macOS 分发维护工作量。第 4.4 节中现有测试工程的桌面与后台候选模块单独提取验证,不将其中的校园编排作为本项目执行前提。只有出现明确的探索、视觉或定位问题时,再针对该步骤评估 Midscene 等辅助方案。正常流程不能同时由两个驱动无协调地控制同一浏览器会话。
### 5.8 学习后台的实际迁入边界(2026-10-22)
本轮按当前决定,以 `PenguinUniOS-Workspace/projects/learning` 的学习后台为来源,直接裁剪适用的 React/Ant Design 组件、页面结构和交互流程。原工程保持只读,不复制账号、环境配置、数据库、浏览器资料、依赖目录或构建产物;新工程拥有独立认证、数据目录、端口和进程。
学习进度、学习批次、候选能力、参数与操作链详情、脚本测试、验证历史和证据回看接本项目接口。原后台的多机监控、租约派发、消费者回执、语义检索、系统账号管理不作为本机学习端的前置;未接入的模块不放置可点击的空壳。
后端使用 FastAPI + 独立 PostgreSQL,浏览器由 Node.js Playwright 工作进程执行。采用 PostgreSQL 可保留原事务、行锁与队列设计,但原 ConsoleRepository/FrontierRepository 还绑定 A2A 业务合同,部分证据文件与运行器依赖 POSIX/macOS,不能整包导入后宣称兼容 Windows。本轮适配不可变候选、动作证据引用和测试历史机制,保留后续扩展接口。
本机学习后台的空数据库首次启动时初始化 `admin / 123456`,以 scrypt 摘要保存密码。已有账号时跳过初始化,重启不重置密码;该账号属于本机维护工具,与后续云端商业后台和平台账号分别管理。云端商业数据库仍按 PostgreSQL 规划。
第一版可人工选择页面元素,记录参数化填写、点击与读取,生成固定候选;校验与试跑各自追加记录。实际读取结果交由后台固定规则对照预期,此项不等同于原项目的完整独立身份读回、失败恢复和发布供给体系。尚未接入模型自动理解与规划。
用本机演示页面先验证「搜索 → 详情 → 评论」、不同关键词试跑、错误预期失败、证据留存和重启持久化。Windows 记录不能代替 macOS 实机记录,发布预检保留双端要求;本轮不提供正式能力发布按钮。小红书模板仅预填目标和入口,实际平台登录、定位、只读请求范围与结束条件仍需逐步验证。
迁入清单与来源见 [后台模块说明](../apps/admin/source-provenance.md)。启动及验证命令见项目 README。
### 5.9 自主学习核心与检索底座的职责
本项目首期明确采用本地 Codex 协作学习:维护者给出限定目标并在平台页面自行登录,Codex 通过学习工具观察页面、整理操作知识、编写参数化固定实现、提交候选,并根据程序校验与实际试跑修订。后台保存任务、证据、版本和验证真相。先打通这条开发者学习闭环,后台内置模型调用、无人值守学习与调度按后续需要建设,不作为首条平台链路学习的前置。
能力验证通过后,由商家端按业务参数执行固定实现;内容相关性与采购意图等运行判断仍按产品方案使用可配置模型。本地 Codex 的开发学习过程与商家执行时的模型调用分别计量,不要求商家运行 Codex。
原学习端的真实模型入口为 `independent_learning_runner.py`,冻结 orchestrator、frontier、author、diagnose、repair 五份 Skill,交由原生模型 CLI 执行受限工具循环;`agent_dispatch.py` 的传输主要服务失败诊断与修订。后台提供持久状态、预算和固定门禁,模型返回成功不等于链路已学会。
学习链路为:读取目标与队列 → 原子领取限定节点 → 浏览器观察及补证 → 形成字段、分支和操作链知识 → 作者提交候选 → 固定校验反馈 → 新 attempt 修订 → 接收精确版本 → 自动首测及独立读回。全站 frontier 使用 PG 行锁、租约与最浅层优先;本项目先适配单条已选链路,不需要首先开放全站遍历。
当前后台已迁入适用的管理页面和录制/候选/验证适配器,尚未迁入模型自主学习、完整操作知识合同、自动作者修订循环与独立身份读回。原 runner 的 `sandbox-exec`、证据文件的 `fcntl/getuid/dir_fd` 和仅 macOS 支持的原子提交需要跨平台替换。增加 PostgreSQL 只解决存储与事务基础,不代表这些学习能力已接好。
`pg_search` 与 `pgvector` 用于学习后的能力知识检索:正向文档 → embedding → 不可变索引代际 → 激活 → BM25/向量召回。它们不负责观察页面或决定下一步点击。原工程检索模块还有真实模型效果、生产资格桥和正式消费边界;本项目本轮只部署与验证检索扩展,未宣称业务索引或自动检索学习已完成。
部署采用独立 Compose 项目、PG17、pg_search 0.26.1、pgvector 0.8.6,学习库、检索库和测试库分别命名。镜像及扩展版本以实际安装检查为准,配置与随机数据库密码保存在忽略的本机文件,原工程环境与数据库不参与迁移。
## 6. AI 判断与调用成本
### 6.1 三个判断分别记录
内容相关性、账号角色、采购意图分开定义输入和结果,也分别评估误判与漏判。实现时可把有共同上下文的判断合并到一次模型请求中,仍保留三个独立字段。
结果包括对象标识、分类、需求信号、原文依据、缺失信息、模型和规则版本;信息不足时返回待判断。模型自评分仅用于排序实验,不能直接当作识别准确率。
评论分析保留所属视频、父评论和必要回复,区分作者、评论者和商家。新评论或变化后的上下文需要重新判断。
### 6.2 文字优先,视觉按需
能用标题、简介和评论判断的,优先使用文本。视频信息不足时,才评估截图、OCR、语音转写或视频理解;它们有独立预算。
“相关性”不仅是词面或向量相似度,“购买意图”也不能由相似度直接替代。是否使用向量检索取决于样本规模,首版不必先建设向量数据库。
轻量文本模型、较强复核模型和视觉模型通过适配层接入,具体型号在同一批样本上比较后确定。每次结果应能关联输入内容和规则版本。业务分析结果的复用键包含内容与上下文、商品条件、提示规则、模型及结果结构版本,并设置适合内容时效的有效期。
### 6.3 两类成本分开
我们维护平台时的学习、探索、链路修复,属于产品研发与维护成本。商家运行中的文本分析、视觉分析和可选页面诊断属于实际运行用量。
普通 Playwright 代码不产生 LLM Token 费用;使用 Midscene 的 AI 操作、查询、断言或异常分析,仍可能产生费用。不能把“有缓存”解释为整条获客流程零模型成本。
程序先去重、复用有效结果,并做明确规则筛选;模糊样本不因缺少关键词就直接全部排除。批量分析按对象标识返回结果,验证结构后才进入线索状态。
### 6.4 模型由我们在后台配置
模型供应商、具体型号和路由策略由产品运营方在管理后台维护。客户端调用稳定的业务分析接口,不硬编码某个 DeepSeek 或其他厂商的版本。商家按产品权益使用相应分析能力,默认无需自行选择模型或填写供应商密钥。
后台分别配置基础文本判断、复杂文本复核、页面视觉定位与理解、维护者学习探索四类用途。它们可以使用不同模型;不要求采用最新或最强型号。较低成本模型满足样本质量要求时,可以作为默认,但不能仅凭版本较旧就推定价格低或任务效果足够。
文本意图识别与 GUI 视觉操作分别校验能力。只支持文字的模型可以用于评论分析,但不能直接替代 Midscene 所需的视觉模型。Midscene 的模型系列适配配置也需要匹配,不能仅修改模型名称就假定可用。依据 [Midscene 模型选择](https://midscenejs.com/model-selection)和 [模型配置](https://midscenejs.com/model-common-config)。
配置至少包括供应商与实际 model ID、接口协议、密钥引用、支持的输入类型与结构化输出能力、思考模式、输出上限、超时重试、价格有效期、用途预算和有限的备用策略。提高模型规格的回退受用途与预算限制,不能在后台不设上限地升级。
新配置先做连通、结果结构、真实样本质量与成本验证,再发布配置版本。运行任务保存配置快照,切换默认模型不会让正在运行的同一批分析无记录地混用;供应商停用时暂停或使用已配置的兼容备用路径。若供应商只提供动态别名,记录可获得的实际版本或响应标识,不承诺可以继续调用已下线的旧模型。
更换已经适配的模型通常由后台配置完成;新增协议、视觉模型系列或客户端不支持的能力时,仍可能需要适配代码和客户端升级。
## 7. 线索与跟进
线索最少保存平台与对象标识、来源链接、发现时间、原始需求依据、判断结果和跟进状态。同一账号的多条相关评论可以归并,但保留各自来源。
优先采用稳定的平台对象标识;无法可靠确认身份时保留为待判断,不能仅凭相同昵称自动认定同一人。内容去重、客户去重和跟进动作去重分别处理。
关注、消息准备、消息发送、结果核对和回复读取分别实现。消息内容可来自商家模板或可选生成,保存实际使用的版本。自动跟进保留为最终业务链路的一部分。
跟进动作有 prepared、executing、confirmed、failed、uncertain 等状态。执行前记录目标和业务操作标识;程序崩溃、页面超时或网络中断后,先核对实际状态。
本地操作标识和记录可以减少重复执行,但第三方平台动作不能只靠本地去重就保证恰好执行一次。消息发送等结果不明时进入待核对,不能把未知结果直接当失败重试。
动作去重跨任务生效,至少结合平台、执行账号、可靠的目标标识、动作类型和业务跟进轮次。同一业务动作不能因为重建任务或更换模板就自动重做;新的跟进轮次需作为明确的业务设置。
## 8. 任务编排与恢复
任务包含商品条件版本、平台账号、入口与关键词、处理范围、能力包版本、模型配置版本与快照、分析预算和跟进设置。第一版一个账号内串行执行,后续再评估不同账号的并行。
任务状态包括待运行、运行中、暂停中、已暂停、等待登录、等待处理、等待额度、完成、失败和取消。
检查点保存已确认完成的对象、剩余队列、当前步骤和必要页面状态。恢复时重新打开或核验页面,不能直接沿用之前的第 N 条可见位置。任务范围以本轮实际发现的内容为准,不承诺无限滚动列表能被完整枚举。
暂停在可确认的步骤边界生效。紧急停止、断电或关闭程序可能留下结果不明的动作,恢复后仍按动作账目核对。人工接管后,运行端重新检查账号、页面和当前对象。
关闭主窗口与退出程序分别定义,Windows 托盘和 macOS 菜单栏、Dock 行为通过系统适配处理,界面明确显示任务是否仍在运行。退出程序会停止本地执行;本地任务不会在电脑休眠或关机后继续。两端分别验证恢复唤醒后的浏览器与账号核验。断网或云端不可用时停止开启新的分析和依赖分析的后续动作,保留检查点及未决请求,恢复后对账再继续。
任务固定使用创建时的能力包版本;运行中的任务不热切换脚本。发布记录至少包含版本、校验信息和兼容范围。客户端升级或回滚后,先确认其支持任务原有的能力包版本,再从支持的检查点继续;不兼容时明确暂停。需要采用不同能力版本时,按第 5.5 节建立关联的新任务并复用可兼容进度,保留跨任务动作去重。
## 9. 商业模式与额度
采用软件订阅、包内分析额度和超额加量包的组合。软件有效期和 AI 余额分别管理,不设置没有成本边界的模型无限使用承诺。
商家看到基础文本分析、深度分析和视觉分析等清楚的计量项;服务端记录实际供应商、模型、输入输出 Token、视觉用量、请求标识和费用。供应商成本与商家额度分账记录,任务和请求标识关联两者;商家消耗的分析额度不直接等同于供应商 Token。按分析量收费与按有效线索收费是不同模式,首版建议先验证分析额度模式。
一次请求按“预占额度、调用模型、保存结果与实际计量、结算或释放剩余预占”处理。客户端重试复用同一请求标识,已完成的请求返回已有结果,不重复扣费。
供应商请求超时可能已经产生费用,需保留处理中或待核对状态,不能立即视为免费失败,也不能盲目再发一次。具体对账方式按供应商能力实现,充值和扣费通过服务端账本事务管理。
初期定价沿用 v0.1 中的试售假设作为访谈材料,不在本轮把 199 元/月或三万条设成最终套餐。确定价格前测出实际消耗、维护工作量和商家持续付费意愿。
## 10. 推荐的开发顺序
### 阶段一:验证一个平台的基础能力
围绕搜索、视频、主页和评论定义最小能力契约,采用一条明确的执行路径完成验证。候选基础模块的提取验证与平台能力验证可以并行,不以完整旧工程迁移完成为前提。
从这一阶段就保留观察证据、字段与分支说明、未覆盖项、候选版本和验证用例,执行固定校验与变参试跑。先用简单文件及开发工具承载,避免前期只留下演示脚本,到后期才补无法追溯的学习依据。
工程基础从第 4.4 节的候选模块提取验证开始:先完成独立桌面启动、后台布局与产品登录的最小链路,并核对新应用数据、端口和进程归属。云端可以采用原 FastAPI 骨架;本地存储与执行按新契约接入。提取不以启动原校园服务或迁移其运行数据为前提。
第一条学习链路采用小红书搜索笔记、详情和评论读取,在 Windows 与 macOS 上分别验证浏览器登录、页面定位、字段与结束条件;再验证抖音等平台。先做单账号,不先做完整会员后台。双端使用同一验收清单。
阶段产物是可重复执行的链路、结构化学习记录、独立验证记录库、真实样本、变参结果和失败记录。验证首次人工登录、同目录重开、软件重启和会话失效后的行为。若关键网页版功能不足,先调整执行方式或首发平台,再投入完整产品建设。
### 阶段二:完成发现与筛选
实现商品档案、任务、三类判断、去重、来源回看和本地线索页面。准备带上下文的标注样本,对照人工结果,统计误判、漏判、耗时和费用。样本量和可接受标准在首轮样本后细化。
### 阶段三:完成学习资产与恢复
将前期学习资料与候选整理为统一能力包,完善校验、试跑记录、版本发布和回滚工具。验证重启、登录失效、页面变化、人工接管、列表变化和预算耗尽后的行为,并覆盖失败证据回流、候选修订及回归;明确哪些属于人为构造场景、哪些已有实际运行证据。
### 阶段四:接入跟进闭环
分别验证关注、会话准备、消息发送、结果核对和回复记录。覆盖已关注、重复候选、发送前中断和发送结果不明等情况,再确定首版开放范围。
### 阶段五:形成可收费的安装版
完善双平台安装包、任务进程退出、客户端升级、产品登录、设备权益、订单、后台模型配置、额度网关和账本。模型配置逻辑在前面的分析验证中先以开发配置使用,此阶段补齐管理界面、验证发布和回退。分别在已确认的 Windows 与 macOS 系统版本、架构目标环境验证,按同一业务范围发布。用一批有限任务核对供应商用量、服务端扣费和客户端展示是否一致。
### 阶段六:扩展覆盖
单平台流程和商业用量稳定后,依次增加推荐流、多账号并行、抖音与快手、可选线索同步和手机查看。每增加一个平台都新增适配与验证,不把它描述为自动通用。
## 11. 首轮验收要回答的问题
- 一条能力从页面证据、字段与分支说明到实现和用例是否可追溯,尚未覆盖哪些状态。
- 固定校验、变参试跑和版本发布是否分别有记录;更换关键词、对象和列表状态后,输出与实际页面是否仍对应。
- 学习端能否按能力版本、参数、用例、系统和浏览器回看独立验证记录,修订与重跑是否保留原结论。
- 每类页面是否真的能完成操作和读取,读出的对象、文本与来源是否对应。
- 同行评论和需求作者两条业务路径能否分别形成可回看的线索。
- 内容、角色和意图判断各自有哪些误判、漏判和信息不足的样本。
- 每千条分析、每批任务和每条人工确认线索的模型费用与总耗时是多少。
- 登录失效、页面变化、崩溃、额度耗尽和人工接管后,是否能继续或明确停止。
- 平台登录能否完全由商家在官方页面完成,登录信息是否排除在日志、证据和模型输入之外;同目录重开、软件重启和升级后是否复用并重新核验会话。
- 登录后同会话移交、浏览器最小化、手动关闭及重新显示的行为在两端是否符合定义,当前账号身份是否始终与任务对应。
- 出现未覆盖分支或链路失效后,能否保留证据、修订候选并完成回归;是否避免在旧任务中直接替换未验证实现。
- 跟进结果能否核对,重复对象和不确定结果会怎样处理。
- 客户端、服务端和供应商用量是否能对账,重试是否导致重复扣费。
- 安装到已确认的 Windows 与 macOS 系统版本、架构的干净目标环境后,浏览器、原生依赖、执行进程、升级和数据保留是否正常。
- 相同功能在 Windows 与 macOS 是否均通过,窗口关闭、完整退出、快捷键和休眠恢复是否符合各端定义。
- 候选基础模块提取后是否具备独立标识、目录与进程生命周期,是否仍意外依赖原校园数据、旧工程数据库或客户端供应商密钥。
这些是产品验收方向。本机学习基础、PG 存储和隔离示例已有工程验证,结果与边界见开发进度文档;真实平台准确率、日处理量、双端业务效果和交付周期尚未确定。
## 12. 建议的后续工程结构
当前已建立 `apps/admin/` 学习工作台、`apps/server/` 本机维护 API 和 `tools/learning/` 浏览器工作进程。后续随业务扩展拆分,建议结构如下;未建立的包不代表已有实现:
```text
apps/desktop/ 商家桌面界面与主进程
apps/server/ 已有本机学习 API;云端产品 API 后续独立部署
apps/admin/ 已有维护者学习后台;商业运营模块后续补充
tools/learning/ 维护者的学习、调试和验证入口
packages/contracts/ 任务、能力包、线索、错误和模型结果定义
packages/runner/ 编排、检查点、动作记录和预算
packages/browser/ 浏览器生命周期与账号会话
packages/platforms/ 各平台的链路实现
packages/ai/ 文本与视觉分析客户端
packages/storage/ 本地数据访问与迁移
capabilities/ 已验证能力包的清单与版本资产
docs/ 方案与运行说明
```
初期保留较少实际包,先明确边界再按代码规模拆分。当前先完成维护者学习后台及执行器,再接商家桌面端;商业后台在商业闭环阶段完善。
## 13. 本轮建议与仍需验证的选择
### 13.1 已确认的范围与原则
- 首版同时适配 Windows 和 macOS,桌面框架采用 Electron。
- 保留搜索与推荐流入口,以及同行评论、作者本人有需求两条业务路径。
- 沿用先学习、固化链路、再重复执行的思路,控制运行时的模型调用。
- 学习端独立保留验证记录,关联能力版本、用例、参数、环境、实际结果和证据;商家在平台官方页面自行完成登录。
- 模型由我们在运营后台按用途配置,不绑定某个厂商版本,也不要求默认使用最强模型。
- 学习后台以 A2A learning 的适用模块为基础裁剪适配,详见第 5.8 节;其他 A2A 与 browser-use Agent 资产按需参考,`browser_use` 桌面壳按第 4.4 节评估提取。
### 13.2 当前实施建议
以 Playwright 固定执行为主线,围绕当前产品设计轻量执行器;Midscene 保持可选,按实际步骤需求比较。维护者负责能力包学习、验证和发布,云端负责模型网关与用量计量。A2A 与 browser_use 的设计和实现可按需参考。
学习端采用有界闭环:限定目标与预算,观察取证,整理字段、状态、分支和缺口,生成候选及用例,固定校验,变参试跑与结果核对,发布不可变版本;失败通过维护端修订和回归。先服务六类获客操作,不建设完整通用学习平台。
React + TypeScript、SQLite、Node.js/TypeScript 执行器与 PostgreSQL 是推荐组合;云端优先验证可采用的 FastAPI 认证与管理骨架,再新增本项目模块。桌面壳与后台可从已检查的测试工程中提取适用基础,具体组件依据功能适配、运行表现和双平台分发维护成本决定。
### 13.3 仍需验证的选择
首发内容平台、具体 model ID 与预算、完整跟进范围、套餐、并行规模、Midscene 是否引入,以及是否采用其他外部组件,仍由实验结果决定。Windows/macOS 最低系统版本和架构覆盖在依赖与打包验证后明确。实现应优先回答当前业务能否闭环,再扩展通用能力。
外部框架选型资料核对于 2026 年 10 月 21 日,浏览器持久化及登录状态文档于 10 月 22 日补充核对。本文中的整体组合和模块边界是本项目的设计建议,不是外部项目已经提供的整套获客产品。
## 14. 当前优化与近期实施规划
本节维护当前实施顺序;实际完成情况、具体测试及遗留问题以开发进度文档为准。以下事项尚未因写入规划而完成,不承诺固定日期。
### 14.1 首要:打通本地 Codex 的小红书学习闭环
首期由维护者与当前本地 Codex 协作,后台内置自主学习 Agent 后置。限定目标为「搜索笔记 → 详情 → 评论读取」,先完成单账号、有限样本和明确结束条件。
1. **建立可确认的实际会话。** 在学习后台创建小红书批次,使用固定本地账号引用;由维护者在后台打开的专用浏览器中登录并确认当前账号。日常 Chrome 或 Codex 右侧窗口的 Cookie 不作为该会话的登录证明。
2. **整理 Codex 可调用的工具与上下文。** 复用现有 API/浏览器工作进程,提供目标、参数、观察、动作、证据、候选与验证反馈。按实际需要补轻量操作入口,不把另建通用 Agent 平台或必须使用 MCP 作为前置。
3. **依据真实页面完善站点适配。** Codex 观察搜索、详情、弹窗、评论展开与分页,核对定位和请求事实。当前通用只读请求限制与定位规则是否适合真实小红书需实测;失败时保存依据并修订明确的站点规则。
4. **固化最小操作知识与版本。** 记录输入输出、字段来源、定位、等待、分支、结束条件、未覆盖项与证据;生成参数化固定实现和候选,不把一次手动点击或模型声明视为学会。
5. **完成变参回归。** 更换关键词和笔记样本,核对输出确实对应当前笔记及评论;验证正常路径、无结果和中断状态,保存成功与失败记录。未覆盖分支明确列出。
本阶段验收:同一候选能够在维护者实际登录的小红书会话中重放限定路径,改变参数后读取对象与输出仍正确,观察、候选摘要和验证记录可追溯。当前本机演示页的通过记录不能代替此项。
### 14.2 随后:补齐可交付的能力门禁
- 根据实际读取目标定义独立来源读回,逐步补当前 `not_configured` 的核验缺口;程序对执行输出的固定断言继续单独记录。
- 在 Windows 与 macOS 目标环境分别验证相同能力范围、资料复用、关闭与重开行为;原工程仅 macOS 的 runner/原子落盘机制按需替换,不作为双端已验证代码直接引入。
- 完成能力清单、版本兼容与发布/回退接口,并将真实验证记录关联发布条件。当前只有预检,不提前宣称商家可用分发已完成。
### 14.3 知识增多后:接入能力检索
- 从操作知识和合格候选/发布状态生成正向检索文档,将限制与 Gap 保留为结构化条件。
- 接入真实 embedding 配置、模型版本与维度,建立可追溯索引代际;复用已准备的中文 BM25 与向量查询基础。
- 将平台、适用范围及版本/质量过滤接入召回,验证真实样本效果。扩展烟测与固定样本向量排序不等于业务召回质量完成。
### 14.4 后续产品化与持续优化
按第 10 节推进 Electron 商家端、固定能力消费、线索与内容判断、云端模型网关及权益/计量。模型用途、预算与链路执行分别管理,首期本地 Codex 学习不要求商家安装 Codex。
每轮新增优化先更新本节或其所属章节,说明解决的问题、实施顺序和验收依据;相应进度记录引用当前规划。产品目标变化时修订现有条目,避免叠加多个互相冲突的计划文件。