09-01 调度机制修复落地+并发方案A+全链路复测通过

- 调度根因修复:工作台/api/run 显式写 next_run_at=now+5s(17列),scheduledAt=now+5s 带秒
- 新增 自动化任务调度机制.md(根因/硬规则/状态机/并发上限≈3/排查命令)
- 并发方案A(浏览器锁):/api/run 对浏览器类任务自动注入锁约束;浏览器搜索抖音账号操作规范.md 新增5.6并发互斥
- 端口 8899→8900 可传参(8899被小米MiPCAudio.exe系统服务占用且杀后复活)
- cdp-test-junxi.mjs 支持 --port 参数
- SKILL.md 工作台段落同步修正(旧认知 scheduled_at=now 已废弃)
- 俊希全流程 TC-01~11 复测全通过(验收表更新):并行解析6条+AI写脚本会话链路完整跑通
This commit is contained in:
maogeigei committed 2026-09-01 00:36:02 +08:00
1 parent e906e6616a
commit b2e472bf27
12 files changed
+265 -49

No files matched your search

@@ -122,14 +122,18 @@
> **关键定义**:本节「底色」一律指**整卡背景色**(深色渐变底或浅色渐变底)。卡片块、文字、标签、强调色等**内部元素不随账号风格变**,统一按所选色系的「配色规范」表执行:**深色系(深色长图风)**= 浅米卡片 + 深色文字 + 珊瑚红强调;**浅色系(浅色甜宠风)**= 白卡 + 粉边 + 深粉文字 + 粉强调。同一账号系列卡片必须固定同一色系,保证系列视觉语言一致。
### ① 判定账号风格(读设定「色彩体系」+ 赛道/类型)
以账号设定.md 的「视听风格/色彩体系」模块真实色值为第一依据(主色/强调色),赛道与账号类型辅助判定,归入下表风格。
### ① 判定账号风格(调性 + 色值 + 赛道,三层判定)
1. **第一依据 = 账号实际内容调性**(读设定 md 的「账号核心定位」情绪锚点 + 「情绪结构」五段 + 「视听风格」氛围):**决定底色走深色系还是浅色系**。情绪锚点含「明快/欢乐/爽文/解压/暖心/积极治愈/宠/甜」→ 浅色系;含「深沉/催泪/怀旧/忧郁/厚重/故事感/悲情」→ 深色系。
2. **第二依据 = 视听风格/色彩体系真实色值**(主色/强调色),作为具体底色取色的色相来源。
3. **第三依据 = 赛道/类型**,仅作初筛归入下表风格,**不作为色系终判**。
> ⚠️ **赛道标签有歧义时必须二次判定(反例:俊希)**:「温情/亲子/治愈」中的「治愈」是**双义**标签——深沉催泪型治愈走深色系,明快欢乐型治愈走浅色系。凡赛道含「治愈/亲子/温情」等暧昧词,**必须回读情绪锚点判定明快 vs 深沉**,禁止机械套下表默认色。俊希=「满级小孩哥给妈妈做饭」明快欢乐治愈爽文 → 浅色系(暖橙 `#F5D0A4→#DE9A5E`),非下表深焦糖深色。
### ② 风格 → 背景色映射(示例,可扩展)
| 账号风格(色彩体系/赛道特征) | 背景底色(深色渐变) |
|----------------------------|--------------------|
| 暖怀旧/旧时光(剧情·怀旧,如旧梦留声机) | 深棕红 `#2B0F0A→#1A0805` |
| 温情/亲子/治愈(亲子Vlog) | 深焦糖 `#2B1A10→#1A0F08` |
| 温情/亲子/治愈(亲子Vlog) | 调性分叉:**深沉催泪型 → 深焦糖 `#2B1A10→#1A0F08`**;**明快欢乐型(如俊希)→ 浅色系**(暖橙 `#F5D0A4→#DE9A5E`,提亮降饱和) |
| 科技/数码/冷淡(数码科技/商业) | 深灰蓝 `#0E1626→#080D16` |
| 清新/田园/三农(三农/户外) | 深墨绿 `#0F1F18→#08130E` |
| 潮流/都市/时尚(潮流风尚/颜值) | 深紫黑 `#17101F→#0C0810` |
@@ -141,6 +145,7 @@
**浅色系推导(明快/甜美/治愈调性)**:取账号色彩体系主色 → 提亮+降饱和至中浅明度(约 65-90% 亮度,如王微斯:主粉 → 玫瑰金 `#D6A3A9→#9A5563`)→ 得浅色系渐变底;正文文字用主色加深版(`#7B2D5E` 档)。**背景上直接书写的文字(模块标题/装饰线/注释/版权)随背景深浅提亮保可读**:背景越深文字越亮(如玫瑰金底上模块标题 `#FDE8EC`、装饰线/注释 `#EAC6CE`、斜体/版权 `#DDBCC4`)。
### ③ 强规则
- **调性优先于赛道标签**:色系二选(深/浅)以账号实际内容调性(情绪锚点)为最终判据,赛道标签只作初筛;赛道含「治愈/温情/亲子」等暧昧词时必须二次判定,禁止机械套默认色
- **禁止**默认沿用模板深棕红底;同一账号每次生成的卡背景色保持一致(系列一致性 = 同账号一致,非跨账号一致)
- **底色决定色系**:选深色系则内部元素按「配色规范·深色系」执行,选浅色系则按「配色规范·浅色系」执行;同一色系内部元素色一律固定,不随账号再改
- 模块「色彩体系」色块:必须用设定文件中账号的真实色值(模板 5 色块仅示例)
@@ -256,6 +256,38 @@ PY
4. **用完不关闭**:任务完成后保留标签页(留给后续任务复用),下次任务直接导航到目标地址即可
5. **多任务串行**:多个刷新/导入任务共用同一 9223 Chrome 实例,前一个任务的抖音标签页直接导航复用,无需重新打开
### 5.6 并发互斥(浏览器锁,09-01 新增,多 AI 会话并行时强制)
**背景**:工作台多个 AI 会话任务可并行(客户端并发上限≈3),但浏览器是**共享单实例**(9223 Chrome)。两个任务同时操作会互相导航标签页、丢失对方数据,因此**浏览器操作必须互斥(一次只有一个任务在用浏览器)**。非浏览器操作(解析/提炼/复盘/写脚本,走 MCP/文件)不受影响,可全并行。
**锁规则(每个需要浏览器的任务必须遵守)**:
1. **锁文件**:`D:\AgentSkill\mcn-workshop\.browser-lock`(工作台 `/api/run` 对浏览器类任务已自动注入本约束到 prompt,AI 会话执行时遵守即可)
2. **操作前**:检查锁文件是否存在(`ls`)→ 存在则等 10 秒重试(最多 18 次 ≈ 3 分钟)
3. **死锁保护**:锁文件修改时间超过 10 分钟 → 视为死锁,可删除后抢占
4. **拿锁**:`echo "<任务名> <时间戳>" > D:\AgentSkill\mcn-workshop\.browser-lock` → 才操作浏览器
5. **释放**:浏览器操作全部完成后(无论成败)`rm -f D:\AgentSkill\mcn-workshop\.browser-lock`
6. **串行协调**:多个任务抢锁 = 先到先用;拿到锁的任务完成后释放,下一个任务继续;标签页复用规则(5.5)仅在自己持有锁期间适用
```bash
# 拿锁(互斥,带重试)
for i in $(seq 1 18); do
if [ ! -f "D:/AgentSkill/mcn-workshop/.browser-lock" ]; then
echo "$(date '+%H:%M:%S') ${任务名}" > "D:/AgentSkill/mcn-workshop/.browser-lock"
break
fi
# 死锁保护:锁超过 10 分钟强制抢占
if [ -f "D:/AgentSkill/mcn-workshop/.browser-lock" ] && [ $(($(date +%s) - $(stat -c %Y "D:/AgentSkill/mcn-workshop/.browser-lock" 2>/dev/null || echo 0))) -gt 600 ]; then
rm -f "D:/AgentSkill/mcn-workshop/.browser-lock"
continue
fi
sleep 10
done
# ... 浏览器操作 ...
# 释放锁(无论成败)
rm -f "D:/AgentSkill/mcn-workshop/.browser-lock"
```
```bash
# 检查已打开标签页
"$BH" <<'PY'
@@ -24,6 +24,7 @@
|---|---------|------|---------|---------|
| 6 | 本地接口(`/mcn/api/...`)调用规范未沉淀,每次现查 | 无统一接口调用规范文件 | 新建 `references/接口调用/本地接口调用规范.md`,记录接口基地址判定(`$env:DSH_WEB_URL` → 3080/3081 兜底)、接口清单、请求构造方式(Python 直连优先) | 已沉淀为本规则 |
| 7 | 生成人设卡前未先判定账号类型就套模板 | 账号类型判定是模板选择前置 | 严格执行 5.0 判定:从筛选出的 TOP 视频 analysis「人设」字段提取主角名称 → 全部不同=群像型 / 同一主角=固定主角+轮换搭档 / 全固定=单一达人型 | 已沉淀为人设卡生成方法 5.0 |
| 8 | 生成设定卡时机械套赛道标签配色,把「明快欢乐型亲子(俊希)」误配成「深焦糖深色系」 | 「温情/亲子/治愈」赛道标签**双义**(深沉催泪型 vs 明快欢乐型),未做调性二次判定就套下表默认深色 | 色系二选以账号实际内容调性(情绪锚点:明快/欢乐/爽文/暖心 → 浅色系;深沉/催泪/怀旧/悲情 → 深色系)为最终判据,赛道标签只作初筛;赛道含「治愈/亲子/温情」等暧昧词时**必须回读情绪锚点判定明快 vs 深沉** | 已沉淀为 06_生成账号设定卡片.md「调性优先于赛道标签」规则 |
---