# auto_put_ad_mini — 广告智能调控 Agent > **工作目录**: `examples/auto_put_ad_mini/` > **业务场景**: 微信小程序投流 > **核心目标**: 基于 ROI + 跑量双维度,自动给出广告粒度的操作决策 ## 项目定位 `auto_put_ad_mini` 是 `auto_put_ad` 终极体系中 **Monitor/调控 Agent** 的前身。 当前阶段独立运行,只做"数据→决策→执行"单向链路。 ## 项目结构 ``` examples/auto_put_ad_mini/ ├── run.py # 运行入口(Agent 交互模式) ├── execute_once.py # 单次执行入口(10 步 pipeline) ├── config.py # 业务配置(ROI 阈值、出价边界等) ├── presets.json # 预设参数 ├── strategy_params.json # 策略参数 ├── prompts/ │ └── system.prompt # Agent 系统 Prompt ├── tools/ │ ├── ad_api.py # 腾讯广告 API 封装 │ ├── ad_decision.py # 广告决策引擎(候选信号 + LLM 评估) │ ├── data_query.py # ODPS 数据查询 │ ├── roi_calculator.py # ROI 计算(动态ROI) │ ├── guardrails.py # 安全护栏 │ ├── execution_engine.py # 执行引擎(API 调用 + 审计) │ ├── im_approval.py # 飞书审批(阻塞式轮询) │ ├── report_generator.py # 报告生成(Excel + 飞书表格) │ ├── feishu_doc.py # 飞书文档操作 │ ├── creative_metrics.py # 创意级数据指标 │ ├── odps_module.py # ODPS 数据源模块 │ ├── portfolio_metrics.py # 组合级指标聚合 │ └── posterior_collector.py # 后验数据收集 ├── skills/ # 领域知识(框架自动注入) │ ├── ad_domain.md # 业务模型:裂变模型、ROI公式 │ ├── platform_rules.md # 平台硬约束 │ ├── decision_framework.md # 决策框架:候选标记 + 年龄策略 │ ├── action_playbook.md # 动作手册:7种action │ └── posterior_wisdom.md # 后验经验 └── outputs/ # 运行输出 ``` ## 关键配置入口 - **决策阈值**(关停线、降价线、提价线)→ `config.py` - **决策逻辑**(候选标记、年龄保护、权衡原则)→ `skills/*.md` - **Agent行为**(工具编排、输出规范)→ `prompts/system.prompt` 业务规则以 `config.py` 和 `skills/` 为准,本文件不重复描述。 --- ## 🚨 工程纪律:不推导,不猜测(2026-06-05 用户多次确认) **绝对禁止凭"常识 / 文档框架 / 命名规律"推断或猜测字段值、枚举名、参数结构、业务规则。** ### 三段式处理原则 | 情况 | 必须做的 | |---|---| | **不确定** | 查询(读代码、读真实数据、读文档、调 API 反查) | | **查不到** | 直接反问用户,**不要硬给一个"可能值"** | | **要写代码** | 拿到确切答案后才下手 | ### 适用范围(全部) - 腾讯广告 v3.0 API 字段名 / 枚举值 / 嵌套结构 - 业务配置项的默认值 / 取值策略 - 字段语义(比如"稳定拿量"= 哪个 enum?) - 各种 ID(account_id、audience_pack_id、conversion_id、user_action_set_id...) - LLM 推理框架的具体阈值 - 工作流的执行顺序 ### 反例(过去犯过的错) | 我猜测 | 实际值 | 教训 | |---|---|---| | `marketing_carrier_type=MINI_PROGRAM_WECHAT` | `JUMP_PAGE` | 凭文档常识猜,错 | | `smart_bid_type=SYSTEMATIC`(稳定拿量) | `CUSTOM` + 配 `bid_strategy=AVERAGE_COST` + `auto_acquisition=True` 三件套 | 凭命名猜单字段,错 | | `optimization_goal=PAGE_VIEW` | `PROMOTION_VIEW_KEY_PAGE` | 凭含义猜枚举名,错 | | `auto_acquisition_enabled=False` | `True` | 凭"SOP 关闭智能"猜,错 | | `daily_budget=20000`(200 元) | `0`(不限,由 auto_acquisition_budget 控) | 凭习惯猜,错 | ### 验证手段优先级 1. **拉真实数据反推**(最准):`/adgroups/get` 查已跑通的广告 JSON 2. **读现有代码**:`tools/ad_api.py` 中已封装的真实参数 3. **读官方文档**(WebFetch 可能失败/有总结失真,作为辅助参考) 4. **dry run 试错**(用 `configured_status=AD_STATUS_SUSPEND` 试创建,看腾讯报错) 5. **反问用户** ### 哪些 WebFetch 等"二手"信息要警惕 - 文档页面如果只返回标题/header → 内容无效,不能引用 - WebFetch 返回的"原文照搬"结果,可能是 AI 处理过的摘要,**字段类型 / 必填性 / 枚举值** 都可能被简化 - → 二手信息**只用于"知道有这字段"**,具体值必须从真实数据反推 **这条规则**比任何 plan / skill / config 都优先级高。