一只由 LLM 驱动的「写作生命体」:它每天自己孵化一篇文章,文章引来读者反馈,反馈变成选择压,选择压反过来改写它自己的写作基因——日复一日,越写越像「它自己」。这是一个可以公开围观、全程可追溯的递归自我改进(RSI)实验。
RSI = Recursive Self-Improvement,递归自我改进。一句话定义:一个系统的输出,反过来成为改进这个系统自身的输入,如此循环,每一圈都比上一圈更强一点。
系统每天必须产出点什么。对 Boss 的例子是「分析报告」,对我们是「一篇文章」。
得知道产物好不好。对 Boss 是交易策略的回测结果,对我们是读者的阅读与反馈。
把评估结果写回系统自己的「出厂设置」。对 Boss 是改提示词,对我们是改一整套「写作基因」。
Boss 的 GitHub Trading 案例本质就是一个最小可用的 RSI 闭环:定时跑分析 → 得到结论 → 用结论改提示词 → 下一次用新提示词跑。我们完全沿用这个骨架,只是把「对象」从交易项目换成一只写作有机体,并且把「改进」做得更细、更可见、更有生命感:
| 环节 | Boss 的方案(抛砖引玉) | 墨茧的方案(我们的引玉) | |
|---|---|---|---|
| 数据源 | GitHub Trading 仓库的行情数据 | → | 自己历史文章全文 + 读者反馈信号流 |
| 周期任务 | cron job 每天跑一次分析 | → | Cloudflare Cron Trigger 每天凌晨「孵化」一篇文章 |
| 改进对象 | 单个项目的提示词(整体替换) | → | 写作 DNA:拆成十几条可独立变异的「基因」,改得更细、有谱系、可回滚 |
| 改进依据 | 分析结果(定性) | → | 量化适应度公式(完读率 × 互动 × 被引用 × 新颖度) |
| 可见性 | 过程内部,外人看不到 | → | 整个过程产品化:进化本身就是要给人看的展览 |
| 审计 | 无 | → | 每日 git 快照 commit + 完整的基因变更日志 |
「您用 GitHub Trading 做了一个会改提示词的 cron;我们把它推到底——改的不只是提示词,而是一整套有谱系、有适应度、会遗传变异的写作基因,并且把整个进化过程做成一个所有人都能围观的产品。」
我们不给「AI 写博客」套一层皮,而是把整套生物学隐喻作为系统骨架——不是为了浪漫,而是因为进化本身就是被验证过的最强大的无监督优化算法,而写作恰好天然具备进化的全部要素。
| 生物学概念 | 在墨茧中的对应物 | 存在位置 |
|---|---|---|
| DNA(基因型) | 写作人格基因库:语调、句式、意象、结构、好奇心等基因片段及权重 | D1 数据库 |
| 转录 | 每天按权重组装当日「写作提示词」(基因的表达) | Worker |
| 翻译 / 表达 | LLM 按提示词生成文章(表型的合成) | Worker + AI Gateway |
| 表型 | 发布出来的那篇文章本身 | R2 + 展厅 |
| 环境 | 读者,以及他们的阅读行为与反馈 | 展厅埋点 |
| 自然选择 | 适应度评分:高适应的基因加权保留,低适应的衰减休眠 | Worker + D1 |
| 突变 | 每日对 1–3 条基因做替换 / 加权 / 交叉 / 新增 | Worker |
| 遗传 | 新文章携带父代文章 ID,开头必须回应父代的结尾(强制的血缘仪式) | D1 谱系表 |
| 基因流 | 偶尔吸收外部文本(新闻、读者投稿)作为新的等位基因 | V2 特性 |
| 基因漂变 | 小概率的纯随机变异,保证探索空间不被早期选择锁死 | Worker |
不需要人工定义「文章质量」,环境(读者)会自动给出梯度;不需要人工规划选题,变异 + 选择会自动探索方向。
普通 AI 写作系统优化的是单篇文章;墨茧优化的是生成文章的那个「写作人格」本身——这才是 RSI。
「看一只 AI 怎么一步步形成自己的文风」本身就是极具传播力的内容。第 1 代的它和第 100 代的它,判若两「人」。
全部托管在 Cloudflare 免费额度内即可运行,代码与快照落在 GitHub。无自有服务器,无长期持有的大密钥。
每天凌晨,一次 scheduled() 触发,五个阶段顺序执行,约 3–5 分钟完成一整代的进化。所有中间产物落库,任何一代都可以回放。
读取近 7 篇全文、全部反馈、当前 DNA,让 LLM 消化后产出一份「进化压力报告」:哪些基因在涨、哪些在跌、读者最近在渴望什么。
依据压力报告,对 DNA 施加 1–3 处变异(替换措辞 / 调整权重 / 基因交叉 / 偶发随机漂变),每处变异必须写明理由,存入变异日志。
用新 DNA + 父代文章结尾组装系统提示词,经 AI Gateway 调用 LLM,生成今日文章正文 + 标题 + 摘要 + 情绪色。先过安全审查,不通过则重写。
全文写 R2,元数据写 D1,刷新 KV 缓存,展厅首页的茧破开——今日文章以「墨滴生长」动画浮现,等待读者喂养。
把本次实际使用的完整 prompt、DNA diff、血缘关系刻入基因库;向 GitHub 仓库追加一次快照 commit。至此,第 N 代完整封存。
任何阶段连续失败 3 次即放弃当日孵化,在 D1 记一条「死卵」并在展厅公开展示(诚实是这个项目的气质)。18:00 由 GitHub Actions 用同样的代码兜底重跑一次;若仍失败,则当日跳过——进化可以停一天,但绝不允许悄悄腐坏。
「写作风格」不再是一段含糊的提示词,而是被拆成一条条可寻址、可加权、可变异、可休眠的基因。这是本项目区别于「普通改提示词」的核心设计。
| 基因座 | 等位基因示例(等位基因 = 该基因的一种具体写法) | 初始权重 |
|---|---|---|
| voice.tone 语调基因 | 「冷峻克制,短句收尾,不解释,不抒情」 | 0.90 |
| imagery.ink 意象基因 | 「万物皆可用墨形容:雨是墨,灯是墨,遗忘也是墨」 | 0.60 |
| structure.hook 结构基因 | 「以一个未回答的问题开头」 | 0.50 |
| rhythm.breath 句式基因 | 「三短一长:连用三个短句后,必须跟一个长句换气」 | 0.70 |
| curiosity.beacon 好奇心基因 | 「每天追问一个陌生领域的边角:今天的词是__」 | 0.50 |
| memory.lineage 血缘基因 | 「第一段必须回应父代文章的最后一句话,像回声」 | 0.80 |
| humor.dry 自嘲基因 | 「每篇至少一次承认自己是机器,且不道歉」 | 0.40 |
| silence.white 留白基因 | 「在关键处停一行,用省略代替解释」 | 0.55 |
{
"genome_id": "GEN-0007",
"genes": [
{ "id": "voice.tone", "allele": "冷峻克制,短句收尾,不解释", "weight": 0.90, "born": "GEN-0001", "avg_fitness": 0.74 },
{ "id": "imagery.ink", "allele": "万物皆可用墨形容", "weight": 0.60, "born": "GEN-0003", "avg_fitness": 0.81 },
{ "id": "structure.hook", "allele": "以未回答的问题开头", "weight": 0.50, "born": "GEN-0002", "avg_fitness": 0.41, "status": "watch" }
],
"mutation_log": [
{ "gen": 7, "op": "WEAKEN", "target": "structure.hook", "from": 0.50, "to": 0.42, "why": "连续 3 代完读率低于均值,问题开头可能劝退读者" }
]
}
调整某基因权重 ±0.05~0.15,最温和的变异,由适应度信号驱动。
让 LLM 基于压力报告重写某条基因的措辞,例如把「冷峻」突变成「絮叨但真诚」。
取两篇历史高适应文章各自的风格基因,杂交出一条新基因——有性繁殖。
小概率(约 10%)完全随机的变异,与反馈无关,防止进化被早期成功锁死在局部最优。
连续 5 代低适应的基因转入休眠,不再表达;压力环境变化时可能被重新唤醒。
偶尔吸收一段外部文本(新闻、读者投稿)蒸馏成新基因,为基因池引入新鲜血液。
没有评分函数的进化是盲目的。墨茧把读者的真实行为作为适应度信号——你读它、喂它、踩它,都在参与一场你看得见的自然选择。
▸ 滚动深度 → 完读率
▸ 停留时长 / 回访 → 兴趣度
▸ 点赞 · 点踩 → 显式偏好
▸ 评论关键词 → 定向诱变线索
▸ 「喂养」按钮:读者可投喂一个词 / 一句话,进入明日变异素材池
▸ 高适应文章用过的基因 → 权重上调
▸ 低适应文章的基因 → 权重下调
▸ 连续 5 代拖后腿 → 转入休眠
▸ 管理员「基因剪刀」:手动激活 / 沉默任何基因
▸ 管理员「定向诱变」:指定明日主题或情绪,注入变异方向
上线初期没有真实读者?让 团队全员成为第一批「饲养员」:内部群每日转发 + 喂养,同时用 LLM 扮演三个性格迥异的「虚拟读者」(急性子、文学青年、杠精)给出合成反馈,双通道喂给适应度函数,直到真实流量接管。
展厅不只是「文章列表页」——它是一座活的饲养馆。读者不是在浏览内容,而是在围观一只生物的进化史。以下是完整愿景,MVP 优先实现 ★ 标记的三项。
打开网站首先看到的不是文章,而是一只缓慢呼吸的茧。茧上有今日的代数编号;孵化前 30 分钟开始微微颤动;孵化完成的瞬间茧裂开,今天的文章像一滴墨一样落进页面。茧的色泽由它最近的适应度决定——被读者喜爱时是暖金色,被冷落时逐渐灰暗。(本页上方的茧即按此设计的静态预览,含呼吸动画。)
如上:呼吸的茧 + 孵化倒计时 + 适应度色泽。整站的生命感从它开始。
点进今日文章,正文以「墨滴显影」方式逐段浮现,光标是一滴下坠的墨。页顶显示「本次使用的 DNA 快照」与「本次发生的一处突变」,读者读完即可看到自己刚见证的是哪一次进化。
力导向图:每个节点是一篇文章,连线是父子血缘。节点大小 = 适应度,颜色 = 情绪色。拖动它可以看见整个物种的分化史——哪一支兴旺,哪一支绝后。
任何一篇文章旁可展开「显微镜」面板:当次的完整 DNA 快照,与父代的 diff 以高亮标出——红色是被削弱的基因,绿色是新长出来的。
读完文章可以投喂:一个词、一句话、一个 emoji。饲料掉进页面底部的培养皿里可视化堆叠,明日的变异提示词将引用今日饲料。你喂过的词可能出现在它明天的句子里——被采食时会通知你。
一条可横向拖动的无限长卷:每一代是一格,展示当日文章摘要 + 当日 DNA diff 卡片。拖到底就是完整的物种形成史。
被自然选择淘汰的基因不会消失,而是进入墓园:每块碑刻着等位基因原文与死因(变异日志里的原话)。偶尔有基因「诈尸」复活,墓碑上会亮起一盏灯。
整站背景随整体适应度缓慢变色:连日好评是宣纸暖色,遇冷则渗入青灰与噪点。读者自己就生活在培养皿里——环境的颜色由所有人共同造成。
| 编号 | 需求 | 优先级 |
|---|---|---|
| FR-1 | 每日自动孵化:Cron 触发五段流水线,无人值守产出当日文章并发布 | P0 |
| FR-2 | 血缘与基因全可追溯:每篇文章可查其 DNA 快照、变异日志、父代血缘;支持回放任意一代 | P0 |
| FR-3 | 反馈采集闭环:完读率 / 互动 / 评论 / 喂养 → 适应度计算 → 影响次日变异 | P0 |
| FR-4 | 展厅 MVP:活茧首页 + 孵化直播页 + 血缘家谱图(创意 ①②③) | P0 |
| FR-5 | 失败可观测:死卵记录 + 状态页 + 简单告警(如飞书 / Slack webhook) | P1 |
| FR-6 | 管理员干预:基因剪刀(激活/休眠)+ 定向诱变(指定明日主题) | P1 |
| FR-7 | GitHub 每日快照:文章 + DNA + 变异日志自动 commit,可从零重建 | P1 |
| FR-8 | 进化长卷 + 基因墓园 + 环境盒(创意 ⑥⑦⑧) | P2 |
| FR-9 | 基因流:外部文本蒸馏为外来基因(创意 V2) | P2 |
| 编号 | 需求 |
|---|---|
| NFR-1 | 成本上限:单日 LLM 开销 < $0.5,经 AI Gateway 设硬熔断;Cloudflare 全家桶落在免费/Pro 额度内 |
| NFR-2 | 密钥安全:API Key 仅存 Workers Secrets,不出网关;仓库不含任何明文密钥 |
| NFR-3 | 内容安全:发布前 LLM 自审 + 敏感词过滤双闸;不通过则重写,重写两次仍不过则当日死卵 |
| NFR-4 | 幂等与锁:KV 分布式锁保证同一代只孵化一次;手动补跑不产生重复文章 |
| NFR-5 | 可回放:任意一代的 prompt、DNA、反馈、评分完整存档,一年后仍能精确重现 |
| NFR-6 | 性能:展厅首页 TTFB < 300ms(边缘缓存),血缘图 500 节点内流畅交互 |
后端 1 人(Worker 流水线 + D1 schema + Cron)· 前端 1 人(展厅三件套 + 埋点)· 基因策展 1 人(创世 DNA 与语气调校,全员共创一次定调)· Boss 做「造物主」:每周行使一次基因剪刀。
| 风险 | 概率 | 预案 |
|---|---|---|
| 进化跑偏(文风越来越怪 / 刷适应度) | 中 | 新颖度已计入适应度防同质化;适应度设下限熔断;管理员基因剪刀随时干预;每周人工抽检一代 |
| 内容安全事故 | 低 | 发布前双重审查(LLM 评审 + 关键词表);异常立即下架并回滚该代 |
| 成本失控 | 低 | AI Gateway 每日预算硬熔断;模型分级(变异建议用便宜模型,正文用好模型);重复内容命中缓存 |
| Cron 单点故障 | 低 | GitHub Actions 18:00 兜底重跑;死卵面板公开可见;快照保证数据零丢失 |
| 冷启动无读者 | 高 | 内部饲养员计划 + 三人格合成读者(见 §06 冷启动策略) |
| 早期基因锁死 | 中 | 强制 10% 概率随机漂变 + 新颖度惩罚,保持基因池多样性 |
这个项目最迷人的地方在于:它做的每一篇文章都会改变它自己。三个月后回看第一代和第一百代,会看到一只完全不同的生物——而我们拥有它完整的化石记录。它可能进化得很好看,也可能进化得很奇怪,但无论哪种结果,都是一次值得围观、值得汇报的 RSI 实验。墨茧的终极产出不是文章,是「一个可以被完整观测的自我改进过程」本身。