核心主张:一个想法进去,两边文章出来
从一个模糊的选题意图,到微信公众号排版就绪 + 个人网站 MDX 部署上线,全程不切换任何工具。
你需要的不是"AI 帮你写套话",而是"AI 用你的风格把文章发布到两边"。生成只是手段,发布才是交付。
> 写一篇关于认知偏差在投资中的应用,轻辩风格
Agent: 匹配风格 → 骨架生成 → 渲染全文 → 展示
[全文确认] > 第三段加个具体案例
Agent: 保持上下文一致,执行局部重绘...
[全文确认] > OK
Agent: 微信富文本已注入剪贴板(打开微信后台 Ctrl+V 即排版完成)
个人网站 MDX 草稿已写入,确认后说「发布」
[发布确认] > 发布
Agent: git push origin main → 边缘网络自动部署上线
done. https://khlilo.xyz/signal/cognitive-bias-investing
为什么普通 GPT 提示词写不出好文章?
几乎所有通用 AI 写作工具都受制于两个核心瓶颈:
- 单次长文本的逻辑坍缩:一次性让模型写 2000 字,后半段往往充满重复车轱辘话与套话。
- 风格硬塞导致上下文污染:把 3000 字范文直接塞进 Prompt,模型抓不住精髓,甚至产生规则冲突。
Cognitive Writer 采用 骨架-渲染(CoT)双通道架构 与 10 维度风格执行 Spec:
Pass 1 (骨架) Pass 2 (渲染)
素材 / 选题 ─────────┬─→ outline_system_prompt ─→ 骨架(300-500字) ─┐
│ (注入风格 Spec 约束结构) ├─→ style_system_prompt ─→ 全文 Markdown ─┬─→ outputs/{slug}_v{N}.md
styles/{name}.md ────┘ │ + render_prompt ├─→ outputs/{slug}_v{N}.html
(≤600字精简指令) ───────────────────────────────────────────────────┘ ├─→ 系统剪贴板 (微信 CF_HTML)
└─→ 个人网站 MDX (Git Push)
- Pass 1 骨架生成:LLM 提取核心论点、素材走向与段落衔接,让结构贴合风格。
- Pass 2 正文渲染:外包通用事实边界与禁止词约束,按骨架展开高信息密度正文。
核心设计特性
1. 自然语言对话状态机(FSM)
不再需要记忆 CLI 参数与子命令。基于 repl.rs 的 4 状态有限状态机(Idle ↔ WaitingForOutline ↔ WaitingForFulltext ↔ WaitingForPublish),配合 LLM 意图解析器,能够精准识别用户的口语化意图("整一篇"、"拉倒"、"第三段改短"、"换轻辩风格")。
2. 10 维度风格逆向提取(learn)
输入任意文章 URL,通过 Jina Reader 抓取正文,LLM 自动逆向解析(整体定位、标题策略、开头模式、段落节奏、句式特征、论证手法、情绪基调、结尾策略、用词偏好、互动方式),提炼为 ≤600 字的可执行规则 Spec。
3. 双检查点与渐进式反悔
- 检查点 1(全文确认):支持局部重绘(Refine,只修改单段)、换风格整文重写(Update)或放弃。
- 检查点 2(发布确认):微信富文本已注入系统剪贴板,支持「发布」(推送到网站)、「只发网站」或「暂存」。
4. Tokio 异步事件循环与会话持久化
基于 tokio::select! 实现非阻塞输入与信号监听。按 Ctrl+C 自动序列化会话至 ~/.cognitive-writer/current.json,随时中断、随时恢复,杜绝工作丢失。
工业级工程实践
- 145+ 单元测试:保证意图解析、MDX 生成、拼音归一化匹配零回归。
- 跨平台剪贴板注入:WSL2 下使用 PowerShell MemoryStream 绕过 .NET 编码问题,原生支持微信富文本。
- 轻量解耦:代码从早期的单文件上帝函数拆分为 14 个职责单一的模块。