|
|
@@ -0,0 +1,927 @@
|
|
|
+<!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>
|