Explorar o código

feat(budget): Step 2 完成 - Skill 重构

- 删除与配置层重复内容(决策矩阵表格/分位数数值/调价幅度/冷启动判定逻辑/出价边界)
- 保留战略层知识(策略方向判断/风险控制原则/多账户分配/历史教训)
- 新增策略配置调整判断(何时调整阈值/矩阵/幅度,临时vs长期)
- 强化非线性关系理解和调价节奏规则
刘立冬 hai 1 mes
pai
achega
c8dbed2fde
Modificáronse 1 ficheiros con 84 adicións e 114 borrados
  1. 84 114
      examples/auto_put_ad/skills/budget_strategy.md

+ 84 - 114
examples/auto_put_ad/skills/budget_strategy.md

@@ -1,161 +1,131 @@
 ---
 name: budget_strategy
-description: 预算分配与出价策略的领域知识
+description: 预算分配与出价的战略决策知识
 ---
 
-## 核心机制
-
-通过调整 oCPM 出价(bid_amount)控制消耗速度,不设日预算限制(day_amount=0)。
+## 你的决策职责
 
-## 决策矩阵(ROI × 跑量 二维)
+你负责做战略判断,配置层存储策略参数,工具负责精确计算。你需要决定:
+1. 是否调整当前策略配置(阈值、矩阵、幅度)
+2. 整体策略方向(扩量/缩量/持平)
+3. 多账户间预算如何分配
+4. 哪些广告需要特殊保护
 
-### 分位数阈值(基于昨日有效广告池)
+## 核心机制
 
-- **ROI 维度**:效率分(`fission0_count / cost`)的 P70 和 P30
-- **跑量维度**:单广告昨日消耗的 P50(中位数)
-- **有效广告**:首层小程序打开数 >= 100 且有消耗
+通过调整 oCPM 出价(bid_amount)控制消耗速度,不设日预算限制(day_amount=0)。
 
-### 5 种动作
+## 策略配置调整判断
 
-| 动作 | 含义 | 出价变化 |
-|------|------|---------|
-| keep | 保持不动 | 不调整 |
-| increase | 提价放量 | +5% ~ +15% |
-| decrease | 降价控量 | -5% ~ -15% |
-| close | 建议关停 | 不调整(标记) |
-| observe | 观察不动 | 不调整 |
+当前策略参数(分位数阈值、决策矩阵、调价幅度、保护规则)存储在配置层,通过 `load_strategy_config` 加载。你需要根据上下文判断是否需要临时或长期调整。
 
-### 缩量场景(预算 / 昨日消耗 < 0.95)
+### 何时调整分位数阈值
 
-| | 高跑量(≥ P50) | 低跑量(< P50) |
-|---|---|---|
-| 高ROI(≥ P70) | keep | keep |
-| 中ROI(P30~P70) | decrease -5%~-10% | observe |
-| 低ROI(< P30) | decrease -10%~-15% | close |
+- **周末/节假日**:转化率通常高 10-15%,ROI 阈值可适当放宽(如 P70 → P60),避免误将正常广告归为"中ROI"
+- **大促期间**:竞争激烈、成本上涨,阈值应收紧(如 P70 → P80),更严格筛选
+- **新账户(投放<7天)**:数据不稳定,分位数不具代表性,建议使用绝对值阈值而非分位数
+- **历史反馈**:如果上次阈值过严导致优质广告被误降价,本次应放宽
 
-- 大幅缩量(ratio < 0.7):中ROI -10%,低ROI -15%
-- 温和缩量(0.7~0.95):中ROI -5%,低ROI -10%
+### 何时调整决策矩阵
 
-### 扩量场景(预算 / 昨日消耗 > 1.05)
+- 发现某个象限的动作效果不佳(如"中ROI+高跑量 decrease"导致掉量悬崖)
+- 业务策略变化(如"ROI优先"时,中ROI广告也应保守处理,改为 keep)
+- 市场环境变化(竞争加剧时,低ROI广告不急着关停,改为 observe 观察)
 
-| | 高跑量(≥ P50) | 低跑量(< P50) |
-|---|---|---|
-| 高ROI(≥ P70) | keep | increase +10%~+15% |
-| 中ROI(P30~P70) | keep | increase +5% |
-| 低ROI(< P30) | decrease -10% | close |
+### 何时调整调价幅度
 
-- 大幅扩量(ratio > 1.3):高ROI低跑量 +15%
-- 温和扩量(1.05~1.3):高ROI低跑量 +10%
+- 上次调价导致掉量悬崖 → 收紧降价幅度上限(如 -15% → -10%)
+- 市场竞争加剧 → 提价幅度可以更激进
+- 账户出价已接近最低出价 → 降价幅度必须收紧到 3% 以内
+- 缩量幅度过大(ratio < 0.7)→ 应配合更大的降价幅度
 
-### 持平场景(0.95 ~ 1.05)
+### 临时调整 vs 长期优化
 
