agent_architecture.html 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>腾讯广告自动化投放 Agent 系统 — 技术架构图</title>
  7. <style>
  8. @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');
  9. :root {
  10. --bg: #0f1723;
  11. --bg2: #162030;
  12. --bg3: #1a2840;
  13. --card: #19273a;
  14. --card-hover: #1e2f48;
  15. --border: #2d4060;
  16. --border-light: #3a5575;
  17. --text: #e6ebf0;
  18. --text-dim: #9aa8ba;
  19. --text-muted: #6b7d94;
  20. --amber: #e0ac44;
  21. --amber-dim: #b48c37;
  22. --amber-bg: rgba(224,172,68,0.08);
  23. --green: #5cb278;
  24. --green-dim: #3d8050;
  25. --green-bg: rgba(92,178,120,0.1);
  26. --yellow: #dac34e;
  27. --yellow-dim: #a89430;
  28. --yellow-bg: rgba(218,195,78,0.1);
  29. --red: #c65852;
  30. --red-dim: #943e3a;
  31. --red-bg: rgba(198,88,82,0.1);
  32. --blue: #5a8ec8;
  33. --blue-dim: #406a96;
  34. --blue-bg: rgba(90,142,200,0.08);
  35. --cyan: #4db8a4;
  36. --cyan-dim: #367f72;
  37. --cyan-bg: rgba(77,184,164,0.08);
  38. --purple: #9b7ec8;
  39. --purple-dim: #7a5fa8;
  40. --purple-bg: rgba(155,126,200,0.08);
  41. --flow-data: #64a0dc;
  42. --flow-exec: #50b482;
  43. --flow-alert: #c86458;
  44. --flow-knowledge: #9b7ec8;
  45. --slate: #5677a4;
  46. --slate-light: #7c9bc3;
  47. }
  48. * { margin: 0; padding: 0; box-sizing: border-box; }
  49. body {
  50. background: var(--bg);
  51. color: var(--text);
  52. font-family: 'Noto Sans SC', 'Inter', sans-serif;
  53. min-height: 100vh;
  54. overflow-x: auto;
  55. }
  56. .container {
  57. width: 2400px;
  58. min-height: 2000px;
  59. margin: 0 auto;
  60. padding: 0;
  61. position: relative;
  62. }
  63. /* ─── Grid Background ─── */
  64. .grid-bg {
  65. position: absolute;
  66. inset: 0;
  67. background-image:
  68. linear-gradient(rgba(35,50,72,0.3) 1px, transparent 1px),
  69. linear-gradient(90deg, rgba(35,50,72,0.3) 1px, transparent 1px),
  70. linear-gradient(rgba(45,60,85,0.15) 1px, transparent 1px),
  71. linear-gradient(90deg, rgba(45,60,85,0.15) 1px, transparent 1px);
  72. background-size: 200px 200px, 200px 200px, 40px 40px, 40px 40px;
  73. pointer-events: none;
  74. z-index: 0;
  75. }
  76. /* ─── Title Bar ─── */
  77. .title-bar {
  78. position: relative;
  79. z-index: 2;
  80. height: 68px;
  81. background: linear-gradient(180deg, #121c2a 0%, #152238 100%);
  82. border-bottom: 2px solid var(--slate);
  83. display: flex;
  84. align-items: center;
  85. justify-content: space-between;
  86. padding: 0 36px;
  87. }
  88. .title-bar h1 { font-size: 28px; font-weight: 600; color: var(--text); letter-spacing: 1px; }
  89. .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; }
  90. .title-right { text-align: right; }
  91. .title-right .fw-name { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; color: var(--amber-dim); }
  92. .title-right .version { font-family: 'Inter', sans-serif; font-size: 11px; color: var(--text-dim); margin-top: 2px; }
  93. /* ─── Content Area ─── */
  94. .content { position: relative; z-index: 1; padding: 24px 30px 30px; }
  95. /* ─── Legend ─── */
  96. .legend {
  97. position: absolute; top: 80px; right: 36px; z-index: 10;
  98. background: rgba(20,30,48,0.95); border: 1px solid var(--border); border-radius: 8px;
  99. padding: 12px 18px; min-width: 420px; backdrop-filter: blur(8px);
  100. }
  101. .legend-title { font-size: 12px; color: var(--text-dim); margin-bottom: 8px; font-weight: 500; }
  102. .legend-row { display: flex; gap: 20px; margin-bottom: 4px; }
  103. .legend-item { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text-dim); }
  104. .legend-line { width: 28px; height: 2px; flex-shrink: 0; border-radius: 1px; }
  105. .legend-line-dash { width: 28px; height: 0; flex-shrink: 0; border-top: 2px dashed; }
  106. /* ─── Section Headers ─── */
  107. .section-label {
  108. font-size: 11px; font-weight: 600; color: var(--text-muted); text-transform: uppercase;
  109. letter-spacing: 3px; margin-bottom: 12px; font-family: 'Inter', sans-serif;
  110. display: flex; align-items: center; gap: 8px;
  111. }
  112. .section-label::after { content: ''; flex: 1; height: 1px; background: var(--border); }
  113. .layer-tag {
  114. display: inline-block; font-size: 10px; font-weight: 600; font-family: 'Inter', sans-serif;
  115. letter-spacing: 1.5px; text-transform: uppercase; padding: 3px 10px; border-radius: 3px; margin-right: 8px;
  116. }
  117. /* ─── User Input ─── */
  118. .user-input {
  119. display: inline-flex; align-items: center; gap: 12px; background: var(--card);
  120. border: 2px solid var(--amber); border-radius: 10px; padding: 10px 20px; margin-bottom: 16px;
  121. }
  122. .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; }
  123. .user-input .label { font-size: 16px; font-weight: 600; color: var(--amber); }
  124. .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; }
  125. .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; }
  126. /* ─── Main Agent ─── */
  127. .main-agent-row { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 20px; }
  128. .main-agent {
  129. flex: 1; max-width: 580px;
  130. background: linear-gradient(135deg, rgba(35,52,75,0.9), rgba(25,39,58,0.95));
  131. border: 2px solid var(--amber); border-radius: 12px; padding: 16px 22px; position: relative;
  132. }
  133. .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; }
  134. .main-agent .agent-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
  135. .main-agent .agent-name { font-size: 18px; font-weight: 700; color: var(--amber); }
  136. .main-agent .agent-cn { font-size: 15px; font-weight: 500; color: var(--text); }
  137. .main-agent .agent-desc { font-size: 12px; color: var(--text-dim); margin-bottom: 6px; }
  138. .main-agent .agent-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--slate-light); }
  139. /* ─── Workflow Badges ─── */
  140. .wf-badge { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 500; border: 1px solid; }
  141. .wf-analysis { background: rgba(92,178,120,0.06); border-color: var(--green-dim); color: var(--green); }
  142. .wf-execution { background: rgba(200,100,90,0.06); border-color: var(--red-dim); color: #d08060; }
  143. .wf-badge .temp { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-muted); margin-left: 4px; }
  144. /* ─── Agent Cards ─── */
  145. .agents-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 20px; }
  146. .agents-grid-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; max-width: 940px; }
  147. .agent-card {
  148. background: var(--card); border-radius: 10px; border: 1.5px solid var(--border-light); overflow: hidden;
  149. }
  150. .agent-card .card-header { padding: 10px 14px; display: flex; align-items: center; gap: 8px; background: rgba(90,142,200,0.06); }
  151. .card-icon { font-size: 16px; flex-shrink: 0; }
  152. .card-name { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; color: var(--text); }
  153. .card-cn { font-size: 11px; font-weight: 500; margin-left: auto; color: var(--slate-light); }
  154. .card-body { padding: 10px 14px 12px; }
  155. .card-scope { font-size: 11px; color: var(--text); font-weight: 500; margin-bottom: 6px; line-height: 1.5; }
  156. .card-divider { height: 1px; background: var(--border); margin: 6px 0; }
  157. .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; }
  158. .dep-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
  159. .dep-tag { font-size: 10px; padding: 2px 7px; border-radius: 3px; }
  160. .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); }
  161. .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); }
  162. .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); }
  163. .card-details { list-style: none; font-size: 11px; color: var(--text-dim); line-height: 1.7; }
  164. .card-details li::before { content: '·'; margin-right: 6px; color: var(--text-muted); }
  165. .card-output { margin-top: 6px; font-size: 10px; color: var(--green); font-weight: 500; display: flex; align-items: center; gap: 4px; }
  166. .card-output::before { content: '→'; color: var(--flow-exec); }
  167. /* ─── Two-column layout ─── */
  168. .dual-section { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 14px; }
  169. .triple-section { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-top: 14px; }
  170. /* ─── Tool Layer Panel ─── */
  171. .tool-panel {
  172. background: var(--card); border: 1px solid var(--cyan-dim); border-radius: 10px; padding: 14px 18px;
  173. }
  174. .tool-panel-title { font-size: 14px; font-weight: 600; color: var(--cyan); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
  175. .tool-group { margin-bottom: 10px; }
  176. .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); }
  177. .tool-item { font-size: 11px; color: var(--text-dim); padding: 2px 0; display: flex; gap: 8px; align-items: baseline; }
  178. .tool-item .fn { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text); min-width: 200px; }
  179. .tool-item .td { color: var(--text-muted); font-size: 10px; }
  180. /* ─── Data Layer Panel ─── */
  181. .data-panel {
  182. background: var(--card); border: 1px solid var(--blue-dim); border-radius: 10px; padding: 14px 18px;
  183. }
  184. .data-panel-title { font-size: 14px; font-weight: 600; color: var(--flow-data); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
  185. .data-group { margin-bottom: 10px; }
  186. .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); }
  187. .data-item { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-dim); padding: 2px 0; display: flex; gap: 8px; }
  188. .data-item .prefix { color: var(--text-muted); flex-shrink: 0; }
  189. .data-item .desc { color: var(--slate-light); margin-left: auto; font-family: 'Noto Sans SC', sans-serif; font-size: 11px; }
  190. /* ─── Knowledge/Skill Layer Panel ─── */
  191. .knowledge-panel {
  192. background: var(--card); border: 1px solid var(--purple-dim); border-radius: 10px; padding: 14px 18px;
  193. }
  194. .knowledge-panel-title { font-size: 14px; font-weight: 600; color: var(--purple); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
  195. .knowledge-group { margin-bottom: 10px; }
  196. .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); }
  197. .knowledge-item { font-size: 11px; color: var(--text-dim); padding: 3px 0; display: flex; gap: 8px; align-items: baseline; }
  198. .knowledge-item .kn { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--purple); min-width: 180px; }
  199. .knowledge-item .kd { color: var(--text-muted); font-size: 10px; }
  200. .knowledge-item .ka { font-size: 10px; color: var(--slate-light); margin-left: auto; }
  201. /* ─── Rules Panel ─── */
  202. .rules-panel { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }
  203. .rules-title { font-size: 14px; font-weight: 600; color: var(--amber); margin-bottom: 10px; }
  204. .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); }
  205. .rule-item { font-size: 11px; color: var(--text-dim); padding: 2px 0; line-height: 1.5; }
  206. /* ─── Data Flows ─── */
  207. .flows-panel { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }
  208. .flow-item { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 4px 0; }
  209. .flow-num { font-weight: 600; font-size: 13px; width: 24px; text-align: center; }
  210. .flow-label { font-weight: 600; min-width: 110px; }
  211. .flow-desc { color: var(--text-dim); font-size: 11px; }
  212. /* ─── Framework Bar ─── */
  213. .framework-bar {
  214. margin-top: 16px;
  215. background: linear-gradient(180deg, rgba(18,26,40,0.95), rgba(15,23,35,0.98));
  216. border: 1px solid var(--slate); border-radius: 10px; padding: 14px 24px;
  217. }
  218. .fw-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
  219. .fw-title { font-size: 16px; font-weight: 600; color: var(--slate-light); }
  220. .fw-modules { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
  221. .fw-module { padding: 8px 12px; background: rgba(30,45,65,0.5); border: 1px solid var(--border); border-radius: 6px; }
  222. .fw-module-name { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; color: var(--amber); margin-bottom: 2px; }
  223. .fw-module-desc { font-size: 11px; color: var(--text-dim); }
  224. /* ─── Relationship arrows ─── */
  225. .agent-relationships { margin: 10px 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; }
  226. .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); }
  227. .rel-arrow .from, .rel-arrow .to { font-weight: 600; font-family: 'Inter', sans-serif; font-size: 10px; }
  228. .rel-arrow .arrow-sym { color: var(--text-muted); font-size: 12px; }
  229. .rel-arrow.data-flow { border-color: rgba(100,160,220,0.3); }
  230. .rel-arrow.data-flow .arrow-sym { color: var(--flow-data); }
  231. .rel-arrow.exec-flow { border-color: rgba(80,180,130,0.3); }
  232. .rel-arrow.exec-flow .arrow-sym { color: var(--flow-exec); }
  233. .rel-arrow.alert-flow { border-color: rgba(200,100,88,0.3); }
  234. .rel-arrow.alert-flow .arrow-sym { color: var(--flow-alert); }
  235. .rel-arrow.knowledge-flow { border-color: rgba(155,126,200,0.3); }
  236. .rel-arrow.knowledge-flow .arrow-sym { color: var(--flow-knowledge); }
  237. .rel-arrow.match-flow { border-color: rgba(218,195,78,0.3); }
  238. .rel-arrow.match-flow .arrow-sym { color: var(--yellow); }
  239. /* ─── Border ─── */
  240. .container::after { content: ''; position: absolute; inset: 0; border: 2px solid var(--slate); pointer-events: none; z-index: 100; }
  241. /* ─── Agent-to-layer connector labels ─── */
  242. .connector-row {
  243. display: flex; gap: 10px; align-items: center; justify-content: center;
  244. margin: 8px 0; padding: 4px 0;
  245. }
  246. .connector-label {
  247. font-size: 10px; font-weight: 500; padding: 2px 10px; border-radius: 10px;
  248. }
  249. .connector-down { color: var(--text-muted); font-size: 16px; }
  250. </style>
  251. </head>
  252. <body>
  253. <div class="container">
  254. <div class="grid-bg"></div>
  255. <!-- ═══ TITLE BAR ═══ -->
  256. <div class="title-bar">
  257. <div style="display:flex;align-items:baseline;gap:6px;">
  258. <h1>腾讯广告自动化投放 Agent 系统</h1>
  259. <span class="subtitle">Technical Architecture</span>
  260. </div>
  261. <div class="title-right">
  262. <div class="fw-name">Reson Agent Framework</div>
  263. <div class="version">v3.0 · Agent Perspective</div>
  264. </div>
  265. </div>
  266. <!-- ═══ LEGEND ═══ -->
  267. <div class="legend">
  268. <div class="legend-title">图例 LEGEND</div>
  269. <div class="legend-row">
  270. <div class="legend-item"><div class="legend-line" style="background:var(--flow-data)"></div>数据流 Data</div>
  271. <div class="legend-item"><div class="legend-line" style="background:var(--flow-exec)"></div>执行流 Exec</div>
  272. <div class="legend-item"><div class="legend-line" style="background:var(--flow-alert)"></div>告警流 Alert</div>
  273. <div class="legend-item"><div class="legend-line" style="background:var(--flow-knowledge)"></div>知识流 Knowledge</div>
  274. <div class="legend-item"><div class="legend-line" style="background:var(--amber)"></div>调度流 Dispatch</div>
  275. </div>
  276. <div class="legend-row" style="margin-top:6px;">
  277. <div class="legend-item"><div class="dep-tag skill" style="margin:0;">skill</div>策略/知识依赖</div>
  278. <div class="legend-item"><div class="dep-tag tool" style="margin:0;">tool</div>工具依赖</div>
  279. <div class="legend-item"><div class="dep-tag data" style="margin:0;">data</div>数据源依赖</div>
  280. </div>
  281. </div>
  282. <div class="content">
  283. <!-- ═══════════════════════════════════════════════════════════════ -->
  284. <!-- ═══ L1: ENTRY LAYER ═══ -->
  285. <!-- ═══════════════════════════════════════════════════════════════ -->
  286. <div class="section-label">
  287. <span class="layer-tag" style="background:var(--amber-bg);color:var(--amber);border:1px solid rgba(224,172,68,0.2);">L1</span>
  288. 入口层 · Entry Layer
  289. </div>
  290. <div class="main-agent-row">
  291. <div style="display:flex;flex-direction:column;gap:8px;flex-shrink:0;">
  292. <div class="user-input">
  293. <div class="icon">👤</div>
  294. <div>
  295. <div class="label">用户输入 / 运营</div>
  296. <div class="example">"今日预算10w, ROI目标1.5"</div>
  297. </div>
  298. </div>
  299. <div class="confirm-badge" style="margin-left:0;">
  300. <span>✓</span> 运营确认 → 执行
  301. </div>
  302. </div>
  303. <div style="display:flex;align-items:center;color:var(--amber);font-size:24px;padding:0 4px;">→</div>
  304. <div class="main-agent">
  305. <div class="agent-header">
  306. <div class="agent-name">Main Agent</div>
  307. <div class="agent-cn">· 投放决策中枢</div>
  308. </div>
  309. <div class="agent-desc">task.prompt | 任务理解 → 子Agent调度 → 方案汇总 → 运营确认 → 反馈沉淀</div>
  310. <div class="agent-meta">AgentRunner → LLM → Tool → Trace → Knowledge</div>
  311. </div>
  312. <div style="display:flex;gap:12px;align-items:center;margin-left:auto;">
  313. <div class="wf-badge wf-analysis">
  314. <span>📊</span> 分析模式 <span class="temp">temp=0.3</span>
  315. </div>
  316. <div style="color:var(--text-muted);font-size:16px;">→</div>
  317. <div class="wf-badge wf-execution">
  318. <span>⚡</span> 执行模式 <span class="temp">temp=0.1</span>
  319. </div>
  320. </div>
  321. </div>
  322. <!-- ═══════════════════════════════════════════════════════════════ -->
  323. <!-- ═══ L2: AGENT LAYER — 5 Decision + 1 Execution Gateway ═══ -->
  324. <!-- ═══════════════════════════════════════════════════════════════ -->
  325. <div class="section-label">
  326. <span class="layer-tag" style="background:var(--blue-bg);color:var(--blue);border:1px solid rgba(90,142,200,0.2);">L2</span>
  327. 决策层 · Agent Layer — 5个决策Agent + 1个执行网关
  328. </div>
  329. <!-- Agent relationship arrows -->
  330. <div class="agent-relationships">
  331. <div class="rel-arrow data-flow">
  332. <span class="from">Budget</span>
  333. <span class="arrow-sym">→ data_query →</span>
  334. <span class="to">ODPS</span>
  335. </div>
  336. <div class="rel-arrow data-flow">
  337. <span class="from">Audience</span>
  338. <span class="arrow-sym">→ data_query →</span>
  339. <span class="to">ODPS</span>
  340. </div>
  341. <div class="rel-arrow data-flow">
  342. <span class="from">Creative</span>
  343. <span class="arrow-sym">→ data_query →</span>
  344. <span class="to">ODPS</span>
  345. </div>
  346. <div class="rel-arrow match-flow">
  347. <span class="from">Audience</span>
  348. <span class="arrow-sym">→ 人群-素材匹配 →</span>
  349. <span class="to">Creative</span>
  350. </div>
  351. <div class="rel-arrow exec-flow">
  352. <span class="from">运营确认</span>
  353. <span class="arrow-sym">→ 方案 →</span>
  354. <span class="to">System Ops</span>
  355. </div>
  356. <div class="rel-arrow exec-flow">
  357. <span class="from">System Ops</span>
  358. <span class="arrow-sym">→ ad_api →</span>
  359. <span class="to">腾讯API</span>
  360. </div>
  361. <div class="rel-arrow alert-flow">
  362. <span class="from">Monitor</span>
  363. <span class="arrow-sym">→ 熔断 →</span>
  364. <span class="to">腾讯API</span>
  365. </div>
  366. <div class="rel-arrow knowledge-flow">
  367. <span class="from">Feedback</span>
  368. <span class="arrow-sym">→ 沉淀 →</span>
  369. <span class="to">Knowledge Base</span>
  370. </div>
  371. <div class="rel-arrow knowledge-flow">
  372. <span class="from">Knowledge</span>
  373. <span class="arrow-sym">→ 注入 →</span>
  374. <span class="to">All Agents</span>
  375. </div>
  376. </div>
  377. <!-- ─── Decision Agents (5 columns) ─── -->
  378. <div class="agents-grid">
  379. <!-- Budget Agent -->
  380. <div class="agent-card">
  381. <div class="card-header">
  382. <span class="card-icon">💰</span>
  383. <span class="card-name">Budget Agent</span>
  384. <span class="card-cn">钱</span>
  385. </div>
  386. <div class="card-body">
  387. <div class="card-scope">预算分配 · 出价优化 · ROI管控</div>
  388. <div class="card-divider"></div>
  389. <div class="card-section-title">依赖 · Skills & 知识</div>
  390. <div class="dep-tags">
  391. <span class="dep-tag skill">budget_strategy.md</span>
  392. <span class="dep-tag skill">ad_domain.md</span>
  393. </div>
  394. <div class="card-section-title">依赖 · 工具</div>
  395. <div class="dep-tags">
  396. <span class="dep-tag tool">data_query</span>
  397. <span class="dep-tag tool">budget_calc</span>
  398. </div>
  399. <div class="card-section-title">依赖 · 数据</div>
  400. <div class="dep-tags">
  401. <span class="dep-tag data">消耗/ROI</span>
  402. <span class="dep-tag data">广告状态</span>
  403. </div>
  404. <div class="card-divider"></div>
  405. <ul class="card-details">
  406. <li>ROI×跑量 二维决策矩阵</li>
  407. <li>冷启动/赔付保护机制</li>
  408. <li>阶梯式调价 · PID控制</li>
  409. </ul>
  410. <div class="card-output">输出: 预算/出价调整方案</div>
  411. </div>
  412. </div>
  413. <!-- Audience Agent -->
  414. <div class="agent-card">
  415. <div class="card-header">
  416. <span class="card-icon">👥</span>
  417. <span class="card-name">Audience Agent</span>
  418. <span class="card-cn">人</span>
  419. </div>
  420. <div class="card-body">
  421. <div class="card-scope">人群规划 · 定向策略 · 效果分析</div>
  422. <div class="card-divider"></div>
  423. <div class="card-section-title">依赖 · Skills & 知识</div>
  424. <div class="dep-tags">
  425. <span class="dep-tag skill">audience_strategy.md</span>
  426. <span class="dep-tag skill">ad_domain.md</span>
  427. </div>
  428. <div class="card-section-title">依赖 · 工具</div>
  429. <div class="dep-tags">
  430. <span class="dep-tag tool">data_query</span>
  431. <span class="dep-tag tool">audience_targeting</span>
  432. </div>
  433. <div class="card-section-title">依赖 · 数据</div>
  434. <div class="dep-tags">
  435. <span class="dep-tag data">人群效果</span>
  436. <span class="dep-tag data">定向配置</span>
  437. </div>
  438. <div class="card-divider"></div>
  439. <ul class="card-details">
  440. <li>年龄/性别/区域定向组合</li>
  441. <li>人群包管理与推荐</li>
  442. <li>人群效果A/B分析</li>
  443. </ul>
  444. <div class="card-output">输出: 定向方案</div>
  445. </div>
  446. </div>
  447. <!-- Creative Agent -->
  448. <div class="agent-card">
  449. <div class="card-header">
  450. <span class="card-icon">🎨</span>
  451. <span class="card-name">Creative Agent</span>
  452. <span class="card-cn">素材</span>
  453. </div>
  454. <div class="card-body">
  455. <div class="card-scope">素材分析 · 人群匹配 · 生命周期</div>
  456. <div class="card-divider"></div>
  457. <div class="card-section-title">依赖 · Skills & 知识</div>
  458. <div class="dep-tags">
  459. <span class="dep-tag skill">creative_strategy.md</span>
  460. <span class="dep-tag skill">ad_domain.md</span>
  461. </div>
  462. <div class="card-section-title">依赖 · 工具</div>
  463. <div class="dep-tags">
  464. <span class="dep-tag tool">data_query</span>
  465. <span class="dep-tag tool">creative_tools</span>
  466. </div>
  467. <div class="card-section-title">依赖 · 数据</div>
  468. <div class="dep-tags">
  469. <span class="dep-tag data">创意效果</span>
  470. <span class="dep-tag data">素材库</span>
  471. </div>
  472. <div class="card-divider"></div>
  473. <ul class="card-details">
  474. <li>CTR/CVR/完播率分析</li>
  475. <li>素材衰退检测与轮换</li>
  476. <li>组件化创意组合</li>
  477. </ul>
  478. <div class="card-output">输出: 素材方案</div>
  479. </div>
  480. </div>
  481. <!-- Monitor Agent -->
  482. <div class="agent-card">
  483. <div class="card-header">
  484. <span class="card-icon">🔍</span>
  485. <span class="card-name">Monitor Agent</span>
  486. <span class="card-cn">监控</span>
  487. </div>
  488. <div class="card-body">
  489. <div class="card-scope">异常检测 · 熔断策略 · 根因分析</div>
  490. <div class="card-divider"></div>
  491. <div class="card-section-title">依赖 · Skills & 知识</div>
  492. <div class="dep-tags">
  493. <span class="dep-tag skill">monitor_rules.md</span>
  494. <span class="dep-tag skill">ad_domain.md</span>
  495. </div>
  496. <div class="card-section-title">依赖 · 工具</div>
  497. <div class="dep-tags">
  498. <span class="dep-tag tool">data_query</span>
  499. <span class="dep-tag tool">monitor_tools</span>
  500. <span class="dep-tag tool">ad_api(写)</span>
  501. </div>
  502. <div class="card-section-title">依赖 · 数据</div>
  503. <div class="dep-tags">
  504. <span class="dep-tag data">实时指标</span>
  505. <span class="dep-tag data">告警阈值</span>
  506. </div>
  507. <div class="card-divider"></div>
  508. <ul class="card-details">
  509. <li>CPA突增/转化骤降检测</li>
  510. <li>L1告警/L2降级/L3熔断</li>
  511. <li>15min/1h/日 三周期</li>
  512. </ul>
  513. <div class="card-output">输出: 熔断/告警决策</div>
  514. </div>
  515. </div>
  516. <!-- Feedback Agent -->
  517. <div class="agent-card">
  518. <div class="card-header">
  519. <span class="card-icon">🔄</span>
  520. <span class="card-name">Feedback Agent</span>
  521. <span class="card-cn">反馈</span>
  522. </div>
  523. <div class="card-body">
  524. <div class="card-scope">后验分析 · 策略归纳 · 知识沉淀</div>
  525. <div class="card-divider"></div>
  526. <div class="card-section-title">依赖 · Skills & 知识</div>
  527. <div class="dep-tags">
  528. <span class="dep-tag skill">feedback_strategy.md</span>
  529. <span class="dep-tag skill">全部策略Skills</span>
  530. </div>
  531. <div class="card-section-title">依赖 · 工具</div>
  532. <div class="dep-tags">
  533. <span class="dep-tag tool">data_query</span>
  534. <span class="dep-tag tool">knowledge_tools</span>
  535. </div>
  536. <div class="card-section-title">依赖 · 数据</div>
  537. <div class="dep-tags">
  538. <span class="dep-tag data">历史投放</span>
  539. <span class="dep-tag data">Trace</span>
  540. </div>
  541. <div class="card-divider"></div>
  542. <ul class="card-details">
  543. <li>投放效果归因分析</li>
  544. <li>策略规则提炼</li>
  545. <li>案例沉淀至知识库</li>
  546. </ul>
  547. <div class="card-output">输出: 策略更新 → Knowledge</div>
  548. </div>
  549. </div>
  550. </div>
  551. <!-- ─── System Ops (Execution Gateway) ─── -->
  552. <div class="agents-grid-row2">
  553. <div class="agent-card" style="border-color:var(--flow-exec);">
  554. <div class="card-header" style="background:rgba(80,180,130,0.06);">
  555. <span class="card-icon">⚡</span>
  556. <span class="card-name">System Ops Agent</span>
  557. <span class="card-cn" style="color:var(--flow-exec);">执行网关</span>
  558. </div>
  559. <div class="card-body">
  560. <div class="card-scope">接收已确认方案 → API调用 → 执行变更 → 变更记录</div>
  561. <div class="card-divider"></div>
  562. <div class="card-section-title">依赖 · Skills & 知识</div>
  563. <div class="dep-tags">
  564. <span class="dep-tag skill">ad_domain.md</span>
  565. </div>
  566. <div class="card-section-title">依赖 · 工具</div>
  567. <div class="dep-tags">
  568. <span class="dep-tag tool">ad_api(读+写)</span>
  569. <span class="dep-tag tool">execute_plan</span>
  570. </div>
  571. <div class="card-section-title">依赖 · 数据</div>
  572. <div class="dep-tags">
  573. <span class="dep-tag data">已确认方案</span>
  574. <span class="dep-tag data">Task State</span>
  575. </div>
  576. <div class="card-divider"></div>
  577. <ul class="card-details">
  578. <li>广告创建/修改/关停 全生命周期</li>
  579. <li>创意配置 · 组件化管理</li>
  580. <li>批量操作 + dry-run验证</li>
  581. <li>操作变更记录与通知</li>
  582. </ul>
  583. <div class="card-output">输出: 执行结果 → 腾讯API + Trace</div>
  584. </div>
  585. </div>
  586. <!-- Agent 内部结构说明 -->
  587. <div style="background:rgba(30,42,58,0.5);border:1px dashed var(--border);border-radius:10px;padding:14px 18px;">
  588. <div style="font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px;">每个 Agent 的内部结构</div>
  589. <div style="font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--text-dim);line-height:2;">
  590. <div style="color:var(--amber);">Agent = LLM推理引擎</div>
  591. <div>&nbsp;&nbsp;+ <span style="color:var(--purple);">Skills</span> (策略知识注入)</div>
  592. <div>&nbsp;&nbsp;+ <span style="color:var(--cyan);">Tools</span> (获取/计算/执行能力)</div>
  593. <div>&nbsp;&nbsp;+ <span style="color:var(--flow-data);">Data</span> (数据源读取)</div>
  594. <div>&nbsp;&nbsp;→ <span style="color:var(--flow-exec);">输出决策方案</span></div>
  595. </div>
  596. <div class="card-divider"></div>
  597. <div style="font-size:11px;color:var(--text-muted);line-height:1.7;">
  598. <div>· Agent 只做<strong style="color:var(--text);">决策</strong>,不做透传</div>
  599. <div>· 数据获取能力通过<strong style="color:var(--cyan);">共享工具</strong>下沉</div>
  600. <div>· 策略知识通过<strong style="color:var(--purple);">Skill注入</strong>,非硬编码</div>
  601. <div>· 写操作集中在<strong style="color:var(--flow-exec);">System Ops</strong>网关</div>
  602. </div>
  603. </div>
  604. </div>
  605. <!-- ═══════════════════════════════════════════════════════════════ -->
  606. <!-- ═══ L3: CAPABILITY + DATA + KNOWLEDGE ═══ -->
  607. <!-- ═══════════════════════════════════════════════════════════════ -->
  608. <div class="section-label">
  609. <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>
  610. 能力层 · 数据层 · 知识层 — Tools & Data & Knowledge
  611. </div>
  612. <div class="triple-section">
  613. <!-- ─── Tool Layer (能力层) ─── -->
  614. <div class="tool-panel">
  615. <div class="tool-panel-title">
  616. <span style="font-size:16px;">⚙️</span>
  617. 能力层 Tools · 工具
  618. </div>
  619. <div class="tool-group">
  620. <div class="tool-group-title">获取 · Read</div>
  621. <div class="tool-item"><span class="fn">data_query(type, sql)</span><span class="td">→ ODPS 7种查询</span></div>
  622. <div class="tool-item"><span class="fn">data_aggregate()</span><span class="td">→ 聚合分析</span></div>
  623. <div class="tool-item"><span class="fn">get_ad_current_status()</span><span class="td">→ 广告实时状态</span></div>
  624. <div class="tool-item"><span class="fn">ad_get_list / ad_get_report</span><span class="td">→ 腾讯API(读)</span></div>
  625. <div class="tool-item"><span class="fn">audience_get_list</span><span class="td">→ 人群包列表</span></div>
  626. </div>
  627. <div class="tool-group">
  628. <div class="tool-group-title">计算 · Compute</div>
  629. <div class="tool-item"><span class="fn">budget_calc(data)</span><span class="td">→ ROI决策矩阵</span></div>
  630. <div class="tool-item"><span class="fn">audience_build_targeting</span><span class="td">→ 定向生成</span></div>
  631. <div class="tool-item"><span class="fn">audience_recommend_targeting</span><span class="td">→ 定向推荐</span></div>
  632. <div class="tool-item"><span class="fn">monitor_check_metrics</span><span class="td">→ 指标检查</span></div>
  633. </div>
  634. <div class="tool-group" style="margin-bottom:0;">
  635. <div class="tool-group-title">执行 · Write</div>
  636. <div class="tool-item"><span class="fn">ad_create / ad_update</span><span class="td">→ 广告操作</span></div>
  637. <div class="tool-item"><span class="fn">ad_batch_update_status</span><span class="td">→ 批量状态</span></div>
  638. <div class="tool-item"><span class="fn">creative_create / update</span><span class="td">→ 创意操作</span></div>
  639. <div class="tool-item"><span class="fn">execute_adjustment_plan</span><span class="td">→ 方案执行</span></div>
  640. <div class="tool-item"><span class="fn">monitor_circuit_break</span><span class="td">→ 熔断执行</span></div>
  641. </div>
  642. </div>
  643. <!-- ─── Data Layer (数据层) ─── -->
  644. <div class="data-panel">
  645. <div class="data-panel-title">
  646. <span style="font-size:16px;">🗄️</span>
  647. 数据层 Data · 存储
  648. </div>
  649. <div class="data-group">
  650. <div class="data-group-title">外部数据源 · External</div>
  651. <div style="font-size:11px;color:var(--text);font-weight:500;margin-bottom:4px;">ODPS / MaxCompute — loghubods 库</div>
  652. <div class="data-item"><span class="prefix">├─</span><span>ad_put_tencent_ad</span><span class="desc">广告基础</span></div>
  653. <div class="data-item"><span class="prefix">├─</span><span>ad_put_tencent_creative_data_day</span><span class="desc">创意日报</span></div>
  654. <div class="data-item"><span class="prefix">├─</span><span>ad_put_tencent_account_data</span><span class="desc">账户消耗</span></div>
  655. <div class="data-item"><span class="prefix">└─</span><span>fission_data / roi_data</span><span class="desc">裂变&amp;ROI</span></div>
  656. <div style="font-size:11px;color:var(--text);font-weight:500;margin:8px 0 4px;">腾讯广告 Marketing API v3.0</div>
  657. <div class="data-item"><span class="prefix">├─</span><span>/v3.0/adgroups/*</span><span class="desc">广告</span></div>
  658. <div class="data-item"><span class="prefix">├─</span><span>/v3.0/dynamic_creatives/*</span><span class="desc">创意</span></div>
  659. <div class="data-item"><span class="prefix">└─</span><span>bid_mode=OCPM QPS≤10</span><span class="desc">限制</span></div>
  660. </div>
  661. <div class="data-group">
  662. <div class="data-group-title">运行时状态 · Runtime</div>
  663. <div class="data-item"><span class="prefix">├─</span><span>Task State</span><span class="desc">方案/中间结果</span></div>
  664. <div class="data-item"><span class="prefix">├─</span><span>Agent Context</span><span class="desc">对话上下文</span></div>
  665. <div class="data-item"><span class="prefix">└─</span><span>Trace Store</span><span class="desc">执行轨迹/审计</span></div>
  666. </div>
  667. <div class="data-group" style="margin-bottom:0;">
  668. <div class="data-group-title">知识存储 · Knowledge Store</div>
  669. <div class="data-item"><span class="prefix">├─</span><span>Knowledge Base</span><span class="desc">动态沉淀</span></div>
  670. <div class="data-item"><span class="prefix">└─</span><span>Case Base</span><span class="desc">投放案例库</span></div>
  671. </div>
  672. </div>
  673. <!-- ─── Knowledge Layer (知识层) ─── -->
  674. <div class="knowledge-panel">
  675. <div class="knowledge-panel-title">
  676. <span style="font-size:16px;">📚</span>
  677. 知识层 Knowledge · Skills
  678. </div>
  679. <div class="knowledge-group">
  680. <div class="knowledge-group-title">静态知识 · Skills (Markdown 注入)</div>
  681. <div class="knowledge-item">
  682. <span class="kn">ad_domain.md</span>
  683. <span class="kd">3.0平台结构 · API映射 · 投放流程</span>
  684. <span class="ka">→ 全部Agent</span>
  685. </div>
  686. <div class="knowledge-item">
  687. <span class="kn">budget_strategy.md</span>
  688. <span class="kd">决策矩阵 · 冷启动 · 赔付 · 调价</span>
  689. <span class="ka">→ Budget</span>
  690. </div>
  691. <div class="knowledge-item">
  692. <span class="kn">audience_strategy.md</span>
  693. <span class="kd">人群定向策略 · 圈选规则</span>
  694. <span class="ka">→ Audience</span>
  695. </div>
  696. <div class="knowledge-item">
  697. <span class="kn">creative_strategy.md</span>
  698. <span class="kd">素材策略 · 匹配规则 · 生命周期</span>
  699. <span class="ka">→ Creative</span>
  700. </div>
  701. <div class="knowledge-item">
  702. <span class="kn">monitor_rules.md</span>
  703. <span class="kd">监控规则 · 告警阈值 · 熔断条件</span>
  704. <span class="ka">→ Monitor</span>
  705. </div>
  706. <div class="knowledge-item">
  707. <span class="kn">feedback_strategy.md</span>
  708. <span class="kd">后验分析 · 策略归纳 · 沉淀规则</span>
  709. <span class="ka">→ Feedback</span>
  710. </div>
  711. </div>
  712. <div class="knowledge-group" style="margin-bottom:0;">
  713. <div class="knowledge-group-title">动态知识 · Knowledge Base (持久化)</div>
  714. <div class="knowledge-item">
  715. <span class="kn">投放经验</span>
  716. <span class="kd">"账户A降价10%实际消耗降30%"</span>
  717. </div>
  718. <div class="knowledge-item">
  719. <span class="kn">时间规律</span>
  720. <span class="kd">"周末转化率通常高15%"</span>
  721. </div>
  722. <div class="knowledge-item">
  723. <span class="kn">人群洞察</span>
  724. <span class="kd">"人群包X在25-34男性效果最好"</span>
  725. </div>
  726. <div class="knowledge-item">
  727. <span class="kn">熔断经验</span>
  728. <span class="kd">"CPA连续3天>50应提前熔断"</span>
  729. </div>
  730. <div style="margin-top:6px;font-size:10px;color:var(--purple-dim);font-style:italic;">
  731. ← Feedback Agent 持续写入 · 全部 Agent 决策时读取
  732. </div>
  733. </div>
  734. </div>
  735. </div>
  736. <!-- ═══════════════════════════════════════════════════════════════ -->
  737. <!-- ═══ BUSINESS RULES + DATA FLOWS ═══ -->
  738. <!-- ═══════════════════════════════════════════════════════════════ -->
  739. <div class="dual-section">
  740. <!-- Business Rules -->
  741. <div class="rules-panel">
  742. <div class="rules-title">关键业务规则 Key Rules</div>
  743. <div class="rule-group-title">─── oCPM 出价机制 ───</div>
  744. <div class="rule-item">eCPM = bid × pCTR × pCVR × 1000</div>
  745. <div class="rule-item">降10%出价 ≈ 降15-25%消耗(非线性)</div>
  746. <div class="rule-item">掉量悬崖: eCPM&lt;竞争水位 → 断崖式跌落</div>
  747. <div class="rule-group-title">─── 决策矩阵 ROI×跑量 ───</div>
  748. <div class="rule-item">高ROI+低跑量 → increase +10%~15%</div>
  749. <div class="rule-item">中ROI+高跑量 → decrease -5%~10%</div>
  750. <div class="rule-item">低ROI+低跑量 → close(标记关停)</div>
  751. <div class="rule-group-title">─── 保护机制 ───</div>
  752. <div class="rule-item">冷启动: &lt;48h ∨ 转化&lt;6 → observe</div>
  753. <div class="rule-item">赔付: 转化≥6 且 CPA偏离≥20% → 先赔付</div>
  754. <div class="rule-item">熔断: CPA&gt;阈值 ∨ 消耗异常 → 暂停</div>
  755. </div>
  756. <!-- Core Data Flows -->
  757. <div class="flows-panel">
  758. <div class="rules-title" style="margin-bottom:8px;">核心数据流 Core Flows</div>
  759. <div class="flow-item">
  760. <span class="flow-num" style="color:var(--amber)">①</span>
  761. <div>
  762. <div class="flow-label" style="color:var(--amber)">任务分发</div>
  763. <div class="flow-desc">User → Main Agent → 子Agent(Budget/Audience/Creative)</div>
  764. </div>
  765. </div>
  766. <div class="flow-item">
  767. <span class="flow-num" style="color:var(--flow-data)">②</span>
  768. <div>
  769. <div class="flow-label" style="color:var(--flow-data)">数据获取</div>
  770. <div class="flow-desc">决策Agent → data_query(Tool) → ODPS(Data) → 原始数据</div>
  771. </div>
  772. </div>
  773. <div class="flow-item">
  774. <span class="flow-num" style="color:var(--purple)">③</span>
  775. <div>
  776. <div class="flow-label" style="color:var(--purple)">知识注入</div>
  777. <div class="flow-desc">Skills(静态) + Knowledge(动态) → Agent Context → 辅助决策</div>
  778. </div>
  779. </div>
  780. <div class="flow-item">
  781. <span class="flow-num" style="color:var(--cyan)">④</span>
  782. <div>
  783. <div class="flow-label" style="color:var(--cyan)">方案计算</div>
  784. <div class="flow-desc">Agent + 数据 + 知识 → budget_calc/targeting(Tool) → 调整方案</div>
  785. </div>
  786. </div>
  787. <div class="flow-item">
  788. <span class="flow-num" style="color:var(--flow-exec)">⑤</span>
  789. <div>
  790. <div class="flow-label" style="color:var(--flow-exec)">运营确认→执行</div>
  791. <div class="flow-desc">方案 → 运营确认 → System Ops → ad_api(Tool) → 腾讯API(Data)</div>
  792. </div>
  793. </div>
  794. <div class="flow-item">
  795. <span class="flow-num" style="color:var(--flow-alert)">⑥</span>
  796. <div>
  797. <div class="flow-label" style="color:var(--flow-alert)">监控熔断</div>
  798. <div class="flow-desc">Monitor Agent → 检测异常 → circuit_break(Tool) → 暂停广告</div>
  799. </div>
  800. </div>
  801. <div class="flow-item">
  802. <span class="flow-num" style="color:var(--flow-knowledge)">⑦</span>
  803. <div>
  804. <div class="flow-label" style="color:var(--flow-knowledge)">反馈沉淀</div>
  805. <div class="flow-desc">投放结果 → Feedback Agent → knowledge_tools → Knowledge Base</div>
  806. </div>
  807. </div>
  808. </div>
  809. </div>
  810. <!-- ═══════════════════════════════════════════════════════════════ -->
  811. <!-- ═══ L4: FRAMEWORK ═══ -->
  812. <!-- ═══════════════════════════════════════════════════════════════ -->
  813. <div class="section-label" style="margin-top:16px;">
  814. <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>
  815. 底层框架 · Reson Agent Framework
  816. </div>
  817. <div class="framework-bar">
  818. <div class="fw-header">
  819. <div class="fw-title">Reson Agent Framework</div>
  820. <div style="display:flex;gap:8px;">
  821. <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);">
  822. 分析 Analysis temp=0.3 · 只读工具
  823. </div>
  824. <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;">
  825. 执行 Execution temp=0.1 · 读写工具
  826. </div>
  827. </div>
  828. </div>
  829. <div class="fw-modules">
  830. <div class="fw-module">
  831. <div class="fw-module-name">AgentRunner</div>
  832. <div class="fw-module-desc">LLM循环引擎 · 工具调用</div>
  833. </div>
  834. <div class="fw-module">
  835. <div class="fw-module-name">LLM Adapters</div>
  836. <div class="fw-module-desc">Qwen / Gemini 适配</div>
  837. </div>
  838. <div class="fw-module">
  839. <div class="fw-module-name">Tool Registry</div>
  840. <div class="fw-module-desc">@tool注册 · 白名单</div>
  841. </div>
  842. <div class="fw-module">
  843. <div class="fw-module-name">Skill System</div>
  844. <div class="fw-module-desc">Markdown知识注入</div>
  845. </div>
  846. <div class="fw-module">
  847. <div class="fw-module-name">Trace System</div>
  848. <div class="fw-module-desc">GoalTree · 回溯</div>
  849. </div>
  850. <div class="fw-module">
  851. <div class="fw-module-name">Knowledge</div>
  852. <div class="fw-module-desc">动态知识管理</div>
  853. </div>
  854. </div>
  855. </div>
  856. </div><!-- .content -->
  857. </div><!-- .container -->
  858. </body>
  859. </html>