ECC 品牌语音档案实战:用 Voice Profile Schema 构建可复用的写作风格系统
在 ECC(The agent harness performance optimization system)中,内容生产链路的核心痛点之一是"每次写内容都要重新摸索作者语气"。本文以 brand-voice 技能的参考文档 voice-profile-schema.md 为主体,讲解如何用一套固定的 VOICE PROFILE 结构,从真实源材料中提炼出可跨渠道、跨任务复用的写作风格档案:包括 schema 的完整字段结构、四条填写准则、字段与 SKILL.md 中"提取维度"的一一映射,以及该档案如何被下游技能(内容引擎、跨渠道发布、线索触达等)直接消费。读完本文,你可以掌握在 Agent 工作流中建立"源驱动"风格档案的完整方法,并避免通用 AI 套话污染品牌内容。
一、VOICE PROFILE Schema 的完整结构
参考文档给出了一段必须"原样使用"(Use this exact structure)的文本模板。整份档案是一个纯文本块,由一个头部区和 12 个固定小节组成:
VOICE PROFILE
=============
Author:
Goal:
Confidence:
Source Set
- source 1
- source 2
- source 3
Rhythm
- short note on sentence length, pacing, and fragmentation
Compression
- how dense or explanatory the writing is
Capitalization
- conventional, mixed, or situational
Parentheticals
- how they are used and how they are not used
Question Use
- rare, frequent, rhetorical, direct, or mostly absent
Claim Style
- how claims are framed, supported, and sharpened
Preferred Moves
- concrete moves the author does use
Banned Moves
- specific patterns the author does not use
CTA Rules
- how, when, or whether to close with asks
Channel Notes
- X:
- LinkedIn:
- Email:
头部区:Author / Goal / Confidence
这三个字段定义了档案的"元信息":
- Author:档案描述的作者。这是"作者指纹"的锚点,让下游技能知道这段风格属于谁、在什么语境下适用。
- Goal:使用该风格要达成的目标(发布、触达、产品更新等),使风格选择服务于具体意图而非泛泛模仿。
- Confidence:对档案本身的置信度。由于档案是从有限样本归纳出来的,标注置信度可以让下游调用方在置信度低时回退到更保守的默认风格。
Source Set:源集合是全部结论的证据基
Source Set 小节要求列出支撑整份档案的真实源材料(source 1 / source 2 / source 3 …)。参考文档的准则明确要求"Keep the profile concrete and source-backed"(档案必须具体且有源材料支撑),也就是说后面每个小节里写下的节奏、断言风格等判断,都应该能从 Source Set 中的样本里找到依据。
SKILL.md 的 "Source Priority" 一节进一步规定了源材料的选取优先级:
- 近期原创 X 帖子与 thread(最强)
- 文章、随笔、备忘录、发布说明或 newsletter
- 真正奏效的出站邮件或私信
- 产品文档、changelog、README 表述和站点文案
并且明确禁止"用平台上的通用范例当源材料"(Do not use generic platform exemplars as source material)。"Collection Workflow" 还给出了实操参数:尽量收集 5 到 20 个代表性样本、优先取近期材料(除非用户明确说旧文更"正典")、如果源集明显分裂则把"公开发布语音"和"私下工作语音"分开记录。
六个风格维度字段
中间六个小节是对文风的量化描述,它们与 SKILL.md "What to Extract" 一节列出的提取维度一一对应:
| Schema 字段 | 要记录什么 | 对应 SKILL.md 提取项 |
|---|---|---|
| Rhythm | 句长、节奏、破碎度(fragmentation) | rhythm and sentence length |
| Compression | 写作是"高密度压缩"还是"展开解释" | compression vs explanation |
| Capitalization | 常规大写 / 混合 / 视情况而定 | capitalization norms |
| Parentheticals | 括号插入语怎么用、以及不用的方式 | parenthetical use |
| Question Use | 罕见 / 频繁 / 反问式 / 直问 / 基本不出现 | question frequency and purpose |
| Claim Style | 断言如何被构造、支撑和"磨尖" | how sharply claims are made |
注意 Schema 的刻意设计:每个字段的提示语都包含"否定面"。例如 Parentheticals 要求同时写清 "how they are used and how they are not used",Banned Moves 整个小节专门记录"作者从不做什么"。这与 SKILL.md 提取维度里的 "what the author never does" 相呼应——一份可操作风格档案的价值,一半来自"允许做什么",另一半来自"禁止做什么"。
动作清单:Preferred Moves 与 Banned Moves
- Preferred Moves:记录作者"确实会用的具体手法"(concrete moves the author does use),例如"先给机制再给结论""数字先行"。
- Banned Moves:记录作者"确实不用的具体模式"。参考文档准则强调:每一条 Banned Move 必须是在源集合中可观测到的(observable in the source set),或者由用户明确要求的——不允许凭主观臆断往禁写清单里塞条目。
SKILL.md 的 "Hard Bans" 小节给出了 ECC 语境的默认禁写项,可作为 Banned Moves 的起点模板:
- 假装的悬念钩子(fake curiosity hooks)
- "not X, just Y" 句式
- "no fluff" 这类空话
- 强制小写风格
- LinkedIn 式"思想领袖"节奏
- 钓鱼式提问(bait questions)
- "Excited to share" 开场
- 泛泛的创始人旅程填充
- 油腻的括号插入语(corny parentheticals)
此外,SKILL.md 还为 "Affaan / ECC" 声音提供了缺省默认值(当用户要 ECC 声音且活体样本不足时直接启用):直接、压缩、具体;"细节、机制、凭据、数字胜过形容词";括号插入语只用于限定、收窄或过度澄清;大写遵循常规,除非有真实理由打破;问题罕见且不能用作诱饵;语气可以锋利、直率、怀疑或干涩;过渡要"挣来的"而非抹平的。这份默认值本身就是一份压缩版的 Preferred / Banned 清单。
CTA Rules 与 Channel Notes:让档案落地到渠道
- CTA Rules:记录"如何、何时、以及是否"在结尾提出请求(asks)。有的作者从不硬收口,有的只在产品更新末尾轻点一次——这属于必须显式记录的规则,而不是交给生成方自由发挥。
- Channel Notes:按 X / LinkedIn / Email 三个渠道分别记录适配差异。这体现了品牌语音的核心诉求:同一作者,跨渠道语气应有一致骨架但允许渠道级调整。
二、四条填写准则(Guidelines)逐条解读
参考文档末尾的四条 Guidelines 是保证档案"可操作"的关键约束:
-
Keep the profile concrete and source-backed. 档案必须具体、有源材料背书。禁止出现"风格偏轻松专业"这类无法验证的评语,应写成"平均 8 词一句,允许完整无谓语的短句,出自 source 2 的 3 个样本"。
-
Use short bullets, not essay paragraphs. 每个小节用短条目而非散文段落。这条准则服务于下游消费:VOICE PROFILE 会被塞进 Agent 的会话上下文,散文式的长段落会浪费 token 且不易被精确引用。
-
Every banned move should be observable in the source set or explicitly requested by the user. 禁写清单必须有证据或明确的用户指令。这一条防止档案把"生成方自己的偏好"混入"作者的风格"。
-
If the source set conflicts, call out the split instead of averaging it into mush. 当源集自相矛盾时(比如 X 上锋利、邮件里克制),要显式指出分裂(call out the split),而不是把两边平均成一团浆糊。SKILL.md 的收集工作流也要求"如果源集明显分裂,区分 public launch voice 与 private working voice"——两者是配套设计:收集阶段分渠道取样,档案阶段用 Channel Notes 或显式备注保留分裂。
三、档案如何被下游技能消费
VOICE PROFILE 不是文档终点,而是 ECC 内容生产链路的中间产物。SKILL.md 的 "Output Contract" 明确:产出"一个可被下游技能直接消费的 VOICE PROFILE 块",并保持"结构化、短到足以复用于会话上下文"——"重点不是文学批评,重点是操作复用"(The point is not literary criticism. The point is operational reuse.)。
从源码结构看,仓库中至少六个技能显式声明对 VOICE PROFILE 的依赖:
- content-engine:明确要求"在此复用生成的 VOICE PROFILE,而不是重建第二套声音模型"(Reuse the resulting
VOICE PROFILEhere instead of rebuilding a second voice model); - crosspost:跨渠道发布时"直接复用生成的 VOICE PROFILE";
- lead-intelligence:凡是用户的声音重要,就"先跑 brand-voice,复用它的 VOICE PROFILE,而不是在本技能内临时即兴推导风格";
- investor-outreach 与 article-writing:同样遵循"先 brand-voice 后消费"的顺序,且 article-writing 把"声音符合给定样例或已约定的 VOICE PROFILE"列为完成标准之一;
- x-api:在拉取近期原创帖之后"构建或复用一份 VOICE PROFILE"。
SKILL.md 还规定了持久化规则(Persistence Rules):同一会话内跨相关任务复用最近一次确认过的 VOICE PROFILE;用户要求持久化产物时保存到其指定的工作区位置或记忆面;除非用户明确要求,不要创建入库(repo-tracked)文件来存储个人声音指纹。这一条对使用 ECC 的仓库尤其重要:风格档案属于个人数据,不应默认进入版本控制。同时 SKILL.md 声明,如果其他技能已有"部分声音捕获"小节,brand-voice 是唯一的规范事实源(canonical source of truth)。
四、实操要点:从源材料到可复用档案
综合参考文档与 SKILL.md,构建一份合格档案的标准流程是:
- 按优先级选源:近期 X 原创帖 > 文章/发布说明 > 奏效的出站邮件 > 产品文档与站点文案;禁用平台通用范例。
- 取样:5–20 个代表性样本,偏近期;可用
x-api技能拉取近期原创帖;如站点文案重要,把当前 ECC 落地页与仓库/插件表述纳入。 - 按 Schema 逐字段填写:先写头部三字段与 Source Set,再依次填 Rhythm、Compression、Capitalization、Parentheticals、Question Use、Claim Style,然后写 Preferred / Banned Moves、CTA Rules,最后填 Channel Notes。
- 套用四条准则自检:每条结论是否有源?是否短条目?Banned 条目是否可观测?源集冲突是否显式标注而非平均化?
- 交给下游复用:在 content-engine、crosspost、lead-intelligence、article-writing 等技能中直接引用这份档案;同会话内只维护一份"最近确认"的档案版本。
这套设计的本质是:把"风格模仿"从每次生成的隐式行为,变成一份有证据链、有禁写清单、有渠道适配的显式数据资产。Schema 本身只有 55 行,但它通过"固定结构 + 证据约束 + 否定面描述"三板斧,让 Agent 在跨渠道写作时不再回到通用 AI 套话的默认轨道上。
参考资料(仓库内路径)
- 档案 Schema 正文:voice-profile-schema.md
- 技能主文档(触发条件、源优先级、提取维度、Hard Bans、持久化与下游消费):SKILL.md
- 下游消费方:content-engine、crosspost、lead-intelligence、investor-outreach、article-writing、x-api
- 技能入口元数据(显示名、默认提示词、隐式调用策略):openai.yaml
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00