-- 低ROI + 低跑量 → close
-- 其余全部 → keep
+- **临时调整**(不保存到配置层):周末特殊处理、大促期间、单次运营指令
+- **长期优化**(保存到配置层):基于多次反馈验证的矩阵修正、经验证有效的阈值调整
 
-## 效率分计算
+## 策略方向判断
 
-```
-效率分 = 裂变0层回流数 / cost
-```
+- 预算/昨日消耗 > 1.05 → 扩量方向
+- 预算/昨日消耗 < 0.95 → 缩量方向
+- 介于 0.95~1.05 → 持平
+- 但要结合上下文:运营说"ROI优先"时,即使预算充裕也可能选缩量
 
-## 出价边界
+## 出价与消耗的非线性关系
 
-- 最低出价:10分(0.10元)
-- 最高出价:10000分(100元)
-- 出价单位:分(1元 = 100分)
+oCPM 模式下,出价调整与消耗变化是**非线性关系**,决策时必须理解:
 
-## 账户级评估
+- **eCPM 公式**:`eCPM = bid x pCTR x pCVR x 1000`
+- **降价效果放大**:降 10% 出价 约等于 降 15-25% 消耗(非线性放大)
+- **掉量悬崖**:当 eCPM 低于竞争水位时,展示量会骤降至接近 0
+  - 这不是线性下降,而是断崖式跌落
+  - 一旦掉入悬崖,即使恢复出价也需要时间重新竞价
+- **提价天花板**:提价消耗增长同样非线性,受竞争环境约束,存在边际递减效应
 
-- 按昨日消耗量判断:≥中位数=稳定,≥P30=一般,<P30=低量
-- 稳定 + 效率分高于中位数的账户 → 适合扩量
+**决策原则**:
+- 降价操作比提价操作风险更高,应更谨慎
+- 如果广告当前出价已经较低,降价幅度应极度保守
+- 提价后需要观察 2-4 小时等待 oCPM 模型重新学习
 
-## 调整节奏
+## 调价节奏规则
 
-- 每天调整一次
-- 调整后观察至少 2 小时再做下一次调整
+| 规则 | 说明 |
+|------|------|
+| 单次调整幅度 <= 10% | 大幅调整需阶梯式执行(如 -20% 拆成 3 次 -7%/-7%/-6%) |
+| 调整间隔 >= 2 小时 | oCPM 模型需要时间重新学习竞价 |
+| 每天最多 2-3 次 | 避免频繁扰动模型 |
+| 接近掉量悬崖时 <= 3% | 出价越低,调整应越谨慎 |
 
-## 调价规则(行业共识)
+**阶梯式调价**:单次降幅超过 10% 时必须拆分为多次执行,每次间隔 2 小时以上。
 
-| 规则 | 具体值 | 说明 |
-|------|-------|------|
-| 单次调整幅度 | <= 5-10% | 大幅调整需阶梯式执行(如 -20% 拆成 3 次 -7%/-7%/-6%) |
-| 调整间隔 | >= 2 小时 | oCPM 模型需要时间重新学习竞价,频繁调价破坏模型学习 |
-| 每天最多调整次数 | 2-3 次 | 避免频繁扰动模型导致效果波动 |
-| 接近掉量悬崖时 | <= 3% | 出价越低、竞争越激烈,调整幅度应越谨慎 |
-| 阶梯式执行示例 | -20% 拆为 3 次 | 每次间隔 2 小时:第1次 -7%,第2次 -7%,第3次 -6% |
+## 多账户预算分配原则
 
-**阶梯式调价原则**:
-- 单次降幅超过 10% 时,必须拆分为多次执行
-- 单次提价超过 15% 时,建议拆分为 2 次执行
-- 每次调整后观察 2 小时以上再做下一次调整
+- 效率高(ROI > 中位数)+ 消耗稳定的账户 → 优先分配预算
+- 新账户 → 给基础预算,不追加
+- 效果差的账户 → 缩减但不清零(保留观察窗口)
 
-## 冷启动保护
+## 冷启动保护原则
 
 冷启动期间广告处于 oCPM 模型学习阶段,频繁调价会破坏学习过程。
 
-| 条件 | 判定标准 | 处理方式 |
-|------|---------|---------|
-| 新广告冷启动期 | 广告 `create_time` 距今 < 48 小时 | **不调价**,保持初始出价,标记 observe |
-| 转化数不足 | 累计 `conversions_count` < 6 | **不调价不关停**,标记 observe |
-| 接近赔付门槛 | 转化数接近 6 且 CPA 偏高 | 标记 observe(非 close),等待赔付触发 |
-| 学习期消耗异常 | 冷启动期内 CPA 明显偏高 | 仅告警通知运营,不触发自动熔断 |
-| 冷启动成功判定 | 累计转化 >= 6 且 create_time 距今 > 48h | 退出保护期,进入正常决策矩阵 |
+**核心原则**:冷启动保护优先于决策矩阵。即使 ROI 分类为 "low",只要在冷启动期内,一律标记 observe 不调价。
 
