intelligent-creative-agent-system.html 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074
  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" />
  6. <meta name="description" content="用 Run 454 和两套组合逻辑,讲清楚智能创作 Workflow 怎样走向有边界的递归 Agent System。" />
  7. <title>从“聪明地跑流程”到“自己管理创作认知过程”</title>
  8. <style>
  9. :root {
  10. --ink: #171717;
  11. --text: #353535;
  12. --muted: #6d6d6d;
  13. --line: #d7d7d7;
  14. --line-strong: #a7a7a7;
  15. --soft: #f5f5f3;
  16. --paper: #ffffff;
  17. }
  18. * { box-sizing: border-box; }
  19. html { scroll-behavior: smooth; }
  20. body {
  21. margin: 0;
  22. color: var(--text);
  23. background: var(--paper);
  24. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  25. font-size: 16px;
  26. line-height: 1.72;
  27. text-rendering: optimizeLegibility;
  28. }
  29. a { color: var(--ink); text-underline-offset: 4px; }
  30. a:hover { text-decoration-thickness: 2px; }
  31. :focus-visible { outline: 3px solid #888; outline-offset: 3px; }
  32. strong { color: var(--ink); }
  33. .page {
  34. width: min(960px, calc(100% - 48px));
  35. margin: 0 auto;
  36. }
  37. .doc-head {
  38. padding: 60px 0 38px;
  39. border-bottom: 1px solid var(--ink);
  40. }
  41. .doc-label,
  42. .section-label,
  43. .diagram-title {
  44. margin: 0;
  45. color: var(--muted);
  46. font-size: 12px;
  47. font-weight: 650;
  48. letter-spacing: .09em;
  49. text-transform: uppercase;
  50. }
  51. h1, h2, h3, h4, p { margin-top: 0; }
  52. h1 {
  53. max-width: 880px;
  54. margin: 18px 0 20px;
  55. color: var(--ink);
  56. font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  57. font-size: clamp(38px, 6vw, 56px);
  58. font-weight: 700;
  59. line-height: 1.14;
  60. letter-spacing: -.035em;
  61. }
  62. .subtitle {
  63. max-width: 760px;
  64. margin-bottom: 24px;
  65. color: var(--muted);
  66. font-size: 18px;
  67. line-height: 1.65;
  68. }
  69. .thesis {
  70. margin: 0;
  71. padding: 16px 18px;
  72. border-left: 4px solid var(--ink);
  73. background: var(--soft);
  74. color: var(--ink);
  75. font-size: 17px;
  76. line-height: 1.65;
  77. font-weight: 650;
  78. }
  79. .toc {
  80. display: flex;
  81. flex-wrap: wrap;
  82. gap: 8px 20px;
  83. margin-top: 22px;
  84. }
  85. .toc a {
  86. color: var(--muted);
  87. font-size: 13px;
  88. text-decoration: none;
  89. }
  90. .toc a:hover { color: var(--ink); text-decoration: underline; }
  91. section {
  92. padding: 56px 0;
  93. border-bottom: 1px solid var(--line);
  94. }
  95. section:last-of-type { border-bottom: 0; }
  96. h2 {
  97. max-width: 820px;
  98. margin: 10px 0 20px;
  99. color: var(--ink);
  100. font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  101. font-size: 30px;
  102. line-height: 1.32;
  103. letter-spacing: -.018em;
  104. }
  105. h3 {
  106. margin: 34px 0 12px;
  107. padding-top: 4px;
  108. color: var(--ink);
  109. font-size: 20px;
  110. line-height: 1.42;
  111. }
  112. .major-subheading {
  113. margin-top: 44px;
  114. font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  115. font-size: 26px;
  116. line-height: 1.34;
  117. letter-spacing: -.012em;
  118. }
  119. .logic-heading {
  120. max-width: 880px;
  121. margin-top: 14px;
  122. font-size: clamp(34px, 4.7vw, 44px);
  123. line-height: 1.24;
  124. }
  125. .logic-answer {
  126. margin: 22px 0 26px;
  127. padding: 18px 20px;
  128. border-left: 5px solid var(--ink);
  129. background: var(--soft);
  130. color: var(--ink);
  131. font-size: 18px;
  132. font-weight: 600;
  133. line-height: 1.62;
  134. }
  135. .logic-answer strong {
  136. margin-right: 6px;
  137. font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  138. font-size: 23px;
  139. }
  140. h4 {
  141. margin: 24px 0 7px;
  142. color: var(--ink);
  143. font-size: 17px;
  144. }
  145. p { margin-bottom: 14px; }
  146. .lead { max-width: 820px; color: var(--muted); font-size: 17px; line-height: 1.7; }
  147. .note { color: var(--muted); font-size: 14px; }
  148. .compact { margin-bottom: 8px; }
  149. blockquote {
  150. margin: 22px 0;
  151. padding: 2px 0 2px 18px;
  152. border-left: 2px solid var(--ink);
  153. color: var(--ink);
  154. font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  155. font-size: 18px;
  156. line-height: 1.68;
  157. }
  158. blockquote p:last-child { margin-bottom: 0; }
  159. .conversation {
  160. display: grid;
  161. grid-template-columns: 150px 1fr;
  162. gap: 22px;
  163. margin: 28px 0;
  164. padding: 20px 0;
  165. border-top: 1px solid var(--line);
  166. border-bottom: 1px solid var(--line);
  167. }
  168. .conversation-label {
  169. color: var(--muted);
  170. font-size: 13px;
  171. font-weight: 650;
  172. }
  173. .conversation-body > :last-child { margin-bottom: 0; }
  174. .conversation-body > :first-child { margin-top: 0; }
  175. .plain-table-wrap { overflow-x: auto; margin: 24px 0; }
  176. table { width: 100%; border-collapse: collapse; }
  177. th, td {
  178. padding: 14px;
  179. border: 1px solid var(--line);
  180. text-align: left;
  181. vertical-align: top;
  182. }
  183. th { color: var(--ink); background: var(--soft); font-size: 14px; }
  184. td { font-size: 15px; }
  185. th:first-child { width: 42%; }
  186. .diagram {
  187. margin: 24px 0;
  188. padding: 20px;
  189. border: 1px solid var(--line-strong);
  190. background: #fcfcfb;
  191. overflow-x: auto;
  192. }
  193. .diagram-title { margin-bottom: 14px; }
  194. .tree {
  195. margin: 0;
  196. white-space: pre;
  197. color: var(--ink);
  198. font: 13.5px/1.72 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  199. }
  200. .flow {
  201. display: flex;
  202. align-items: stretch;
  203. gap: 8px;
  204. min-width: 760px;
  205. }
  206. .flow.vertical {
  207. min-width: 0;
  208. flex-direction: column;
  209. gap: 0;
  210. }
  211. .node {
  212. display: grid;
  213. place-items: center;
  214. flex: 1;
  215. min-width: 122px;
  216. padding: 11px 10px;
  217. border: 1px solid var(--line-strong);
  218. background: var(--paper);
  219. color: var(--ink);
  220. text-align: center;
  221. font-size: 13px;
  222. line-height: 1.42;
  223. }
  224. .node strong { display: block; }
  225. .node small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
  226. .node.current { border: 2px solid var(--ink); }
  227. .arrow { display: grid; place-items: center; flex: 0 0 20px; color: var(--muted); }
  228. .down { padding: 5px 0; color: var(--muted); text-align: center; line-height: 1; }
  229. .return-note {
  230. margin-top: 14px;
  231. padding-top: 12px;
  232. border-top: 1px dashed var(--line-strong);
  233. color: var(--muted);
  234. font-size: 14px;
  235. text-align: center;
  236. }
  237. .system-overview {
  238. display: grid;
  239. grid-template-columns: 1.04fr 32px .96fr;
  240. align-items: start;
  241. margin: 26px 0 16px;
  242. }
  243. .overview-panel {
  244. padding: 20px;
  245. border: 1px solid var(--line-strong);
  246. background: #fcfcfb;
  247. }
  248. .overview-kicker {
  249. margin-bottom: 4px;
  250. color: var(--muted);
  251. font-size: 12px;
  252. font-weight: 650;
  253. letter-spacing: .08em;
  254. }
  255. .overview-panel h3 {
  256. margin: 0 0 14px;
  257. padding: 0;
  258. font-size: 21px;
  259. }
  260. .overview-tree,
  261. .overview-loop {
  262. margin: 0;
  263. color: var(--ink);
  264. white-space: pre-wrap;
  265. font: 13px/1.72 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  266. }
  267. .overview-note {
  268. margin: 16px 0 0;
  269. padding-top: 12px;
  270. border-top: 1px dashed var(--line);
  271. color: var(--muted);
  272. font-size: 13px;
  273. line-height: 1.6;
  274. }
  275. .overview-bridge {
  276. display: grid;
  277. place-items: center;
  278. align-self: stretch;
  279. color: var(--muted);
  280. font-size: 24px;
  281. }
  282. .overview-summary {
  283. margin: 0 0 24px;
  284. padding: 12px 16px;
  285. border-left: 3px solid var(--ink);
  286. background: var(--soft);
  287. color: var(--ink);
  288. font-size: 16px;
  289. line-height: 1.65;
  290. }
  291. .object-list {
  292. margin: 24px 0;
  293. border-top: 1px solid var(--ink);
  294. }
  295. .object-item {
  296. display: grid;
  297. grid-template-columns: 160px 1fr;
  298. gap: 22px;
  299. padding: 18px 0;
  300. border-bottom: 1px solid var(--line);
  301. }
  302. .object-name { color: var(--ink); font-weight: 700; }
  303. .object-name span {
  304. display: block;
  305. margin-bottom: 3px;
  306. color: var(--muted);
  307. font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
  308. }
  309. .object-body > :last-child { margin-bottom: 0; }
  310. .execution-bridge {
  311. padding-right: 14px;
  312. padding-left: 14px;
  313. background: var(--soft);
  314. }
  315. .execution-bridge .object-name span { letter-spacing: .03em; }
  316. .loop-list {
  317. margin: 22px 0;
  318. border-left: 2px solid var(--ink);
  319. }
  320. .loop-row {
  321. display: grid;
  322. grid-template-columns: 110px 1fr;
  323. gap: 18px;
  324. padding: 12px 0 12px 18px;
  325. border-bottom: 1px solid var(--line);
  326. }
  327. .loop-row:last-child { border-bottom: 0; }
  328. .loop-key { color: var(--ink); font-weight: 700; }
  329. .loop-value > :last-child { margin-bottom: 0; }
  330. .task-examples {
  331. display: grid;
  332. grid-template-columns: repeat(2, minmax(0, 1fr));
  333. gap: 18px;
  334. margin: 24px 0;
  335. }
  336. .task-example {
  337. padding: 20px;
  338. border: 1px solid var(--line-strong);
  339. background: #fcfcfb;
  340. }
  341. .task-example h4 {
  342. margin: 0 0 16px;
  343. padding-bottom: 12px;
  344. border-bottom: 1px solid var(--line);
  345. font-size: 18px;
  346. }
  347. .task-step span {
  348. display: block;
  349. margin-bottom: 3px;
  350. color: var(--muted);
  351. font-size: 12px;
  352. font-weight: 700;
  353. letter-spacing: .04em;
  354. }
  355. .task-step p {
  356. margin: 0;
  357. color: var(--ink);
  358. font-size: 14px;
  359. line-height: 1.58;
  360. }
  361. .task-down {
  362. padding: 5px 0;
  363. color: var(--muted);
  364. font-size: 13px;
  365. line-height: 1;
  366. }
  367. ul, ol { padding-left: 24px; }
  368. li + li { margin-top: 6px; }
  369. .case-meta {
  370. margin: 18px 0 22px;
  371. color: var(--muted);
  372. font-size: 14px;
  373. }
  374. .case-meta span + span::before { content: " · "; }
  375. .case-compare {
  376. table-layout: fixed;
  377. border-top: 1px solid var(--ink);
  378. border-bottom: 1px solid var(--ink);
  379. }
  380. .case-compare th {
  381. padding: 15px;
  382. background: var(--soft);
  383. color: var(--ink);
  384. font-size: 16px;
  385. line-height: 1.42;
  386. }
  387. .case-compare td {
  388. width: 50%;
  389. padding: 15px;
  390. font-size: 14.5px;
  391. line-height: 1.58;
  392. }
  393. .case-compare td strong {
  394. display: block;
  395. margin-bottom: 3px;
  396. }
  397. .issue {
  398. margin: 24px 0;
  399. padding: 18px;
  400. border: 2px solid var(--ink);
  401. background: var(--soft);
  402. }
  403. .issue p:last-child { margin-bottom: 0; }
  404. .moves {
  405. display: grid;
  406. grid-template-columns: repeat(5, 1fr);
  407. margin: 24px 0;
  408. border: 1px solid var(--line-strong);
  409. }
  410. .move {
  411. min-height: 138px;
  412. padding: 14px;
  413. border-right: 1px solid var(--line);
  414. }
  415. .move:last-child { border-right: 0; }
  416. .move b { display: block; margin-bottom: 6px; color: var(--ink); }
  417. .move span { color: var(--muted); font-size: 12.5px; line-height: 1.58; }
  418. .references { padding-left: 22px; }
  419. .references li + li { margin-top: 10px; }
  420. .references span { color: var(--muted); }
  421. footer {
  422. padding: 24px 0 40px;
  423. border-top: 1px solid var(--line);
  424. color: var(--muted);
  425. font-size: 12px;
  426. }
  427. @media (max-width: 780px) {
  428. .page { width: min(100% - 24px, 960px); }
  429. .doc-head { padding: 42px 0 30px; }
  430. h1 { font-size: 35px; }
  431. .subtitle { font-size: 16px; }
  432. section { padding: 42px 0; }
  433. h2 { font-size: 25px; }
  434. h3 { font-size: 19px; }
  435. .major-subheading { font-size: 23px; }
  436. .logic-answer { font-size: 17px; }
  437. .logic-answer strong { font-size: 21px; }
  438. blockquote { font-size: 17px; }
  439. .conversation,
  440. .object-item { grid-template-columns: 1fr; gap: 8px; }
  441. .conversation { padding: 18px 0; }
  442. .object-list { margin-top: 22px; }
  443. .loop-row { grid-template-columns: 85px 1fr; gap: 14px; padding-left: 16px; }
  444. .diagram { padding: 16px; }
  445. .plain-table-wrap table { min-width: 680px; }
  446. .moves { grid-template-columns: 1fr; }
  447. .task-examples { grid-template-columns: 1fr; }
  448. .system-overview { grid-template-columns: 1fr; }
  449. .overview-bridge { min-height: 42px; transform: rotate(90deg); }
  450. .move { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  451. .move:last-child { border-bottom: 0; }
  452. }
  453. @media print {
  454. body { font-size: 12px; }
  455. .page { width: 100%; }
  456. .toc { display: none; }
  457. section { padding: 30px 0; }
  458. .diagram, .issue, .conversation, .object-item { break-inside: avoid; }
  459. }
  460. </style>
  461. </head>
  462. <body>
  463. <header class="doc-head">
  464. <div class="page">
  465. <p class="doc-label">脚本构建第三版 · 业务讨论稿</p>
  466. <h1>从“聪明地跑流程”到“自己管理创作认知过程”</h1>
  467. <p class="subtitle">不先讲技术,也不重新发明一套说法。我们用过去几轮对话和“毛驴效应”Run 454,把新的智能创作系统一步一步讲清楚。</p>
  468. <p class="thesis">新的系统,不是让更多 Agent 一起写,而是让系统自己管理:为什么还不能决定、需要什么证据、有哪些可能方案、怎样验收,以及失败后退回哪里。</p>
  469. <nav class="toc" aria-label="页面目录">
  470. <a href="#boundary">第二版怎样工作</a>
  471. <a href="#two-logics">真正的智能创作系统</a>
  472. <a href="#run">Run 454 对比</a>
  473. <a href="#recursion">递归与验收</a>
  474. <a href="#research">参考观点</a>
  475. </nav>
  476. </div>
  477. </header>
  478. <main class="page">
  479. <section id="boundary">
  480. <p class="section-label">01 / 第二版是怎么工作的</p>
  481. <h2>第二版是一套由主 Agent 驱动的 Agentic Workflow</h2>
  482. <p class="lead">它不是按固定步骤一次跑完的普通 Workflow。主 Agent 会根据当前产物调整本轮目标,组织多个分支取证和生成候选,再比较、合并和评价,决定下一轮或结束。</p>
  483. <div class="diagram">
  484. <p class="diagram-title">第二版已经能够完成的真实循环</p>
  485. <div class="flow">
  486. <div class="node"><strong>创作总目标</strong></div>
  487. <div class="arrow">→</div>
  488. <div class="node"><strong>本轮目标</strong><small>主 Agent 判断</small></div>
  489. <div class="arrow">→</div>
  490. <div class="node"><strong>多路探索</strong><small>取证 + 创作候选</small></div>
  491. <div class="arrow">→</div>
  492. <div class="node"><strong>比较候选</strong><small>合并 / 暂存 / 淘汰</small></div>
  493. <div class="arrow">→</div>
  494. <div class="node"><strong>整体评价</strong><small>决定下一轮或结束</small></div>
  495. </div>
  496. </div>
  497. <blockquote>
  498. <p><strong>它的核心问题不是不够智能,而是智能主要集中在主 Agent。</strong>局部分支主要接收“写某个段落、补充行动方法、查询相关素材”等执行任务,不会自己管理完整的创作问题和返回位置。</p>
  499. </blockquote>
  500. <p><strong>更准确的定位是:</strong>第二版是一套已经具备选择、竞争、评价和迭代能力,但仍然以主 Agent 集中编排为核心的 Agentic Workflow。下一版要做的,是让每个 Task 也拥有自己的判断循环。</p>
  501. </section>
  502. <section id="two-logics">
  503. <p class="section-label">02 / 真正的智能创作系统</p>
  504. <h2 class="logic-heading">真正的智能创作系统,应该怎样工作?</h2>
  505. <p class="logic-answer"><strong>新系统是一个围绕创作总目标不断规划、执行、验收和重新规划的循环。</strong>每个 Task 完成后把结果返回父节点,由父节点决定继续细化、向下拆分、回退还是收束,直到创作总目标完成。</p>
  506. <div class="system-overview" aria-label="智能创作系统的整体与局部两层逻辑">
  507. <div class="overview-panel">
  508. <p class="overview-kicker">01 / 任务树怎样生长</p>
  509. <h3>现在该解决什么?</h3>
  510. <pre class="overview-tree">创作总目标
  511. 让读者理解犹豫的损失,并开始行动
  512. 发现当前还没有解决的问题
  513. Task 1
  514. 局部目标:让隐性损失变得可感知
  515. 完成,返回创作总目标重新判断
  516. 发现新的问题
  517. Task 2
  518. 局部目标:把“为什么会犹豫”解释得清楚、可信
  519. 完成,返回创作总目标重新判断
  520. 发现新的问题
  521. Task 3
  522. 局部目标:形成简单、可信、可以立即执行的方法
  523. 完成,返回创作总目标重新判断
  524. 发现新的问题
  525. Task 4
  526. 局部目标:把已通过验收的认识、冲击和行动方法
  527. 整合成连续完整的脚本
  528. 返回创作总目标验收
  529. ├─ 仍有问题:产生新的 Task,或返回已有 Task
  530. └─ 已经完成:系统收束</pre>
  531. <p class="overview-note">Task 1—4 是这个案例逐步生长出的阶段性任务,不是系统预先规定的固定流程。任务数量由创作总目标和每次验收结果动态决定。</p>
  532. </div>
  533. <div class="overview-bridge" aria-hidden="true">→</div>
  534. <div class="overview-panel">
  535. <p class="overview-kicker">02 / 每个 Sub-Agent 解决一个 Task</p>
  536. <h3>这个问题怎么解决?</h3>
  537. <pre class="overview-loop">局部目标:这一步要做到什么?
  538. 需要去验证:现在还不能确定什么?
  539. 获取证据:需要查什么资料?
  540. 进行推理判断:证据说明应该怎么做?
  541. 生成候选方案:做出可以比较的内容
  542. 推理决策:是否真的解决了问题?
  543. ├─ 未通过:退回出错位置
  544. └─ 已完成:返回父节点</pre>
  545. </div>
  546. </div>
  547. <p class="overview-summary"><strong>创作总目标决定“接下来解决什么”,每个 Sub-Agent 只负责一个边界清楚的 Task。</strong>独立检索和候选探索可以并行;语气、脉络和上下文强相关的连续创作,仍然由主 Agent 保持完整上下文。</p>
  548. <p class="lead">左边管理整项创作被拆成哪些父子任务;右边规定某个 Task 被选中以后,怎样围绕自己的局部目标完成取证、判断、创作、验收和返回。Task 完成后不会自动进入下一步,而是返回父节点,由父节点重新判断。</p>
  549. <h3 class="major-subheading">系统根据当前目标识别缺口,动态生成 Task</h3>
  550. <p><strong>脉络探索、事实验证和风格校验都不是固定步骤。</strong>只有父节点发现当前创作确实缺少某种认识、产物或约束判断时,系统才生成对应的 Task。Task 完成并通过验收后,结果返回父节点,同时写回创作表。</p>
  551. <div class="task-examples">
  552. <article class="task-example">
  553. <h4>例子一:当前缺少脉络</h4>
  554. <div class="task-step">
  555. <span>当前未知</span>
  556. <p>寓言、生活场景和行动方法应该怎样组织?</p>
  557. </div>
  558. <div class="task-down">↓</div>
  559. <div class="task-step">
  560. <span>临时生成 Task</span>
  561. <p>生成“脉络探索 Task”,探索三个不同的内容脉络,并说明各自优缺点。</p>
  562. </div>
  563. <div class="task-down">↓</div>
  564. <div class="task-step">
  565. <span>选择执行方式</span>
  566. <p>几个相对独立的脉络方向,可以交给多个 Sub-Agent 并行探索。</p>
  567. </div>
  568. <div class="task-down">↓</div>
  569. <div class="task-step">
  570. <span>父节点比较和验收</span>
  571. <p>选择、组合或淘汰候选脉络。</p>
  572. </div>
  573. <div class="task-down">↓</div>
  574. <div class="task-step">
  575. <span>产出</span>
  576. <p>通过验收的候选脉络+选择理由。</p>
  577. </div>
  578. <div class="task-down">↓</div>
  579. <div class="task-step">
  580. <span>返回并写回</span>
  581. <p>结果返回父节点,同时更新创作表中的“脉络”数据。</p>
  582. </div>
  583. </article>
  584. <article class="task-example">
  585. <h4>例子二:当前存在风格与事实风险</h4>
  586. <div class="task-step">
  587. <span>当前未知</span>
  588. <p>“毛驴效应”的解释是否可靠?“日常冲击”的写法是否符合账号一贯的专业、克制风格?</p>
  589. </div>
  590. <div class="task-down">↓</div>
  591. <div class="task-step">
  592. <span>临时生成 Task</span>
  593. <p>生成“约束校验 Task”,分别核查事实依据和账号风格适配。</p>
  594. </div>
  595. <div class="task-down">↓</div>
  596. <div class="task-step">
  597. <span>选择执行方式</span>
  598. <p>两项校验相对独立,可以交给事实研究 Sub-Agent 和风格审校 Sub-Agent 并行完成。</p>
  599. </div>
  600. <div class="task-down">↓</div>
  601. <div class="task-step">
  602. <span>父节点比较和验收</span>
  603. <p>确认事实可追溯、表达没有夸大,候选内容也没有突破账号 Traits。</p>
  604. </div>
  605. <div class="task-down">↓</div>
  606. <div class="task-step">
  607. <span>产出</span>
  608. <p>证据卡片+风格适配判断+可用和禁用表达+回退建议。</p>
  609. </div>
  610. <div class="task-down">↓</div>
  611. <div class="task-step">
  612. <span>返回并写回</span>
  613. <p>结果返回父节点,写回证据和约束校验结果;账号 Traits 继续作为所有子 Task 共同继承的约束。</p>
  614. </div>
  615. </article>
  616. </div>
  617. <h3 class="major-subheading">一个创作 Task 怎样被推进和验收(single loop)</h3>
  618. <p>每个 Task 都运行同一套完整闭环:围绕阶段性目标明确问题和未知,获取证据并形成判断,再提出创作假设、安排 Agent 执行、生成候选产物,最后通过验收决定完成返回、继续拆分还是回退修改。</p>
  619. <div class="object-list">
  620. <div class="object-item">
  621. <div class="object-name"><span>01</span>当前 Task 的局部目标</div>
  622. <div class="object-body">
  623. <p>这个 Task 在当前阶段具体要做到什么。根节点的局部目标就是创作总目标;进入子 Task 后,它就是该 Task 需要完成的阶段性目标。</p>
  624. <p>例如,Run 454 中负责解决“隐性损失感知”的 Task,其局部目标大致是:</p>
  625. <blockquote><p>让读者从“犹豫比较安全”转变为“犹豫也在付出代价”。</p></blockquote>
  626. </div>
  627. </div>
  628. <div class="object-item">
  629. <div class="object-name"><span>02</span>需要解决的创作问题</div>
  630. <div class="object-body">
  631. <p>当前阻碍这个局部目标实现的具体问题。</p>
  632. <blockquote><p>怎么让抽象的“犹豫会带来隐性损失”,变成读者能够理解并真正感受到的东西?</p></blockquote>
  633. </div>
  634. </div>
  635. <div class="object-item">
  636. <div class="object-name"><span>03</span>需要去验证</div>
  637. <div class="object-body">
  638. <p>为了回答当前问题,现在还有什么不能确定?</p>
  639. <blockquote><p>用经典寓言还是日常生活场景,更容易让读者产生“犹豫也在付出代价”的感受?</p></blockquote>
  640. </div>
  641. </div>
  642. <div class="object-item">
  643. <div class="object-name"><span>04</span>获取证据并进行推理判断</div>
  644. <div class="object-body">
  645. <p>围绕未知查看账号过去的表达、相似内容、心理学资料和读者熟悉的生活场景,再判断这些证据意味着什么。</p>
  646. <blockquote><p>寓言容易建立概念和可信度,但距离现实较远;日常场景更有代入感,但单独使用可能缺少专业解释。两个方向需要组合。</p></blockquote>
  647. </div>
  648. </div>
  649. <div class="object-item">
  650. <div class="object-name"><span>05</span>创作假设</div>
  651. <div class="object-body">
  652. <p>对“这个问题可能怎么解决”的可验证猜想。</p>
  653. <blockquote><p>如果用“毛驴效应寓言+日常场景”解释犹豫,读者会比只看抽象概念更容易产生代入和紧迫感。</p></blockquote>
  654. <p>假设不是“写第二段”,也不是“调用一个 Agent”。它必须包含:<strong>为什么可能有效,以及什么情况说明它没效果。</strong></p>
  655. </div>
  656. </div>
  657. <div class="object-item execution-bridge">
  658. <div class="object-name"><span>06</span>执行安排</div>
  659. <div class="object-body">
  660. <p><strong>把创作假设变成 Agent 可以真正完成的具体工作。</strong>这不是新的业务层级,而是假设通向产物的执行桥梁。</p>
  661. <ul>
  662. <li><strong>拆具体工作:</strong>把假设拆成一项或多项可执行的创作、检索或校验工作。</li>
  663. <li><strong>提供工作上下文:</strong>告诉 Agent 局部目标、父节点结论、交付要求、验收标准,以及当前 Task 真正相关的证据和约束。</li>
  664. <li><strong>明确交付与验收:</strong>说清要交付什么产物、用什么标准验收,以及失败后返回哪里。</li>
  665. <li><strong>选择执行者:</strong>独立的事实检索和候选探索可以交给 Sub-Agent 并行;语气、脉络和上下文强相关的连续创作,交给保持完整上下文的主 Agent。</li>
  666. </ul>
  667. </div>
  668. </div>
  669. <div class="object-item">
  670. <div class="object-name"><span>07</span>候选产物</div>
  671. <div class="object-body">
  672. <p>Agent 根据执行安排真正交付的可观察结果,例如结构方案、段落、标题、脚本或证据卡片。在验收通过前,它们都只是候选。</p>
  673. <ul>
  674. <li>候选 1:只用毛驴寓言建立概念。</li>
  675. <li>候选 2:只用日常场景制造冲击。</li>
  676. <li>候选 3:先用寓言解释概念,再用日常场景制造冲击。</li>
  677. </ul>
  678. </div>
  679. </div>
  680. <div class="object-item">
  681. <div class="object-name"><span>08</span>验收与去向</div>
  682. <div class="object-body">
  683. <p>不是判断“有没有写完”,而是判断:</p>
  684. <blockquote><p>这个产物是否把假设真正落实出来?这个假设是否解决了问题?这个问题的解决是否推进了创作总目标?</p></blockquote>
  685. <p>普通 Task 先验收阶段性产物是否落实判断、解决局部问题;只有回到根节点,才进行完整作品的发布前验收。至于受众是否真的发生变化,还要在发布后用真实反馈继续验证。</p>
  686. <ul>
  687. <li><strong>通过:</strong>当前 Task 完成,把结果返回父节点。</li>
  688. <li><strong>问题太大:</strong>继续向下拆出新的子 Task。</li>
  689. <li><strong>未通过:</strong>退回真正出错的问题、假设、证据或候选产物。</li>
  690. </ul>
  691. </div>
  692. </div>
  693. </div>
  694. <h3 class="major-subheading">多个 Task 组合起来,形成可递归的创作业务树</h3>
  695. <p><strong>每个 Task 都有统一的任务外壳,但不会收到完全相同的上下文。</strong>局部目标、产生原因、父节点结论、交付要求、验收标准和返回位置必须明确;账号风格、场景约束、证据范围或全文内容,则只在当前 Task 真正需要时提供。</p>
  696. <div class="plain-table-wrap">
  697. <table>
  698. <thead>
  699. <tr><th>每个 Task 都必须有</th><th>根据当前 Task 按需提供</th></tr>
  700. </thead>
  701. <tbody>
  702. <tr>
  703. <td>局部目标、为什么产生这个 Task、父节点已有结论、交付要求、验收标准、完成后的返回位置。</td>
  704. <td>账号 Traits、场景约束、待验证说法、证据来源范围、历史内容、已有候选或完整脚本。</td>
  705. </tr>
  706. </tbody>
  707. </table>
  708. </div>
  709. <p>“共同继承约束”不等于把所有资料都塞给每个 Agent。系统只提供当前 Task 需要的部分,但子 Task 不能违反父节点和创作总目标的硬约束。</p>
  710. <div class="diagram">
  711. <p class="diagram-title">Run 454:Task 1 怎样递归到 Task 1.1.1 / Task 1.1.2</p>
  712. <pre class="tree">创作总目标
  713. 让读者理解犹豫的损失,并开始行动
  714. └─ Task 1:让隐性损失变得可感知
  715. 局部目标:让读者意识到“犹豫也在付出代价”
  716. ├─ Task 1.1:建立清楚、可信的概念解释
  717. │ │
  718. │ ├─ Task 1.1.1:验证“毛驴效应”的事实边界
  719. │ │ ├─ 目标+上下文:待验证说法+证据标准+来源范围+交付要求
  720. │ │ ├─ 产出:证据卡片+可以怎样表述+不能怎样表述
  721. │ │ └─ 完成 → 返回 Task 1.1
  722. │ │
  723. │ ├─ Task 1.1 重新判断
  724. │ │ ├─ 证据和表达都已足够 → 返回 Task 1
  725. │ │ └─ 事实边界清楚,但不符合账号风格 → 动态生成 Task 1.1.2
  726. │ │
  727. │ └─ Task 1.1.2:改写成符合账号风格的表达
  728. │ ├─ 目标+上下文:Task 1.1.1 结论+账号 Traits+历史表达+验收标准
  729. │ ├─ 产出:经过事实和风格校验的概念段落
  730. │ └─ 完成 → 返回 Task 1.1 → 验收通过后返回 Task 1
  731. ├─ Task 1 重新判断
  732. │ └─ 概念已经清楚,但读者还没有切身感受 → 动态生成 Task 1.2
  733. ├─ Task 1.2:找到有代入感的生活场景
  734. │ │
  735. │ ├─ Task 1.2.1:探索跳槽、关系、创作等候选场景
  736. │ │ ├─ 目标+上下文:受众特征+场景边界+真实性要求+验收标准
  737. │ │ └─ 产出候选场景 → 返回 Task 1.2
  738. │ │
  739. │ └─ Task 1.2 重新判断
  740. │ ├─ 场景真实并符合账号表达 → 返回 Task 1
  741. │ └─ 场景过度煽情 → 动态生成 Task 1.2.2 做风格校验
  742. └─ Task 1 最终判断
  743. ├─ 概念可信,生活场景也能产生冲击
  744. ├─ 主 Agent 统一写成连续段落
  745. └─ Task 1 验收通过 → 返回创作总目标</pre>
  746. </div>
  747. <p><strong>关键不是提前规划出 Task 1.1.2。</strong>Task 1.1.1 完成并返回以后,Task 1.1 发现“事实问题解决了,但风格问题还没解决”,才动态产生 Task 1.1.2。</p>
  748. <h3 class="major-subheading">完整系统怎样运转</h3>
  749. <p>把前面的两部分合起来:创作总目标不断识别缺口并产生 Task;每个 Task 运行自己的 single loop,必要时继续生成子 Task,完成后再逐层返回。</p>
  750. <div class="diagram">
  751. <p class="diagram-title">创作总目标、父子 Task 与 single loop 的嵌套关系</p>
  752. <pre class="tree">创作总目标
  753. ├─ 发现 Task 1:让隐性损失变得可感知
  754. │ ├─ Task 1 运行自己的 single loop
  755. │ ├─ 必要时产生子 Task 1.1
  756. │ │ └─ Task 1.1 运行 single loop → 完成后返回 Task 1
  757. │ └─ Task 1 验收通过 → 返回创作总目标
  758. ├─ 创作总目标重新判断
  759. │ └─ 发现新的缺口 → 动态生成 Task 2
  760. └─ Task 2:把观点变成可执行行动
  761. └─ 运行 single loop → 完成后返回创作总目标
  762. 创作总目标验收
  763. ├─ 仍有缺口:生成新 Task,或返回已有 Task
  764. └─ 已经完成:系统收束</pre>
  765. </div>
  766. <blockquote>
  767. <p>创作总目标负责发现和选择 Task;每个 Task 运行同一套 single loop,必要时继续产生子 Task,完成后逐层返回,直到创作总目标验收通过。</p>
  768. </blockquote>
  769. </section>
  770. <section id="run">
  771. <p class="section-label">03 / Run 454:同一个案例,两种系统怎样处理</p>
  772. <h2>从“主 Agent 组织两轮创作”到“每个 Task 管理自己的判断”</h2>
  773. <p class="lead">第二版已经能让候选竞争、独立问题并行,并用评价推动下一轮。新系统不是推翻这些能力,而是把判断、验收和返回位置下放到每个 Task。</p>
  774. <p class="case-meta">
  775. <span>2 个大轮次</span><span>4 个分支</span><span>5 个段落</span><span>11 个元素</span><span>约 15 分钟</span><span>约 143 万输入 token</span>
  776. · <a href="https://pattern.aiddit.com/api/pattern/script_builds/454" target="_blank" rel="noreferrer">Run 454 真实数据</a>
  777. · <a href="https://pattern.aiddit.com/api/pattern/script_builds/454/log" target="_blank" rel="noreferrer">运行日志</a>
  778. </p>
  779. <div class="plain-table-wrap">
  780. <table class="case-compare">
  781. <thead>
  782. <tr>
  783. <th>老系统:主 Agent 组织两轮创作</th>
  784. <th>新系统:每个 Task 管理自己的判断</th>
  785. </tr>
  786. </thead>
  787. <tbody>
  788. <tr>
  789. <td><strong>输入总目标</strong>理解隐性损失,获得行动方法。</td>
  790. <td><strong>创作总目标成为根节点</strong>让读者意识到不行动也有损失,并能够马上行动。</td>
  791. </tr>
  792. <tr>
  793. <td><strong>主 Agent 决定第一轮方向</strong>Branch 1 用寓言切入,Branch 2 用日常场景切入。</td>
  794. <td><strong>创作总目标发现 Task 1</strong>怎样让“犹豫的隐性损失”变得可感知?</td>
  795. </tr>
  796. <tr>
  797. <td><strong>两个 Branch 直接生成候选</strong>一个强调专业可信,一个强调生活代入。</td>
  798. <td><strong>Task 1 先明确未知和创作假设</strong>寓言能否建立可信度?生活场景能否制造冲击?</td>
  799. </tr>
  800. <tr>
  801. <td><strong>主 Agent 选择 Branch 1</strong>同时保留 Branch 2 的“日常隐性损失”洞察。</td>
  802. <td><strong>两个创作假设分别形成与任务相关的目标+上下文</strong>交给 Sub-Agent 探索,再由 Task 1 比较、组合和验收。</td>
  803. </tr>
  804. <tr>
  805. <td><strong>主 Agent 决定第二轮分工</strong>Branch 3 负责“为什么会犹豫”,Branch 4 负责“如何行动”。</td>
  806. <td><strong>Task 1 通过验收后返回创作总目标</strong>总目标重新判断,此时才发现 Task 2:怎样转化成可执行行动?</td>
  807. </tr>
  808. <tr>
  809. <td><strong>Branch 3 和 Branch 4 分别创作段落</strong>两个分支最终合入完整内容。</td>
  810. <td><strong>Task 2 继续向下拆解</strong>方法查证可以并行;语气、脉络和节奏由主 Agent 保持完整上下文。</td>
  811. </tr>
  812. <tr>
  813. <td><strong>整体评价决定是否结束</strong>评价可以推动下一轮,但失败位置没有显式记录。</td>
  814. <td><strong>每个 Task 都分层验收</strong>失败时准确返回证据、创作假设、子问题或候选产物。</td>
  815. </tr>
  816. <tr>
  817. <td><strong>第五段没有真正写出金句</strong>产物只说“这里应该有一句金句”,但整体评价仍然通过。</td>
  818. <td><strong>候选产物 5 验收失败</strong>只退回结尾重写,不重查“毛驴效应”,也不重跑整篇流程。</td>
  819. </tr>
  820. </tbody>
  821. </table>
  822. </div>
  823. <blockquote>
  824. <p><strong>第二版</strong>是“主 Agent 聪明地组织多轮创作”;<strong>新系统</strong>是“整棵创作问题树都能管理自己的判断、执行、验收和返回”。</p>
  825. </blockquote>
  826. <div class="issue">
  827. <p><strong>Run 454 留下的两条真实提醒</strong></p>
  828. <p><strong>验收:</strong>第五段只描述“这里应该有一句金句”,却没有交付金句本身,最终仍然通过。</p>
  829. <p><strong>成本:</strong>5 个段落消耗约 143 万输入 token。多 Agent 应该用在高价值、可独立并行的探索上,不是默认用在每个节点。</p>
  830. </div>
  831. </section>
  832. <section id="recursion">
  833. <p class="section-label">04 / 递归、返回与验收</p>
  834. <h2>递归不是一直向下拆,而是每完成一步都重新判断下一步</h2>
  835. <div class="conversation">
  836. <div class="conversation-label">你最初的原话</div>
  837. <div class="conversation-body">
  838. <p><strong>每一步完成了都有三个方向:细化、向下、回退。</strong></p>
  839. <pre class="tree">1 → 1.1 → 1.1.1
  840. 1.1.1 决定要不要 1.1.2
  841. 如果 1.1.1 已完成
  842. 回到 1.1
  843. 由 1.1 决定:回到 1,还是去 1.2</pre>
  844. </div>
  845. </div>
  846. <p>这个判断抓住了递归的核心。后来我们只补清了两个容易混在一起的动作:<strong>子节点完成后回到父节点,是正常返回,不是失败回退;整棵树还必须有一个停止状态,也就是收束。</strong></p>
  847. <p>真正的“智能”发生在系统能够自主选择:</p>
  848. <ol>
  849. <li>现在真正阻碍创作总目标的是哪个问题?</li>
  850. <li>这个问题需要直接创作,还是继续向下拆?</li>
  851. <li>当前缺的是事实、案例、用户理解,还是创意方向?</li>
  852. <li>应该提出一个假设,还是同时保留多个候选?</li>
  853. <li>候选之间应该竞争、合作,还是按顺序完成?</li>
  854. <li>验收失败,是修改产物、补证据、换假设,还是重新定义问题?</li>
  855. <li>什么时候已经足够好,可以停止继续递归?</li>
  856. </ol>
  857. <p>因此,一个完整节点至少有五种去向:</p>
  858. <div class="moves">
  859. <div class="move"><b>继续细化</b><span>当前方向成立,但产物还不够好。</span></div>
  860. <div class="move"><b>向下递归</b><span>出现了必须单独解决的子问题或未知。</span></div>
  861. <div class="move"><b>正常返回</b><span>当前节点完成,把结论交回父节点。</span></div>
  862. <div class="move"><b>失败回退</b><span>新证据推翻了当前或上层判断,退回指定位置重做。</span></div>
  863. <div class="move"><b>收束</b><span>创作总目标验收通过,或继续投入已经没有足够价值。</span></div>
  864. </div>
  865. <h3>“回到父节点”和“回退”不能混为一谈</h3>
  866. <div class="conversation">
  867. <div class="conversation-label">正常返回</div>
  868. <div class="conversation-body">
  869. <pre class="tree">1.1.1 完成
  870. → 把结论返回给 1.1
  871. → 1.1 决定是否生成 1.1.2</pre>
  872. <p>这是一次正常的递归返回。子问题完成了,父问题拿到结果继续判断。</p>
  873. </div>
  874. </div>
  875. <div class="conversation">
  876. <div class="conversation-label">失败回退</div>
  877. <div class="conversation-body">
  878. <pre class="tree">1.1.1 发现:
  879. 1.1 的假设根本不成立
  880. → 使 1.1 失效
  881. → 回到 1.1 重新提出假设</pre>
  882. <p>这是回退。它意味着后面的工作不能继续沿用,需要修改前面的判断。</p>
  883. </div>
  884. </div>
  885. <h3>不同层的验收不能共用一把尺子</h3>
  886. <div class="plain-table-wrap">
  887. <table>
  888. <thead>
  889. <tr><th>验收层级</th><th>真正要回答的问题</th></tr>
  890. </thead>
  891. <tbody>
  892. <tr><td><strong>证据验收</strong></td><td>证据是否可靠,是否真的解决了未知?</td></tr>
  893. <tr><td><strong>假设验收</strong></td><td>证据是否支持这个创作判断?</td></tr>
  894. <tr><td><strong>产物验收</strong></td><td>这个产物是否真正把假设表达出来了?</td></tr>
  895. <tr><td><strong>问题验收</strong></td><td>原来的创作障碍是否已经被解决?</td></tr>
  896. <tr><td><strong>创作总目标验收(发布前)</strong></td><td>最终作品是否具备带来预期受众变化的条件?</td></tr>
  897. <tr><td><strong>真实效果验收(发布后)</strong></td><td>真实受众是否确实产生了预期的理解、感受或行动变化?这些结果是否需要反过来修正原来的判断?</td></tr>
  898. </tbody>
  899. </table>
  900. </div>
  901. <p>因此,不能因为“文案写得流畅”,就判断创作总目标完成;也不能因为“找到了一条资料”,就判断创作假设成立。</p>
  902. </section>
  903. <section id="research">
  904. <p class="section-label">05 / 参考观点</p>
  905. <h2>这些研究分别为新系统提供了哪些参考</h2>
  906. <p class="lead">我们先从真实业务和 Run 454 得出判断,再用这些研究检查问题递归、假设竞争、有限并行、验收回退和协作边界。</p>
  907. <ul class="references">
  908. <li><a href="https://arxiv.org/abs/2503.08275" target="_blank" rel="noreferrer">WriteHERE</a>:<span>提供“问题递归”。创作过程中动态发现局部问题,检索、思考和写作交织发生。</span></li>
  909. <li><a href="https://research.google/blog/accelerating-scientific-breakthroughs-with-an-ai-co-scientist/" target="_blank" rel="noreferrer">Google AI Co-Scientist</a>:<span>提供“假设进化”。生成多个假设,比较、淘汰、组合,再产生新一代假设。</span></li>
  910. <li><a href="https://www.anthropic.com/engineering/multi-agent-research-system" target="_blank" rel="noreferrer">Anthropic Multi-Agent Research</a>:<span>提供“有限并行”。只有相对独立的问题,才交给多个研究者并行探索。</span></li>
  911. <li><a href="https://www.anthropic.com/engineering/harness-design-long-running-apps" target="_blank" rel="noreferrer">Anthropic 长任务 Harness</a>:<span>提供“验收和改道”。创作者与评价者分开;失败后明确决定继续细化还是换方向。</span></li>
  912. <li><a href="https://research.google/blog/towards-a-science-of-scaling-agent-systems-when-and-why-agent-systems-work/" target="_blank" rel="noreferrer">Google Agent Scaling</a>:<span>提供“协作边界”。事实探索、案例寻找适合并行;连续写作、上下文强依赖任务应该保持一个主创作上下文。</span></li>
  913. </ul>
  914. <blockquote>
  915. <p>问题可以递归,假设可以竞争,证据可以并行获取,但连续创作不能随意切碎;每一层都必须验收,并知道失败后退到哪里。</p>
  916. </blockquote>
  917. </section>
  918. </main>
  919. <footer>
  920. <div class="page">脚本构建第三版 · 业务讨论稿 · Run 454 复盘</div>
  921. </footer>
  922. </body>
  923. </html>