超越GPT的写作agent
深度agent解析

Creating a new species of intelligence is the greatest mission of our generation
这个系列走到第七篇,聊点方法论层面的东西——如何重新定义GPT的写作模式。
单个大模型写文章,如今已不是什么新鲜事。把要求和素材一股脑塞进提示词,就像把建材堆给工人,让他凭一张图纸就把房子搭起来。听起来挺顺理成章?但当任务从“一篇文章”升级到“一本书”,事情就没那么简单了。一本书的素材规模,远远超出提示词容量的上限。更关键的是,即便有号称支持70k tokens的GPT-4,那个容量也只是个理论数字——真正把海量信息塞进提示词后,模型内部的注意力机制就会出现问题:信息太多,但不知道该用到哪里去。
容量只是一个模糊的度量,真正决定效果的,是对提示信息的使用深度。
接下来,我们就从agent的视角,重新审视写作任务——看看如何重构机器写作的底层逻辑。
#01 ··Agent的写作思路··
在agent架构中,面对大型搭建类目标,做法是让大模型在“思维”中扮演不同角色的工人。拿写书举例:有的工人是“规划者”,负责输出并迭代目录;有的是“工人”,根据标题从长期记忆中提取素材,生成内容;也有“工人”专门搜索闪现的灵感,依据灵感生成内容,再反过来根据内容提炼出新的标题;于是还需要另一个“工人”,处理新增标题对已有目录的影响,做修改和调整。如此循环,每个工人只需在“任务画布”上,一次处理一个单元任务。积少成多,一座大厦便慢慢成形、不断修缮。
这里的关键在于,如何定义单元任务?如何定义单元任务所需的工作记忆?如何决定任务触发的时机——也就是单元任务之间的协作逻辑?换句话讲,在搭建类任务中,怎么定义每个“工人”的职责以及它们之间的配合方式?更进一步,agent自身又如何为一种新任务,自主定义“思维中的工人”,并组织它们协同工作?
#02 ··写作agent的存储 & 存储生成逻辑··
我们把类似写作这样的搭建类任务,抽象为:
GPT扮演的角色,在协作中一步步操作“任务画布”上的长期记忆,最终完成搭建大厦的过程。
因此第一步,是
确定长期记忆的维度
“描述-内容”
之所以采用这种形式,是因为搭建类任务的通用逻辑是这样的——某个角色会基于已有“大厦”的半成品,确定需要加工的信息,找所需的素材,搜索辅助信息,然后明确需求,最后对“大厦”存储进行加工和修改。无论确定加工信息、素材信息、相关辅助信息,还是明确需求,都需要从已有的存储中检索。而这些搜索语句,在GPT API的角色模板里,通常定义在母类层,且都是描述型的,比如“根据XX标题下的修改策略,修改XX标题下的内容”。为了方便检索,在写作任务中,我们创建了以标题为中心的描述型存储,内容包括:
- X标题下子标题:1、XX,2、XX
- X标题下直接内容:具体内容文本
- X标题下评价:具体评价文本
- X标题下修改策略:具体修改策略文本
- X标题字数:字数
- X标题的字数要求:字数
- X标题的素材:具体的素材文本
- X标题要求:具体的要求文本
- X标题的素材需求:具体的素材需求文本
- X标题的修改次数:次数
存储定下来了,接下来就是设计这些存储之间的生成逻辑。这里我们设计了一套
“写作运算逻辑”
- :某标题下字数为0(说明还没动工),则激活“素材需求生成API”。第一步生成问题,通过记忆搜索(若记忆中没有,则依靠GPT搜索,未来可接网络API),生成“X标题下素材”。
检测
- :“X标题下素材”有内容,则激活“内容生成API”,生成“X标题下内容”。
检测
- :X标题修改次数少于1次(包括没搜到的情况),则激活一次“评级生成API”,生成“X标题评价”,并将“X标题修改次数”+1。
检测
- :X标题下有评价,则激活“修改策略生成API”,生成“X标题下修改策略”,并删除“X标题下评价”。
检测
- :X标题下有修改策略,则激活“内容修改API”对内容进行修改,生成“X标题下内容”替换修改前的内容。
检测
- :X标题下字数超过2000,且没有子标题,则激活“标题内容拆分API”。
检测
#03 ··写作agent的效果··
这种架构带来的第一个直接好处是
“自由修改”
提出的评价和修改策略
这套架构本身就依赖于这些存储的状态来触发,最终执行并改变存储
评价类表达包括:字数过多或过少、某个观点不正确、某个观点缺少论据、某个标题与主题不符或多余等。策略类表达包括:增加或减少某个标题的字数、在某个标题下增加或删除某个观点或论据、增加观点的论据或某种论据类型、重写某个标题等等。
第二个好处是
“复刻”——尊重作者的观点和写作习惯
“所有执行皆可被策略”
- :比如在“素材需求生成API”中设定,介绍哺乳动物时必须涵盖繁殖模式。Agent会根据标题找到策略,再根据策略寻找内容。
内容方向策略
- :比如单段不要太长、也不要太短,这种需求可以设定在“评价生成API”中,作为评价的参考依据。
段落布局策略
- :比如整体文风偏好,可以设定在“内容生成API”和“修改API”中,作为生成和修改的隐性约束。
写作风格策略
#04 ··相关GPT API总结··
(1)
素材需求生成API
- 背景提示:标题、整体要求、根据标题联想的关注维度
- 执行前搜集相关策略
- 生成素材需求
(2)
内容生成API
- 背景提示:标题、整体要求、标题下素材
- 执行前搜集相关策略
- 需求提示:生成标题下的内容
(3)
评价生成API
- 背景提示:某标题已有内容、整体要求
- 需求提示:生成评价
(4)
修改策略生成API
- 背景提示:某标题已有内容、该标题下的评价、整体要求
- 需求提示:生成修改策略
(5)
内容修改API
- 背景提示:某标题已有内容、该标题下的修改策略、该标题的字数要求、整体要求
- 需求提示:生成修改后的内容
(6)
内容拆分API
- 背景提示:某标题已有内容、整体要求
- 需求提示:拆分标题内容,按格式输出:标题下子标题、子标题下内容、标题下直接内容
#05 ··写作agent总结··
单体大模型的思路,是试图将所有的素材和要求一股脑塞进一个GPT执行里,让它一次性生成最终成品。结果就是:大厦的规模有限,后期修改自由度极低。
我们把这类写作搭建任务,重新理解为
“GPT扮演的角色在配合中,对任务画布上的长期记忆一步步操作,最终完成搭建大厦的过程”
借助写作agent架构,我们可以实现三大突破:
篇幅不受限,修改更自由,文本更忠于作者的观点和写作风格。
▼
-END-
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名