-**冷启动判定优先级**:冷启动保护判定优先于 ROI x 跑量决策矩阵。即使 ROI 分类为 "low",只要在冷启动期内,一律 observe。
+**何时调整冷启动参数**:
+- 行业冷启动期普遍较短(如信息流广告)→ 可缩短冷启动时间
+- 转化稀疏的品类 → 应提高转化数门槛
+- 观察到冷启动期过长导致资源浪费 → 适当缩短
 
-**所需数据字段**(来自 `loghubods` 数据表):
-- `create_time`:来自 `loghubods.ad_put_tencent_ad` 表,广告创建时间
-- `conversions_count`:来自 `loghubods.ad_put_tencent_creative_data_day` 表,转化量
+## 关停保护原则
 
-## 出价与消耗的非线性关系
+### 赔付门槛
 
-oCPM 模式下,出价调整与消耗变化是**非线性关系**,Agent 决策时必须理解:
+腾讯广告赔付规则:转化 >= 6 且 CPA 偏离目标 >= 20%/30% 时可申请赔付。
 
-- **eCPM 公式**:`eCPM = bid x pCTR x pCVR x 1000`
-- **降价效果放大**:降 10% 出价 约等于 降 15-25% 消耗(非线性放大)
-- **掉量悬崖**:当 eCPM 低于竞争水位时,展示量会骤降至接近 0
-  - 这不是线性下降,而是断崖式跌落
-  - 一旦掉入悬崖,即使恢复出价也需要时间重新竞价
-- **提价天花板**:提价消耗增长同样非线性,受日预算上限和竞争环境约束
-  - 提价 10% 不一定能多消耗 10%
-  - 存在边际递减效应
-
-**Agent 应用原则**:
-- 降价操作比提价操作风险更高,应更谨慎
-- 单次降幅不超过 10%,避免触发掉量悬崖
-- 如果广告当前出价已经较低(接近 MIN_BID),降价幅度应控制在 3% 以内
-- 提价后需要观察 2-4 小时等待 oCPM 模型重新学习
-
-## 关停保护规则
-
-关停广告前必须检查以下保护条件:
+**决策原则**:
+- 转化 3-5 次的广告接近赔付门槛,不应关停,应标记 observe 等待积累
+- 已触发赔付条件的广告,先申请赔付再关停
+- 高消耗但接近赔付门槛的广告,计算"沉没成本 vs 潜在赔付收益"
 
-### 赔付门槛保护
-
-腾讯广告赔付规则:**转化 >= 6 且 CPA 偏离目标 >= 20%/30% 时,可申请赔付**。
+### 关停执行规范
 
-| 场景 | 转化数 | 处理 |
-|------|--------|------|
-| 转化 < 3 | 远离赔付门槛 | 可正常执行 close |
-| 转化 3-5 | 接近赔付门槛 | 标记 observe,等待转化积累到 6 |
-| 转化 >= 6 且 CPA 偏离 >= 20% | 已触发赔付条件 | 标记 observe,先申请赔付再关停 |
-| 转化 >= 6 且 CPA 正常 | 非赔付场景 | 可正常执行 close |
+- close 动作**不自动执行**,标记后由运营确认
+- 关停后记录日志,支持恢复
 
-### 沉没成本保护
+## 效率分计算
 
-- 已投入较大成本(消耗 > 账户日均消耗 x 30%)但接近赔付门槛的广告,应等待触发赔付后再关停
-- 关停前计算"沉没成本 vs 潜在赔付收益",避免白白损失已投入成本
+```
+效率分 = 裂变0层回流数 / cost
+```
 
-### 关停执行规范
+## 历史教训
 
-- close 动作**不自动执行**,标记后由运营确认
-- 执行关停时调用 `ad_batch_update_status(configured_status="AD_STATUS_SUSPEND")`
-- 关停后记录日志:广告ID、关停原因、关停时消耗和转化数
-- 支持关停后恢复:运营可手动恢复被暂停的广告
+- **阈值过严导致误降**:P70 阈值设为 0.75 时,30% 优质广告被误降价,次日消耗下降 18%。教训:周末应放宽到 P60-P65
+- **降价触发掉量悬崖**:中ROI+高跑量广告降价 10%,触发掉量悬崖,3 天才恢复。教训:该象限改为 decrease -5% 或 keep
+- **冷启动期调价**:新广告在冷启动期内被降价,导致模型学习失败,最终效果远低于预期。教训:冷启动保护必须严格执行
 
 ## 预留功能(待实现)
 
-1. **后验强化**:基于调价后实际消耗/ROI变化,迭代调整幅度参数
-2. **时段差异化出价**:根据分时段投放数据差异化出价(早间/晚间流量差异)
-3. **公众号渠道**:daily 核心 roi(GT/GW)和即转 roi,独立预算分配
+1. **后验强化**:基于调价后实际消耗/ROI变化,迭代调整策略配置
+2. **时段差异化出价**:根据分时段投放数据差异化出价
+3. **公众号渠道**:独立预算分配
 4. **日内 PID 控制**:实时消耗进度 vs 预期节奏,动态微调出价