现有"调控子系统"做减法 — 关停 / 调价 / 扩量;新增"新建子系统"做加法 — 建广告 / 挂创意。两者共享数据 + 平台 API + 基础知识,但各自的脑子 (skill + prompt)独立,避免互相污染。
本文档展示 6 张图:① 三层架构(共享 infra · 双子系统 · 关联点) · ② 数据契约流向 · ③ 关联点放大图 · ④ 模块 A/B 内部流水线 · ⑤ 决策框架 L1/L2/L3 · ⑥ 实施甘特图。配色:cream 为共享 infra,navy 既有调控,terracotta 新建子系统,gold 跨系统关联点。
关键约束 · 一账一人群包(2026-06-05 锁定)
一个账户固定一个 custom_audience(人群包),即使有多个广告也不变。这意味着 audience 不参与广告差异化,跨 tier 测试通过跨账户实现。单账户内唯一性差异化维度退化为 site_set × age × geo 三维,可建 4×4×4 = 64 种 unique 组合,起步 5-15 条远未饱和。账户与人群包映射由 ACCOUNT_AUDIENCE_PACK_MAPPING[account_id] 在配置中预设,LLM 不参与选择。
图一 · 三层架构总览
共享 infra(数据 / API / 基础 skill)
调控子系统(现有 · 不动)
新建子系统(全新)
跨系统关联点(单向 · 最小)
数据流(共享 → 子系统)
关联流(单向只读)
图二 · 数据契约 — 文件级数据流
两个子系统通过文件系统通信,**互不调用对方 API**。所有产物文件都在 outputs/ 下,可单独审计。共享只读输入由调控子系统在 02:00 写出 → 新建子系统在 02:30 读入。
图三 · 模块 A 广告新建 · 内部流水线
图四 · 模块 B 创意新建 · 内部流水线
图五 · 决策框架:代码 vs 知识 三层分工
两个子系统都遵循同一套三层分工 — L1 候选标记代码(确定性 · 可单测)/ L2 LLM skill(启发式 · 灰色地带)/ L3 兜底护栏代码(确定性 · 边界)。这是分离架构的核心:**skill 不是简单等于一段话,是 LLM 的推理框架,各子系统必须独立**。
图六 · 关联点放大 — 时序图
图七 · 实施甘特图(10 阶段)
| 阶 | 名称 | 内容 | 关键产出 | 类别 |
| a | 共享 infra 抽取 | im_approval.py 抽 FeishuApprovalBase · execution_engine 抽公共部分 · config.py 拆 [SHARED]/[ADJUSTMENT]/[CREATION] 三段 | FeishuApprovalBase · config 重排 | 共享 |
| b | 适配层 stub | 5 个适配模块接口签名:audience_demand · material_recall · dedup_check · uniqueness_check · creation_history | 5 个新文件 + 单测 | 新建 |
| c | 模块 A 内核 | ad_creation.py 真实化:唯一性预校验 + 出价基准三层 + 命名 + ad_api.ad_create() 调用 | tools/ad_creation.py | 新建 |
| d | 模块 B 内核 | creative_creation.py 真实化:三路召回(history 路先做)+ AI 改写(light)+ 渐进式控制 + ad_api.creative_create() | tools/creative_creation.py | 新建 |
| e | 新建 Agent 框架 | prompts/system_creation.prompt + skills/creation_strategy.md + creation_decision.py 候选标记 + 工具白名单 | prompt + skill + L1 标记代码 | 新建 |
| f | 新建子系统入口 | execute_creation_once.py 完整流水线:关联点过滤 → Agent → 决策落地 → 审批发送 | execute_creation_once.py | 新建 |
| g | 飞书审批扩展 | FeishuCreationApproval 子类 · 新 chat_id 配置 · 新 APPROVAL_COLUMNS | tools/im_approval.py 重构 | 共享 |
| h | 执行 dispatch | execution_engine 加 _execute_create_ad() · _execute_add_creative()(新建独占) | execution_engine 新分支 | 新建 |
| i | 端到端 + 关联点验证 | execution_enabled=true · 单一测试账户跑 · 验证唯一性 / 创意数 / 关联点过滤 / 调控不受影响 | 回归测试 + 手工 checklist | 验证 |
| j | K8s + 文档 | k8s/cronjob_creation.yaml · 更新 CLAUDE.md · 监控告警 | cronjob 上线 · 稳定跑 1 周 | 交付 |
阶段甘特(相对工作量,水平比例示意)
阶 a
阶 b
阶 c
阶 d
阶 e
阶 f
阶 g
阶 h
阶 i
阶 j
共享 infra 改动(影响调控,需回归)
新建子系统独占改动
验证 / 交付
设计原则速查
| 代码 vs 知识 分离 | 工具 / 数据(代码)是确定性的,复用零风险;Skill(LLM 推理框架)是启发式的,共用会污染。Q5/Q6 改方向的核心理由。 |
| 分离但不盲 | 两个子系统通过文件系统通信,**最小耦合**:新建启动只读调控当日 latest_decisions 黑名单,避免给即将 pause 的广告补创意。 |
| L1 / L2 / L3 三层分工 | L1 候选标记(代码,可单测)/ L2 LLM skill(启发式)/ L3 兜底护栏(代码,边界)。两子系统共用这套分工模式。 |
| YAGNI 严格执行 | 本期不做 reshuffle / 重度 AI 改写 / 跨账户素材 / 调控读新建 / 联合审批 / 学习期细粒度保护。接口预留,实现等下期。 |
| 深度思考补全(全启用) | tier 级护栏 · 渐进式挂创意(≤5/次)· 7 日累计上限 · 出价基准三层降级 · 关联点过滤 · confidence 量纲校准。 |
| 回滚边界清晰 | 新建子系统失败 → 删 execute_creation_once.py 即可;CREATION_ENABLED=False 总开关;调控完全不受影响。 |