长文写作:一个规划、研究并撰写真实文档的智能体
长文写作是一个智能体,它通过先规划大纲、在开始之前询问所需的一切、对照你的材料和公开来源研究每个章节,然后逐个章节撰写,从而生成一份完整的多章节文档——例如备案文件、市场进入报告、尽职调查备忘录——且该工作支持断点续传。你可以在聊天旁边的画布中编辑它,通过选中文本来重写任何段落,并且保留每一个版本。
智能体执行的其他所有操作都包含在一次回复中。长篇写作则是它生成一份你可以交给他人的文档:监管申报、市场进入报告、尽职调查备忘录、投标响应。这些文档具有聊天回答所不具备的三个特性——它们在撰写前经过研究、具有结构化结构,且耗时超过任何人愿意坐着观看的时间。
因此,这并非“聊天界面上的一个导出按钮”。它是对话旁的一条生产线:具有状态、可中断、可恢复,并配有画布供你阅读和编辑结果。
它在撰写前进行规划
发生的第一件事不是撰写。智能体识别出哪种文档正在被请求——基于你定义的文档类型,每种类型都有其自己的大纲、所需信息、知识库和拒绝边界——并规划出各个章节。每个章节都会获得其自己的简要说明:必须涵盖的内容、大致长度以及所依赖的事实。
该简要说明并非隐藏。它是模型为该章节获取的文本,它在屏幕上显示,你可以编辑它,并且在修改后可以重新运行该章节。一份你无法引导的文档,最终只能由你手动重写。
如果没有匹配项,智能体会提出一个大纲并请求你确认。无论哪种情况,结构都在写入第一个字之前被固定,并且在整个运行过程中保持不变——明天编辑类型不会重新编号你今天开始的文档。
每个章节独立进行研究
这是将文档与长回答区分开来的部分。每个章节都会获取其自身的事实:它会搜索、打开并阅读页面——而不是搜索摘要,摘要只有标题和两行文字,而数据位于正文中——并将每个事实与其来源并列保存。你自己的知识库以相同的方式搜索,并具有优先权。
然后,该章节仅基于这些事实进行撰写。不是基于模型对该主题的记忆。这就是为什么有趣的故障模式发生变化:你不会得到一个自信编造的数据,而是得到一个声明该数据未找到的章节——而检查此内容的工具是通过代码扫描文本,查找任何来源中均未出现的具体内容,而不是模型对自己工作的评分。
研究针对每个文档进行限制和预算,并在停止发现新内容时停止。在工作过程中,你可以查看每个章节阅读了哪些域。
它在编造前进行询问
文档通常只需要少数几个只有你拥有的事实:合法制造商、目标市场、申报截止日期、设备类别。缺少其中任何一个都不会使文档质量略有下降——而是使其无效。
因此,所需信息是文档类型的一部分,智能体在开始之前进行检查:它会询问缺失的那一项,说明为什么需要它,并等待。在答案到位之前,不会生成任何内容,也不会产生任何费用。如果你在之前的对话中已经说过,它不会再问。
你更改的是段落,而非文档
选择一个句子,例如“在此处添加巴西截止日期”,然后该段落会被替换。该章节的其余部分逐字节相同。
机制比听起来更重要:选择范围由系统计算,模型仅被要求提供替换文本。被要求返回范围的模型在不确定时不会返回错误——它会返回一个看似合理的范围,而一个句子会从你的申报文件中悄然消失。因此,它永远不会有机会选择其中一个。
同一路径处理整个章节的重写、编辑器中的手动编辑以及输入到聊天中的指令。并且由于文档位于对话旁边而不是内部,你可以在文档打开时继续与智能体讨论文档——要求它从你自己的数据中添加图表、拉入你刚刚上传的文件,或将副本翻译成另一种语言。
你拥有的内容永远不会丢失
对每个章节的更改都会被保留:它首次被写入的版本、你的手动编辑、每次请求的重写、每次恢复——以及当时的说明和受影响的段落。与当前文本的比较是逐行计算的;从不要求模型描述更改内容,因为一个读起来很好但错误的描述正是此功能存在所要防止的故障。
恢复旧版本会添加新版本。历史记录只会增长。
最终结果
画布中的文档,可导出为带有可点击目录和页码的 PDF,图表仅从你材料中出现的数字绘制。只读副本可以翻译成另一种语言,而不会影响原始文件。当你分享生成它的对话时,你可以决定文档是否随之共享。
诚实的限制:这是用于值得花费几分钟机器工作和由了解主题的人进行审核的文档。它消除了空白页、事实收集和组装——而不是责任。
常见问题
- 这与要求 ChatGPT 撰写报告有何不同?
- 聊天回答是在一次传递中、在一个上下文窗口内,基于模型已有的认知生成的。长文写作会先规划大纲,在开始之前询问你所需的一切,分别研究每个章节,并逐个章节撰写——因此,一份四十页的文档能保持一致性,每个数据都能追溯回来源,且关闭标签页后工作不会丢失。
- 文档中的事实来自哪里?
- 来自你自己的知识库,并且如果你已为该智能体启用了公开来源,则来自智能体实际打开并阅读的页面。每个事实都与其来源一起存储,因此最终文档中的任何数据都可以追溯回其来源页面或段落。
- 如果智能体需要它不知道的信息怎么办?
- 它会询问——仅在开始写作前询问一次,并解释为什么需要该特定信息。在得到答案之前不会开始写作,这意味着缺失的细节会在第一分钟内被发现,而不是在第二十页才被发现,且文档中永远不会包含虚构的替代内容。
- 我能否在不重新生成整个文档的情况下更改一个段落?
- 可以。你选中文本并说明要更改的内容,系统仅替换该段落——该章节的其余部分保持字节级完全一致。选择范围由系统计算,而非由模型选择。
- 我能否查看草稿之间的变更?
- 可以。对章节的每次更改都作为版本保留——包括首次写入的版本、你的手动编辑、每次请求的重写和每次恢复——并与当前文本进行逐行比较。恢复旧版本会添加一个新版本,而不是删除任何内容。
- 撰写一份文档需要多长时间,我是否必须保持标签页打开?
- 根据长度和研究需求,可能需要几分钟到几十分钟。工作作为后台任务运行,因此你可以关闭标签页并稍后返回;如果服务器在文档撰写过程中重启,它将从当前章节继续,且已完成的章节不受影响。
- 我能否控制文档允许陈述的内容?
- 可以。每种文档类型都带有拒绝边界——即它绝不可承诺、引用或预测的内容——该边界由系统附加到每个章节的指令中,而非留给模型去记忆。文档类型由你定义,拥有自己的大纲、所需信息和知识库。
智能体需要知道的东西,绝大部分早就写下来了——在你的官网上,在你团队天天发给客户的那几份 PDF 里。从 URL 导入解决公开的那一半,上传解决剩下的一半。
结构化索引是一个小型表格,智能体根据文档中已有的字段(如标题、价格、等级、链接、图片)以及用于语义搜索的向量搜索来构建。向量搜索能找出与问题语义相似的段落,但无法进行计数、按数值过滤或分组。结构化索引则能回答这些问题,并让智能体精确引用链接或标识符,而不是从片段中重构它们。
一条 storyline 是一张有向图,智能体会和每个终端用户一起沿着它走——每个节点是一步(有自己的任务、知识和工具),出口携带条件,而每个人的进度、档案和笔记都会跨会话、跨渠道保存并续接。它把一个智能体从做单点任务的助手,变成能亲自交付一套多步骤服务的智能体。
Dynamic Planner 盯着对话:当一位用户正在办的事确实需要多步才能完成、又落在这个智能体的领域之内,而且他明显不确定该怎么往下走时,它会提出把这件事展开成一条临时 storyline——一份由清单驱动、一步一步的计划,随后由智能体每次只专注执行其中一步,进度用户看得见。规划只发生一次,且要过校验;执行是确定性的。