ArcLoop 的 Agent 一次给十集大纲能用吗——先按三幕拆再逐集扩写

文章导读
一次让 ArcLoop 的 Agent 直接产出十集大纲,通常能用,但更适合当方向草稿,不太适合直接当分集脚本用。稳妥做法分两层:先用一次调用定下三幕主线和十集的集号归属,再让 Agent 每集只展开一集的冲突。一次生成十集时,模型的注意力会平均摊开,节奏重复和角色动机漂移是最常见的两类问题;拆成“三幕定骨架 + 逐集填肉”后,每次调用的输入都带着上一集结尾状态,可控性会好一些。代价是调用次数变多
📋 目录
  1. 壹 先写三幕主线再拆十集位置
  2. 贰 只让 Agent 一次展开一集冲突
  3. 叁 检查每集是否提供新信息或新阻力
  4. 肆 合并十集后回查角色目标是否偏移
A A

一次让 ArcLoop 的 Agent 直接产出十集大纲,通常能用,但更适合当方向草稿,不太适合直接当分集脚本用。稳妥做法分两层:先用一次调用定下三幕主线和十集的集号归属,再让 Agent 每集只展开一集的冲突。一次生成十集时,模型的注意力会平均摊开,节奏重复和角色动机漂移是最常见的两类问题;拆成“三幕定骨架 + 逐集填肉”后,每次调用的输入都带着上一集结尾状态,可控性会好一些。代价是调用次数变多,需要手动维护一份跨集状态表。如果只是要一份粗略选题清单,一次生成也可以接受,但进入分集写作前建议重新过一遍三幕结构。

判断:一次生成十集大纲可以用来探方向,直接当分集稿用风险偏高。稳妥路径是先写三幕主线,把铺垫、升级、转折、结局落到具体集数,再让 Agent 一次只展开一集冲突。验证方式是逐集检查是否带来新信息、新阻力或角色变化,并对照角色卡核对目标、关系、口吻。边界:集数越多、世界观越复杂,越依赖人工维护跨集状态;单元剧或短篇可以放宽到两集一调。

先写三幕主线再拆十集位置

三幕主线先用一次调用跑出来,输出只要三样:主线冲突、每一幕的转折点、十集的集号归属。这一步不要让 Agent 写台词、场景和分镜,它只需要把“每集在整体节奏里干什么”说清楚。十集常见的分配是:第 1-2 集铺垫,第 3-6 集升级,第 7-8 集转折,第 9-10 集结局,具体集数按你的篇幅调整。

集数三幕位置本集功能结尾必须留下的状态
1铺垫建立主角处境与缺失一个打破日常的信号
2铺垫抛出诱因,主角被卷入无法回避的选择
3升级首次交手,暴露能力边界对手比预想更强
4升级关系推进,同伴或对手立场变化新信息指向更大背景
5升级(中点)局势反转,主角由被动转主动行动开始产生代价
6升级压力加码,资源或信任被削弱内部出现裂痕
7转折最低点,主角判断失误或失去依靠关键真相浮出
8转折重新整合,收束支线决战条件成型
9结局正面对决,主线冲突碰撞旧秩序被打破
10结局给出结果与角色新状态留一处开放余味

验证方式很直接:看“本集功能”这一列有没有重复项。如果第 4 集和第 6 集都在“主角受挫”,把它们合并或把其中一集改成关系推进,别让两集承担同一个功能。

只让 Agent 一次展开一集冲突

三幕表定下来后,把调用粒度收到“一集一次冲突”。每次调用只传三个字段:上一集结尾状态、本集目标、本集禁止重复的桥段。可以用下面这段提示词骨架,方括号里的内容按你的设定替换。

【本集任务】只写第 5 集的冲突,不要写其他集,不要提前解决主线。
【上一集结尾状态】粘贴第 4 集结尾:人物位置、关系变化、已知信息、未解决的问题。
【本集目标】例:主角被迫接受委托,并在本集内第一次见到对手。
【必须发生的状态改变】例:主角从“拒绝”变为“接单”。
【禁止出现】例:不要提前揭示对手身份;不要重复第 3 集的追逐桥段。
【输出格式】冲突起因 / 升级动作 / 本集结尾 / 留给下一集的状态

每次输出里的“留给下一集的状态”原样存进状态表,作为下一集调用的输入。十集跑完后,用第 10 集的状态去对三幕表里的结局,如果不一致,先改状态表再重跑该集,不要整篇重新生成。适用场景:长篇或世界观复杂的漫剧;纯单元剧可以把两集合并成一次调用。风险边界:状态表越长,越要在每次调用前裁剪,只保留与当前集相关的字段,否则模型会把无关信息也当成约束。

检查每集是否提供新信息或新阻力

逐集扩写完成后,用三个维度过滤,任何一集三项全空,说明它在原地打转,需要重写或与相邻集合并。

ArcLoop 的 Agent 一次给十集大纲能用吗——先按三幕拆再逐集扩写
  • 新信息:读者此前不知道的事实、规则或人物关系。
  • 新阻力:新的对手、限制或代价,并且能改变主角下一步的选择。
  • 角色变化:立场、能力、关系或认知出现可观察的改变。

把检查点写成一行一集的清单,贴在大纲文件顶部,写完就填:

E01 新信息:世界规则   | 新阻力:无        | 变化:主角被卷入
E02 新信息:委托背景   | 新阻力:时限      | 变化:无
E03 新信息:无         | 新阻力:对手封锁  | 变化:同伴立场松动

也可以用一个简单脚本粗筛,把每集的检查点存成 JSON,统计命中的项数。下面这段只做统计,不做质量判断,字段名按你的清单改。

import json
eps = json.load(open('episodes.json', encoding='utf-8'))
for ep in eps:
    hits = sum(bool(ep.get(k)) for k in ('new_info', 'new_resistance', 'character_change'))
    if hits == 0:
        print(ep['no'], '原地打转,需重写或合并')

验证方式:把标出的集数回填到三幕表,看它的“本集功能”是否已被相邻集覆盖。被覆盖的删掉或合并,覆盖不了的说明这一集确实承担了独立功能,只是检查点没写全。

合并十集后回查角色目标是否偏移

多集生成后最常见的问题是动机漂移:第 2 集主角为了救人行动,第 7 集却为了利益行动,中间没有交代。处理办法是先保一份角色卡,十集大纲改完后逐集对照。角色卡不用长,控制在几行以内,方便每次调用时带上。

name: 主角
main_goal: 找回失散的家人          # 全集不变
scene_goal: 第 N 集内的小目标        # 每集可变
relations:
  - 老陈:债主 -> 同伴(第 4 集触发)
voice: 短句,回避正面承诺
appearance: 左手有旧伤,紧张时会摸手腕

回查时逐集读主角的台词与行动,问三件事:这一集的小目标是否服务于角色卡的主线目标;关系变化是否在本集有触发事件;口吻是否与角色卡一致。不一致的集数,先判断是角色卡该更新(角色确实成长了),还是这一集写偏了。如果是成长,把角色卡按集数分段记录,避免后面的集数又退回旧动机。需要结合环境确认的是:角色卡放在系统提示、还是每次随用户消息一起传,取决于你用的调用方式,两种都可以先试,看哪种在长对话里不容易被丢掉。