| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>腾讯广告自动化投放 Agent 系统 — 技术架构图</title>
- <style>
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap');
- :root {
- --bg: #0f1723;
- --bg2: #162030;
- --bg3: #1a2840;
- --card: #19273a;
- --card-hover: #1e2f48;
- --border: #2d4060;
- --border-light: #3a5575;
- --text: #e6ebf0;
- --text-dim: #9aa8ba;
- --text-muted: #6b7d94;
- --amber: #e0ac44;
- --amber-dim: #b48c37;
- --amber-bg: rgba(224,172,68,0.08);
- --green: #5cb278;
- --green-dim: #3d8050;
- --green-bg: rgba(92,178,120,0.1);
- --yellow: #dac34e;
- --yellow-dim: #a89430;
- --yellow-bg: rgba(218,195,78,0.1);
- --red: #c65852;
- --red-dim: #943e3a;
- --red-bg: rgba(198,88,82,0.1);
- --blue: #5a8ec8;
- --blue-dim: #406a96;
- --blue-bg: rgba(90,142,200,0.08);
- --cyan: #4db8a4;
- --cyan-dim: #367f72;
- --cyan-bg: rgba(77,184,164,0.08);
- --purple: #9b7ec8;
- --purple-dim: #7a5fa8;
- --purple-bg: rgba(155,126,200,0.08);
- --flow-data: #64a0dc;
- --flow-exec: #50b482;
- --flow-alert: #c86458;
- --flow-knowledge: #9b7ec8;
- --slate: #5677a4;
- --slate-light: #7c9bc3;
- }
- * { margin: 0; padding: 0; box-sizing: border-box; }
- body {
- background: var(--bg);
- color: var(--text);
- font-family: 'Noto Sans SC', 'Inter', sans-serif;
- min-height: 100vh;
- overflow-x: auto;
- }
- .container {
- width: 2400px;
- min-height: 2000px;
- margin: 0 auto;
- padding: 0;
- position: relative;
- }
- /* ─── Grid Background ─── */
- .grid-bg {
- position: absolute;
- inset: 0;
- background-image:
- linear-gradient(rgba(35,50,72,0.3) 1px, transparent 1px),
- linear-gradient(90deg, rgba(35,50,72,0.3) 1px, transparent 1px),
- linear-gradient(rgba(45,60,85,0.15) 1px, transparent 1px),
- linear-gradient(90deg, rgba(45,60,85,0.15) 1px, transparent 1px);
- background-size: 200px 200px, 200px 200px, 40px 40px, 40px 40px;
- pointer-events: none;
- z-index: 0;
- }
- /* ─── Title Bar ─── */
- .title-bar {
- position: relative;
- z-index: 2;
- height: 68px;
- background: linear-gradient(180deg, #121c2a 0%, #152238 100%);
- border-bottom: 2px solid var(--slate);
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 0 36px;
- }
- .title-bar h1 { font-size: 28px; font-weight: 600; color: var(--text); letter-spacing: 1px; }
- .title-bar .subtitle { font-family: 'Inter', sans-serif; font-size: 18px; font-weight: 500; color: var(--slate-light); margin-left: 20px; letter-spacing: 2px; text-transform: uppercase; }
- .title-right { text-align: right; }
- .title-right .fw-name { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; color: var(--amber-dim); }
- .title-right .version { font-family: 'Inter', sans-serif; font-size: 11px; color: var(--text-dim); margin-top: 2px; }
- /* ─── Content Area ─── */
- .content { position: relative; z-index: 1; padding: 24px 30px 30px; }
- /* ─── Legend ─── */
- .legend {
- position: absolute; top: 80px; right: 36px; z-index: 10;
- background: rgba(20,30,48,0.95); border: 1px solid var(--border); border-radius: 8px;
- padding: 12px 18px; min-width: 420px; backdrop-filter: blur(8px);
- }
- .legend-title { font-size: 12px; color: var(--text-dim); margin-bottom: 8px; font-weight: 500; }
- .legend-row { display: flex; gap: 20px; margin-bottom: 4px; }
- .legend-item { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text-dim); }
- .legend-line { width: 28px; height: 2px; flex-shrink: 0; border-radius: 1px; }
- .legend-line-dash { width: 28px; height: 0; flex-shrink: 0; border-top: 2px dashed; }
- /* ─── Section Headers ─── */
- .section-label {
- font-size: 11px; font-weight: 600; color: var(--text-muted); text-transform: uppercase;
- letter-spacing: 3px; margin-bottom: 12px; font-family: 'Inter', sans-serif;
- display: flex; align-items: center; gap: 8px;
- }
- .section-label::after { content: ''; flex: 1; height: 1px; background: var(--border); }
- .layer-tag {
- display: inline-block; font-size: 10px; font-weight: 600; font-family: 'Inter', sans-serif;
- letter-spacing: 1.5px; text-transform: uppercase; padding: 3px 10px; border-radius: 3px; margin-right: 8px;
- }
- /* ─── User Input ─── */
- .user-input {
- display: inline-flex; align-items: center; gap: 12px; background: var(--card);
- border: 2px solid var(--amber); border-radius: 10px; padding: 10px 20px; margin-bottom: 16px;
- }
- .user-input .icon { width: 32px; height: 32px; background: var(--amber-bg); border: 1px solid var(--amber-dim); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 16px; }
- .user-input .label { font-size: 16px; font-weight: 600; color: var(--amber); }
- .user-input .example { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--text-dim); background: rgba(224,172,68,0.06); padding: 3px 8px; border-radius: 4px; }
- .confirm-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--green-bg); border: 1px solid var(--green-dim); border-radius: 6px; padding: 6px 14px; font-size: 13px; color: var(--green); margin-left: 12px; }
- /* ─── Main Agent ─── */
- .main-agent-row { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 20px; }
- .main-agent {
- flex: 1; max-width: 580px;
- background: linear-gradient(135deg, rgba(35,52,75,0.9), rgba(25,39,58,0.95));
- border: 2px solid var(--amber); border-radius: 12px; padding: 16px 22px; position: relative;
- }
- .main-agent::before { content: ''; position: absolute; top: -1px; left: 20px; right: 20px; height: 3px; background: linear-gradient(90deg, transparent, var(--amber), transparent); border-radius: 0 0 4px 4px; }
- .main-agent .agent-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
- .main-agent .agent-name { font-size: 18px; font-weight: 700; color: var(--amber); }
- .main-agent .agent-cn { font-size: 15px; font-weight: 500; color: var(--text); }
- .main-agent .agent-desc { font-size: 12px; color: var(--text-dim); margin-bottom: 6px; }
- .main-agent .agent-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--slate-light); }
- /* ─── Workflow Badges ─── */
- .wf-badge { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 500; border: 1px solid; }
- .wf-analysis { background: rgba(92,178,120,0.06); border-color: var(--green-dim); color: var(--green); }
- .wf-execution { background: rgba(200,100,90,0.06); border-color: var(--red-dim); color: #d08060; }
- .wf-badge .temp { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-muted); margin-left: 4px; }
- /* ─── Agent Cards ─── */
- .agents-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 20px; }
- .agents-grid-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; max-width: 940px; }
- .agent-card {
- background: var(--card); border-radius: 10px; border: 1.5px solid var(--border-light); overflow: hidden;
- }
- .agent-card .card-header { padding: 10px 14px; display: flex; align-items: center; gap: 8px; background: rgba(90,142,200,0.06); }
- .card-icon { font-size: 16px; flex-shrink: 0; }
- .card-name { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; color: var(--text); }
- .card-cn { font-size: 11px; font-weight: 500; margin-left: auto; color: var(--slate-light); }
- .card-body { padding: 10px 14px 12px; }
- .card-scope { font-size: 11px; color: var(--text); font-weight: 500; margin-bottom: 6px; line-height: 1.5; }
- .card-divider { height: 1px; background: var(--border); margin: 6px 0; }
- .card-section-title { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; color: var(--slate-light); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
- .dep-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
- .dep-tag { font-size: 10px; padding: 2px 7px; border-radius: 3px; }
- .dep-tag.skill { font-family: 'JetBrains Mono', monospace; background: rgba(155,126,200,0.1); border: 1px solid rgba(155,126,200,0.2); color: var(--purple); }
- .dep-tag.tool { font-family: 'JetBrains Mono', monospace; background: rgba(77,184,164,0.1); border: 1px solid rgba(77,184,164,0.2); color: var(--cyan); }
- .dep-tag.data { font-family: 'JetBrains Mono', monospace; background: rgba(100,160,220,0.1); border: 1px solid rgba(100,160,220,0.2); color: var(--flow-data); }
- .card-details { list-style: none; font-size: 11px; color: var(--text-dim); line-height: 1.7; }
- .card-details li::before { content: '·'; margin-right: 6px; color: var(--text-muted); }
- .card-output { margin-top: 6px; font-size: 10px; color: var(--green); font-weight: 500; display: flex; align-items: center; gap: 4px; }
- .card-output::before { content: '→'; color: var(--flow-exec); }
- /* ─── Two-column layout ─── */
- .dual-section { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 14px; }
- .triple-section { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-top: 14px; }
- /* ─── Tool Layer Panel ─── */
- .tool-panel {
- background: var(--card); border: 1px solid var(--cyan-dim); border-radius: 10px; padding: 14px 18px;
- }
- .tool-panel-title { font-size: 14px; font-weight: 600; color: var(--cyan); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
- .tool-group { margin-bottom: 10px; }
- .tool-group-title { font-size: 10px; font-weight: 600; color: var(--cyan-dim); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 4px; padding-bottom: 2px; border-bottom: 1px solid rgba(77,184,164,0.15); }
- .tool-item { font-size: 11px; color: var(--text-dim); padding: 2px 0; display: flex; gap: 8px; align-items: baseline; }
- .tool-item .fn { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text); min-width: 200px; }
- .tool-item .td { color: var(--text-muted); font-size: 10px; }
- /* ─── Data Layer Panel ─── */
- .data-panel {
- background: var(--card); border: 1px solid var(--blue-dim); border-radius: 10px; padding: 14px 18px;
- }
- .data-panel-title { font-size: 14px; font-weight: 600; color: var(--flow-data); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
- .data-group { margin-bottom: 10px; }
- .data-group-title { font-size: 10px; font-weight: 600; color: var(--blue-dim); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 4px; padding-bottom: 2px; border-bottom: 1px solid rgba(90,142,200,0.15); }
- .data-item { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-dim); padding: 2px 0; display: flex; gap: 8px; }
- .data-item .prefix { color: var(--text-muted); flex-shrink: 0; }
- .data-item .desc { color: var(--slate-light); margin-left: auto; font-family: 'Noto Sans SC', sans-serif; font-size: 11px; }
- /* ─── Knowledge/Skill Layer Panel ─── */
- .knowledge-panel {
- background: var(--card); border: 1px solid var(--purple-dim); border-radius: 10px; padding: 14px 18px;
- }
- .knowledge-panel-title { font-size: 14px; font-weight: 600; color: var(--purple); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
- .knowledge-group { margin-bottom: 10px; }
- .knowledge-group-title { font-size: 10px; font-weight: 600; color: var(--purple-dim); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 4px; padding-bottom: 2px; border-bottom: 1px solid rgba(155,126,200,0.15); }
- .knowledge-item { font-size: 11px; color: var(--text-dim); padding: 3px 0; display: flex; gap: 8px; align-items: baseline; }
- .knowledge-item .kn { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--purple); min-width: 180px; }
- .knowledge-item .kd { color: var(--text-muted); font-size: 10px; }
- .knowledge-item .ka { font-size: 10px; color: var(--slate-light); margin-left: auto; }
- /* ─── Rules Panel ─── */
- .rules-panel { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }
- .rules-title { font-size: 14px; font-weight: 600; color: var(--amber); margin-bottom: 10px; }
- .rule-group-title { font-size: 11px; font-weight: 600; color: var(--amber-dim); margin: 8px 0 4px; padding-bottom: 2px; border-bottom: 1px solid rgba(180,140,55,0.15); }
- .rule-item { font-size: 11px; color: var(--text-dim); padding: 2px 0; line-height: 1.5; }
- /* ─── Data Flows ─── */
- .flows-panel { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }
- .flow-item { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 4px 0; }
- .flow-num { font-weight: 600; font-size: 13px; width: 24px; text-align: center; }
- .flow-label { font-weight: 600; min-width: 110px; }
- .flow-desc { color: var(--text-dim); font-size: 11px; }
- /* ─── Framework Bar ─── */
- .framework-bar {
- margin-top: 16px;
- background: linear-gradient(180deg, rgba(18,26,40,0.95), rgba(15,23,35,0.98));
- border: 1px solid var(--slate); border-radius: 10px; padding: 14px 24px;
- }
- .fw-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
- .fw-title { font-size: 16px; font-weight: 600; color: var(--slate-light); }
- .fw-modules { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
- .fw-module { padding: 8px 12px; background: rgba(30,45,65,0.5); border: 1px solid var(--border); border-radius: 6px; }
- .fw-module-name { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; color: var(--amber); margin-bottom: 2px; }
- .fw-module-desc { font-size: 11px; color: var(--text-dim); }
- /* ─── Relationship arrows ─── */
- .agent-relationships { margin: 10px 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; }
- .rel-arrow { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; padding: 4px 10px; border-radius: 4px; background: rgba(30,42,58,0.8); border: 1px solid var(--border); }
- .rel-arrow .from, .rel-arrow .to { font-weight: 600; font-family: 'Inter', sans-serif; font-size: 10px; }
- .rel-arrow .arrow-sym { color: var(--text-muted); font-size: 12px; }
- .rel-arrow.data-flow { border-color: rgba(100,160,220,0.3); }
- .rel-arrow.data-flow .arrow-sym { color: var(--flow-data); }
- .rel-arrow.exec-flow { border-color: rgba(80,180,130,0.3); }
- .rel-arrow.exec-flow .arrow-sym { color: var(--flow-exec); }
- .rel-arrow.alert-flow { border-color: rgba(200,100,88,0.3); }
- .rel-arrow.alert-flow .arrow-sym { color: var(--flow-alert); }
- .rel-arrow.knowledge-flow { border-color: rgba(155,126,200,0.3); }
- .rel-arrow.knowledge-flow .arrow-sym { color: var(--flow-knowledge); }
- .rel-arrow.match-flow { border-color: rgba(218,195,78,0.3); }
- .rel-arrow.match-flow .arrow-sym { color: var(--yellow); }
- /* ─── Border ─── */
- .container::after { content: ''; position: absolute; inset: 0; border: 2px solid var(--slate); pointer-events: none; z-index: 100; }
- /* ─── Agent-to-layer connector labels ─── */
- .connector-row {
- display: flex; gap: 10px; align-items: center; justify-content: center;
- margin: 8px 0; padding: 4px 0;
- }
- .connector-label {
- font-size: 10px; font-weight: 500; padding: 2px 10px; border-radius: 10px;
- }
- .connector-down { color: var(--text-muted); font-size: 16px; }
- </style>
- </head>
- <body>
- <div class="container">
- <div class="grid-bg"></div>
- <!-- ═══ TITLE BAR ═══ -->
- <div class="title-bar">
- <div style="display:flex;align-items:baseline;gap:6px;">
- <h1>腾讯广告自动化投放 Agent 系统</h1>
- <span class="subtitle">Technical Architecture</span>
- </div>
- <div class="title-right">
- <div class="fw-name">Reson Agent Framework</div>
- <div class="version">v3.0 · Agent Perspective</div>
- </div>
- </div>
- <!-- ═══ LEGEND ═══ -->
- <div class="legend">
- <div class="legend-title">图例 LEGEND</div>
- <div class="legend-row">
- <div class="legend-item"><div class="legend-line" style="background:var(--flow-data)"></div>数据流 Data</div>
- <div class="legend-item"><div class="legend-line" style="background:var(--flow-exec)"></div>执行流 Exec</div>
- <div class="legend-item"><div class="legend-line" style="background:var(--flow-alert)"></div>告警流 Alert</div>
- <div class="legend-item"><div class="legend-line" style="background:var(--flow-knowledge)"></div>知识流 Knowledge</div>
- <div class="legend-item"><div class="legend-line" style="background:var(--amber)"></div>调度流 Dispatch</div>
- </div>
- <div class="legend-row" style="margin-top:6px;">
- <div class="legend-item"><div class="dep-tag skill" style="margin:0;">skill</div>策略/知识依赖</div>
- <div class="legend-item"><div class="dep-tag tool" style="margin:0;">tool</div>工具依赖</div>
- <div class="legend-item"><div class="dep-tag data" style="margin:0;">data</div>数据源依赖</div>
- </div>
- </div>
- <div class="content">
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <!-- ═══ L1: ENTRY LAYER ═══ -->
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <div class="section-label">
- <span class="layer-tag" style="background:var(--amber-bg);color:var(--amber);border:1px solid rgba(224,172,68,0.2);">L1</span>
- 入口层 · Entry Layer
- </div>
- <div class="main-agent-row">
- <div style="display:flex;flex-direction:column;gap:8px;flex-shrink:0;">
- <div class="user-input">
- <div class="icon">👤</div>
- <div>
- <div class="label">用户输入 / 运营</div>
- <div class="example">"今日预算10w, ROI目标1.5"</div>
- </div>
- </div>
- <div class="confirm-badge" style="margin-left:0;">
- <span>✓</span> 运营确认 → 执行
- </div>
- </div>
- <div style="display:flex;align-items:center;color:var(--amber);font-size:24px;padding:0 4px;">→</div>
- <div class="main-agent">
- <div class="agent-header">
- <div class="agent-name">Main Agent</div>
- <div class="agent-cn">· 投放决策中枢</div>
- </div>
- <div class="agent-desc">task.prompt | 任务理解 → 子Agent调度 → 方案汇总 → 运营确认 → 反馈沉淀</div>
- <div class="agent-meta">AgentRunner → LLM → Tool → Trace → Knowledge</div>
- </div>
- <div style="display:flex;gap:12px;align-items:center;margin-left:auto;">
- <div class="wf-badge wf-analysis">
- <span>📊</span> 分析模式 <span class="temp">temp=0.3</span>
- </div>
- <div style="color:var(--text-muted);font-size:16px;">→</div>
- <div class="wf-badge wf-execution">
- <span>⚡</span> 执行模式 <span class="temp">temp=0.1</span>
- </div>
- </div>
- </div>
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <!-- ═══ L2: AGENT LAYER — 5 Decision + 1 Execution Gateway ═══ -->
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <div class="section-label">
- <span class="layer-tag" style="background:var(--blue-bg);color:var(--blue);border:1px solid rgba(90,142,200,0.2);">L2</span>
- 决策层 · Agent Layer — 5个决策Agent + 1个执行网关
- </div>
- <!-- Agent relationship arrows -->
- <div class="agent-relationships">
- <div class="rel-arrow data-flow">
- <span class="from">Budget</span>
- <span class="arrow-sym">→ data_query →</span>
- <span class="to">ODPS</span>
- </div>
- <div class="rel-arrow data-flow">
- <span class="from">Audience</span>
- <span class="arrow-sym">→ data_query →</span>
- <span class="to">ODPS</span>
- </div>
- <div class="rel-arrow data-flow">
- <span class="from">Creative</span>
- <span class="arrow-sym">→ data_query →</span>
- <span class="to">ODPS</span>
- </div>
- <div class="rel-arrow match-flow">
- <span class="from">Audience</span>
- <span class="arrow-sym">→ 人群-素材匹配 →</span>
- <span class="to">Creative</span>
- </div>
- <div class="rel-arrow exec-flow">
- <span class="from">运营确认</span>
- <span class="arrow-sym">→ 方案 →</span>
- <span class="to">System Ops</span>
- </div>
- <div class="rel-arrow exec-flow">
- <span class="from">System Ops</span>
- <span class="arrow-sym">→ ad_api →</span>
- <span class="to">腾讯API</span>
- </div>
- <div class="rel-arrow alert-flow">
- <span class="from">Monitor</span>
- <span class="arrow-sym">→ 熔断 →</span>
- <span class="to">腾讯API</span>
- </div>
- <div class="rel-arrow knowledge-flow">
- <span class="from">Feedback</span>
- <span class="arrow-sym">→ 沉淀 →</span>
- <span class="to">Knowledge Base</span>
- </div>
- <div class="rel-arrow knowledge-flow">
- <span class="from">Knowledge</span>
- <span class="arrow-sym">→ 注入 →</span>
- <span class="to">All Agents</span>
- </div>
- </div>
- <!-- ─── Decision Agents (5 columns) ─── -->
- <div class="agents-grid">
- <!-- Budget Agent -->
- <div class="agent-card">
- <div class="card-header">
- <span class="card-icon">💰</span>
- <span class="card-name">Budget Agent</span>
- <span class="card-cn">钱</span>
- </div>
- <div class="card-body">
- <div class="card-scope">预算分配 · 出价优化 · ROI管控</div>
- <div class="card-divider"></div>
- <div class="card-section-title">依赖 · Skills & 知识</div>
- <div class="dep-tags">
- <span class="dep-tag skill">budget_strategy.md</span>
- <span class="dep-tag skill">ad_domain.md</span>
- </div>
- <div class="card-section-title">依赖 · 工具</div>
- <div class="dep-tags">
- <span class="dep-tag tool">data_query</span>
- <span class="dep-tag tool">budget_calc</span>
- </div>
- <div class="card-section-title">依赖 · 数据</div>
- <div class="dep-tags">
- <span class="dep-tag data">消耗/ROI</span>
- <span class="dep-tag data">广告状态</span>
- </div>
- <div class="card-divider"></div>
- <ul class="card-details">
- <li>ROI×跑量 二维决策矩阵</li>
- <li>冷启动/赔付保护机制</li>
- <li>阶梯式调价 · PID控制</li>
- </ul>
- <div class="card-output">输出: 预算/出价调整方案</div>
- </div>
- </div>
- <!-- Audience Agent -->
- <div class="agent-card">
- <div class="card-header">
- <span class="card-icon">👥</span>
- <span class="card-name">Audience Agent</span>
- <span class="card-cn">人</span>
- </div>
- <div class="card-body">
- <div class="card-scope">人群规划 · 定向策略 · 效果分析</div>
- <div class="card-divider"></div>
- <div class="card-section-title">依赖 · Skills & 知识</div>
- <div class="dep-tags">
- <span class="dep-tag skill">audience_strategy.md</span>
- <span class="dep-tag skill">ad_domain.md</span>
- </div>
- <div class="card-section-title">依赖 · 工具</div>
- <div class="dep-tags">
- <span class="dep-tag tool">data_query</span>
- <span class="dep-tag tool">audience_targeting</span>
- </div>
- <div class="card-section-title">依赖 · 数据</div>
- <div class="dep-tags">
- <span class="dep-tag data">人群效果</span>
- <span class="dep-tag data">定向配置</span>
- </div>
- <div class="card-divider"></div>
- <ul class="card-details">
- <li>年龄/性别/区域定向组合</li>
- <li>人群包管理与推荐</li>
- <li>人群效果A/B分析</li>
- </ul>
- <div class="card-output">输出: 定向方案</div>
- </div>
- </div>
- <!-- Creative Agent -->
- <div class="agent-card">
- <div class="card-header">
- <span class="card-icon">🎨</span>
- <span class="card-name">Creative Agent</span>
- <span class="card-cn">素材</span>
- </div>
- <div class="card-body">
- <div class="card-scope">素材分析 · 人群匹配 · 生命周期</div>
- <div class="card-divider"></div>
- <div class="card-section-title">依赖 · Skills & 知识</div>
- <div class="dep-tags">
- <span class="dep-tag skill">creative_strategy.md</span>
- <span class="dep-tag skill">ad_domain.md</span>
- </div>
- <div class="card-section-title">依赖 · 工具</div>
- <div class="dep-tags">
- <span class="dep-tag tool">data_query</span>
- <span class="dep-tag tool">creative_tools</span>
- </div>
- <div class="card-section-title">依赖 · 数据</div>
- <div class="dep-tags">
- <span class="dep-tag data">创意效果</span>
- <span class="dep-tag data">素材库</span>
- </div>
- <div class="card-divider"></div>
- <ul class="card-details">
- <li>CTR/CVR/完播率分析</li>
- <li>素材衰退检测与轮换</li>
- <li>组件化创意组合</li>
- </ul>
- <div class="card-output">输出: 素材方案</div>
- </div>
- </div>
- <!-- Monitor Agent -->
- <div class="agent-card">
- <div class="card-header">
- <span class="card-icon">🔍</span>
- <span class="card-name">Monitor Agent</span>
- <span class="card-cn">监控</span>
- </div>
- <div class="card-body">
- <div class="card-scope">异常检测 · 熔断策略 · 根因分析</div>
- <div class="card-divider"></div>
- <div class="card-section-title">依赖 · Skills & 知识</div>
- <div class="dep-tags">
- <span class="dep-tag skill">monitor_rules.md</span>
- <span class="dep-tag skill">ad_domain.md</span>
- </div>
- <div class="card-section-title">依赖 · 工具</div>
- <div class="dep-tags">
- <span class="dep-tag tool">data_query</span>
- <span class="dep-tag tool">monitor_tools</span>
- <span class="dep-tag tool">ad_api(写)</span>
- </div>
- <div class="card-section-title">依赖 · 数据</div>
- <div class="dep-tags">
- <span class="dep-tag data">实时指标</span>
- <span class="dep-tag data">告警阈值</span>
- </div>
- <div class="card-divider"></div>
- <ul class="card-details">
- <li>CPA突增/转化骤降检测</li>
- <li>L1告警/L2降级/L3熔断</li>
- <li>15min/1h/日 三周期</li>
- </ul>
- <div class="card-output">输出: 熔断/告警决策</div>
- </div>
- </div>
- <!-- Feedback Agent -->
- <div class="agent-card">
- <div class="card-header">
- <span class="card-icon">🔄</span>
- <span class="card-name">Feedback Agent</span>
- <span class="card-cn">反馈</span>
- </div>
- <div class="card-body">
- <div class="card-scope">后验分析 · 策略归纳 · 知识沉淀</div>
- <div class="card-divider"></div>
- <div class="card-section-title">依赖 · Skills & 知识</div>
- <div class="dep-tags">
- <span class="dep-tag skill">feedback_strategy.md</span>
- <span class="dep-tag skill">全部策略Skills</span>
- </div>
- <div class="card-section-title">依赖 · 工具</div>
- <div class="dep-tags">
- <span class="dep-tag tool">data_query</span>
- <span class="dep-tag tool">knowledge_tools</span>
- </div>
- <div class="card-section-title">依赖 · 数据</div>
- <div class="dep-tags">
- <span class="dep-tag data">历史投放</span>
- <span class="dep-tag data">Trace</span>
- </div>
- <div class="card-divider"></div>
- <ul class="card-details">
- <li>投放效果归因分析</li>
- <li>策略规则提炼</li>
- <li>案例沉淀至知识库</li>
- </ul>
- <div class="card-output">输出: 策略更新 → Knowledge</div>
- </div>
- </div>
- </div>
- <!-- ─── System Ops (Execution Gateway) ─── -->
- <div class="agents-grid-row2">
- <div class="agent-card" style="border-color:var(--flow-exec);">
- <div class="card-header" style="background:rgba(80,180,130,0.06);">
- <span class="card-icon">⚡</span>
- <span class="card-name">System Ops Agent</span>
- <span class="card-cn" style="color:var(--flow-exec);">执行网关</span>
- </div>
- <div class="card-body">
- <div class="card-scope">接收已确认方案 → API调用 → 执行变更 → 变更记录</div>
- <div class="card-divider"></div>
- <div class="card-section-title">依赖 · Skills & 知识</div>
- <div class="dep-tags">
- <span class="dep-tag skill">ad_domain.md</span>
- </div>
- <div class="card-section-title">依赖 · 工具</div>
- <div class="dep-tags">
- <span class="dep-tag tool">ad_api(读+写)</span>
- <span class="dep-tag tool">execute_plan</span>
- </div>
- <div class="card-section-title">依赖 · 数据</div>
- <div class="dep-tags">
- <span class="dep-tag data">已确认方案</span>
- <span class="dep-tag data">Task State</span>
- </div>
- <div class="card-divider"></div>
- <ul class="card-details">
- <li>广告创建/修改/关停 全生命周期</li>
- <li>创意配置 · 组件化管理</li>
- <li>批量操作 + dry-run验证</li>
- <li>操作变更记录与通知</li>
- </ul>
- <div class="card-output">输出: 执行结果 → 腾讯API + Trace</div>
- </div>
- </div>
- <!-- Agent 内部结构说明 -->
- <div style="background:rgba(30,42,58,0.5);border:1px dashed var(--border);border-radius:10px;padding:14px 18px;">
- <div style="font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px;">每个 Agent 的内部结构</div>
- <div style="font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--text-dim);line-height:2;">
- <div style="color:var(--amber);">Agent = LLM推理引擎</div>
- <div> + <span style="color:var(--purple);">Skills</span> (策略知识注入)</div>
- <div> + <span style="color:var(--cyan);">Tools</span> (获取/计算/执行能力)</div>
- <div> + <span style="color:var(--flow-data);">Data</span> (数据源读取)</div>
- <div> → <span style="color:var(--flow-exec);">输出决策方案</span></div>
- </div>
- <div class="card-divider"></div>
- <div style="font-size:11px;color:var(--text-muted);line-height:1.7;">
- <div>· Agent 只做<strong style="color:var(--text);">决策</strong>,不做透传</div>
- <div>· 数据获取能力通过<strong style="color:var(--cyan);">共享工具</strong>下沉</div>
- <div>· 策略知识通过<strong style="color:var(--purple);">Skill注入</strong>,非硬编码</div>
- <div>· 写操作集中在<strong style="color:var(--flow-exec);">System Ops</strong>网关</div>
- </div>
- </div>
- </div>
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <!-- ═══ L3: CAPABILITY + DATA + KNOWLEDGE ═══ -->
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <div class="section-label">
- <span class="layer-tag" style="background:rgba(86,119,164,0.1);color:var(--slate);border:1px solid rgba(86,119,164,0.2);">L3</span>
- 能力层 · 数据层 · 知识层 — Tools & Data & Knowledge
- </div>
- <div class="triple-section">
- <!-- ─── Tool Layer (能力层) ─── -->
- <div class="tool-panel">
- <div class="tool-panel-title">
- <span style="font-size:16px;">⚙️</span>
- 能力层 Tools · 工具
- </div>
- <div class="tool-group">
- <div class="tool-group-title">获取 · Read</div>
- <div class="tool-item"><span class="fn">data_query(type, sql)</span><span class="td">→ ODPS 7种查询</span></div>
- <div class="tool-item"><span class="fn">data_aggregate()</span><span class="td">→ 聚合分析</span></div>
- <div class="tool-item"><span class="fn">get_ad_current_status()</span><span class="td">→ 广告实时状态</span></div>
- <div class="tool-item"><span class="fn">ad_get_list / ad_get_report</span><span class="td">→ 腾讯API(读)</span></div>
- <div class="tool-item"><span class="fn">audience_get_list</span><span class="td">→ 人群包列表</span></div>
- </div>
- <div class="tool-group">
- <div class="tool-group-title">计算 · Compute</div>
- <div class="tool-item"><span class="fn">budget_calc(data)</span><span class="td">→ ROI决策矩阵</span></div>
- <div class="tool-item"><span class="fn">audience_build_targeting</span><span class="td">→ 定向生成</span></div>
- <div class="tool-item"><span class="fn">audience_recommend_targeting</span><span class="td">→ 定向推荐</span></div>
- <div class="tool-item"><span class="fn">monitor_check_metrics</span><span class="td">→ 指标检查</span></div>
- </div>
- <div class="tool-group" style="margin-bottom:0;">
- <div class="tool-group-title">执行 · Write</div>
- <div class="tool-item"><span class="fn">ad_create / ad_update</span><span class="td">→ 广告操作</span></div>
- <div class="tool-item"><span class="fn">ad_batch_update_status</span><span class="td">→ 批量状态</span></div>
- <div class="tool-item"><span class="fn">creative_create / update</span><span class="td">→ 创意操作</span></div>
- <div class="tool-item"><span class="fn">execute_adjustment_plan</span><span class="td">→ 方案执行</span></div>
- <div class="tool-item"><span class="fn">monitor_circuit_break</span><span class="td">→ 熔断执行</span></div>
- </div>
- </div>
- <!-- ─── Data Layer (数据层) ─── -->
- <div class="data-panel">
- <div class="data-panel-title">
- <span style="font-size:16px;">🗄️</span>
- 数据层 Data · 存储
- </div>
- <div class="data-group">
- <div class="data-group-title">外部数据源 · External</div>
- <div style="font-size:11px;color:var(--text);font-weight:500;margin-bottom:4px;">ODPS / MaxCompute — loghubods 库</div>
- <div class="data-item"><span class="prefix">├─</span><span>ad_put_tencent_ad</span><span class="desc">广告基础</span></div>
- <div class="data-item"><span class="prefix">├─</span><span>ad_put_tencent_creative_data_day</span><span class="desc">创意日报</span></div>
- <div class="data-item"><span class="prefix">├─</span><span>ad_put_tencent_account_data</span><span class="desc">账户消耗</span></div>
- <div class="data-item"><span class="prefix">└─</span><span>fission_data / roi_data</span><span class="desc">裂变&ROI</span></div>
- <div style="font-size:11px;color:var(--text);font-weight:500;margin:8px 0 4px;">腾讯广告 Marketing API v3.0</div>
- <div class="data-item"><span class="prefix">├─</span><span>/v3.0/adgroups/*</span><span class="desc">广告</span></div>
- <div class="data-item"><span class="prefix">├─</span><span>/v3.0/dynamic_creatives/*</span><span class="desc">创意</span></div>
- <div class="data-item"><span class="prefix">└─</span><span>bid_mode=OCPM QPS≤10</span><span class="desc">限制</span></div>
- </div>
- <div class="data-group">
- <div class="data-group-title">运行时状态 · Runtime</div>
- <div class="data-item"><span class="prefix">├─</span><span>Task State</span><span class="desc">方案/中间结果</span></div>
- <div class="data-item"><span class="prefix">├─</span><span>Agent Context</span><span class="desc">对话上下文</span></div>
- <div class="data-item"><span class="prefix">└─</span><span>Trace Store</span><span class="desc">执行轨迹/审计</span></div>
- </div>
- <div class="data-group" style="margin-bottom:0;">
- <div class="data-group-title">知识存储 · Knowledge Store</div>
- <div class="data-item"><span class="prefix">├─</span><span>Knowledge Base</span><span class="desc">动态沉淀</span></div>
- <div class="data-item"><span class="prefix">└─</span><span>Case Base</span><span class="desc">投放案例库</span></div>
- </div>
- </div>
- <!-- ─── Knowledge Layer (知识层) ─── -->
- <div class="knowledge-panel">
- <div class="knowledge-panel-title">
- <span style="font-size:16px;">📚</span>
- 知识层 Knowledge · Skills
- </div>
- <div class="knowledge-group">
- <div class="knowledge-group-title">静态知识 · Skills (Markdown 注入)</div>
- <div class="knowledge-item">
- <span class="kn">ad_domain.md</span>
- <span class="kd">3.0平台结构 · API映射 · 投放流程</span>
- <span class="ka">→ 全部Agent</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">budget_strategy.md</span>
- <span class="kd">决策矩阵 · 冷启动 · 赔付 · 调价</span>
- <span class="ka">→ Budget</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">audience_strategy.md</span>
- <span class="kd">人群定向策略 · 圈选规则</span>
- <span class="ka">→ Audience</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">creative_strategy.md</span>
- <span class="kd">素材策略 · 匹配规则 · 生命周期</span>
- <span class="ka">→ Creative</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">monitor_rules.md</span>
- <span class="kd">监控规则 · 告警阈值 · 熔断条件</span>
- <span class="ka">→ Monitor</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">feedback_strategy.md</span>
- <span class="kd">后验分析 · 策略归纳 · 沉淀规则</span>
- <span class="ka">→ Feedback</span>
- </div>
- </div>
- <div class="knowledge-group" style="margin-bottom:0;">
- <div class="knowledge-group-title">动态知识 · Knowledge Base (持久化)</div>
- <div class="knowledge-item">
- <span class="kn">投放经验</span>
- <span class="kd">"账户A降价10%实际消耗降30%"</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">时间规律</span>
- <span class="kd">"周末转化率通常高15%"</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">人群洞察</span>
- <span class="kd">"人群包X在25-34男性效果最好"</span>
- </div>
- <div class="knowledge-item">
- <span class="kn">熔断经验</span>
- <span class="kd">"CPA连续3天>50应提前熔断"</span>
- </div>
- <div style="margin-top:6px;font-size:10px;color:var(--purple-dim);font-style:italic;">
- ← Feedback Agent 持续写入 · 全部 Agent 决策时读取
- </div>
- </div>
- </div>
- </div>
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <!-- ═══ BUSINESS RULES + DATA FLOWS ═══ -->
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <div class="dual-section">
- <!-- Business Rules -->
- <div class="rules-panel">
- <div class="rules-title">关键业务规则 Key Rules</div>
- <div class="rule-group-title">─── oCPM 出价机制 ───</div>
- <div class="rule-item">eCPM = bid × pCTR × pCVR × 1000</div>
- <div class="rule-item">降10%出价 ≈ 降15-25%消耗(非线性)</div>
- <div class="rule-item">掉量悬崖: eCPM<竞争水位 → 断崖式跌落</div>
- <div class="rule-group-title">─── 决策矩阵 ROI×跑量 ───</div>
- <div class="rule-item">高ROI+低跑量 → increase +10%~15%</div>
- <div class="rule-item">中ROI+高跑量 → decrease -5%~10%</div>
- <div class="rule-item">低ROI+低跑量 → close(标记关停)</div>
- <div class="rule-group-title">─── 保护机制 ───</div>
- <div class="rule-item">冷启动: <48h ∨ 转化<6 → observe</div>
- <div class="rule-item">赔付: 转化≥6 且 CPA偏离≥20% → 先赔付</div>
- <div class="rule-item">熔断: CPA>阈值 ∨ 消耗异常 → 暂停</div>
- </div>
- <!-- Core Data Flows -->
- <div class="flows-panel">
- <div class="rules-title" style="margin-bottom:8px;">核心数据流 Core Flows</div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--amber)">①</span>
- <div>
- <div class="flow-label" style="color:var(--amber)">任务分发</div>
- <div class="flow-desc">User → Main Agent → 子Agent(Budget/Audience/Creative)</div>
- </div>
- </div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--flow-data)">②</span>
- <div>
- <div class="flow-label" style="color:var(--flow-data)">数据获取</div>
- <div class="flow-desc">决策Agent → data_query(Tool) → ODPS(Data) → 原始数据</div>
- </div>
- </div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--purple)">③</span>
- <div>
- <div class="flow-label" style="color:var(--purple)">知识注入</div>
- <div class="flow-desc">Skills(静态) + Knowledge(动态) → Agent Context → 辅助决策</div>
- </div>
- </div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--cyan)">④</span>
- <div>
- <div class="flow-label" style="color:var(--cyan)">方案计算</div>
- <div class="flow-desc">Agent + 数据 + 知识 → budget_calc/targeting(Tool) → 调整方案</div>
- </div>
- </div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--flow-exec)">⑤</span>
- <div>
- <div class="flow-label" style="color:var(--flow-exec)">运营确认→执行</div>
- <div class="flow-desc">方案 → 运营确认 → System Ops → ad_api(Tool) → 腾讯API(Data)</div>
- </div>
- </div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--flow-alert)">⑥</span>
- <div>
- <div class="flow-label" style="color:var(--flow-alert)">监控熔断</div>
- <div class="flow-desc">Monitor Agent → 检测异常 → circuit_break(Tool) → 暂停广告</div>
- </div>
- </div>
- <div class="flow-item">
- <span class="flow-num" style="color:var(--flow-knowledge)">⑦</span>
- <div>
- <div class="flow-label" style="color:var(--flow-knowledge)">反馈沉淀</div>
- <div class="flow-desc">投放结果 → Feedback Agent → knowledge_tools → Knowledge Base</div>
- </div>
- </div>
- </div>
- </div>
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <!-- ═══ L4: FRAMEWORK ═══ -->
- <!-- ═══════════════════════════════════════════════════════════════ -->
- <div class="section-label" style="margin-top:16px;">
- <span class="layer-tag" style="background:rgba(86,119,164,0.1);color:var(--slate);border:1px solid rgba(86,119,164,0.2);">L4</span>
- 底层框架 · Reson Agent Framework
- </div>
- <div class="framework-bar">
- <div class="fw-header">
- <div class="fw-title">Reson Agent Framework</div>
- <div style="display:flex;gap:8px;">
- <div style="font-size:11px;padding:4px 12px;border-radius:4px;background:rgba(92,178,120,0.08);border:1px solid var(--green-dim);color:var(--green);">
- 分析 Analysis temp=0.3 · 只读工具
- </div>
- <div style="font-size:11px;padding:4px 12px;border-radius:4px;background:rgba(200,100,90,0.08);border:1px solid var(--red-dim);color:#d08060;">
- 执行 Execution temp=0.1 · 读写工具
- </div>
- </div>
- </div>
- <div class="fw-modules">
- <div class="fw-module">
- <div class="fw-module-name">AgentRunner</div>
- <div class="fw-module-desc">LLM循环引擎 · 工具调用</div>
- </div>
- <div class="fw-module">
- <div class="fw-module-name">LLM Adapters</div>
- <div class="fw-module-desc">Qwen / Gemini 适配</div>
- </div>
- <div class="fw-module">
- <div class="fw-module-name">Tool Registry</div>
- <div class="fw-module-desc">@tool注册 · 白名单</div>
- </div>
- <div class="fw-module">
- <div class="fw-module-name">Skill System</div>
- <div class="fw-module-desc">Markdown知识注入</div>
- </div>
- <div class="fw-module">
- <div class="fw-module-name">Trace System</div>
- <div class="fw-module-desc">GoalTree · 回溯</div>
- </div>
- <div class="fw-module">
- <div class="fw-module-name">Knowledge</div>
- <div class="fw-module-desc">动态知识管理</div>
- </div>
- </div>
- </div>
- </div><!-- .content -->
- </div><!-- .container -->
- </body>
- </html>
|