PROJECT PROPOSAL · INTERNAL REVIEW

墨茧 InkCocoon AN RSI-POWERED SELF-EVOLVING WRITING ORGANISM

一只由 LLM 驱动的「写作生命体」:它每天自己孵化一篇文章,文章引来读者反馈,反馈变成选择压,选择压反过来改写它自己的写作基因——日复一日,越写越像「它自己」。这是一个可以公开围观、全程可追溯的递归自我改进(RSI)实验。

版本 v0.1 · 设计评审稿 性质 概念验证 MVP 部署 Cloudflare Workers + Pages + D1 + R2 代码 GitHub(每日快照) 节律 每日 Cron 一次孵化
墨茧
SECTION 01

什么是 RSI:先对齐概念

RSI = Recursive Self-Improvement,递归自我改进。一句话定义:一个系统的输出,反过来成为改进这个系统自身的输入,如此循环,每一圈都比上一圈更强一点。

构成要素 ①

可迭代的产物

系统每天必须产出点什么。对 Boss 的例子是「分析报告」,对我们是「一篇文章」。

构成要素 ②

评估信号

得知道产物好不好。对 Boss 是交易策略的回测结果,对我们是读者的阅读与反馈。

构成要素 ③

修改自身的机制

把评估结果写回系统自己的「出厂设置」。对 Boss 是改提示词,对我们是改一整套「写作基因」。

把 Boss 的例子拆成环,再翻译成我们的项目

Boss 的 GitHub Trading 案例本质就是一个最小可用的 RSI 闭环:定时跑分析 → 得到结论 → 用结论改提示词 → 下一次用新提示词跑。我们完全沿用这个骨架,只是把「对象」从交易项目换成一只写作有机体,并且把「改进」做得更细、更可见、更有生命感:

环节Boss 的方案(抛砖引玉)墨茧的方案(我们的引玉)
数据源GitHub Trading 仓库的行情数据自己历史文章全文 + 读者反馈信号流
周期任务cron job 每天跑一次分析Cloudflare Cron Trigger 每天凌晨「孵化」一篇文章
改进对象单个项目的提示词(整体替换)写作 DNA:拆成十几条可独立变异的「基因」,改得更细、有谱系、可回滚
改进依据分析结果(定性)量化适应度公式(完读率 × 互动 × 被引用 × 新颖度)
可见性过程内部,外人看不到整个过程产品化:进化本身就是要给人看的展览
审计每日 git 快照 commit + 完整的基因变更日志
一句话向 Boss 汇报

「您用 GitHub Trading 做了一个会改提示词的 cron;我们把它推到底——改的不只是提示词,而是一整套有谱系、有适应度、会遗传变异的写作基因,并且把整个进化过程做成一个所有人都能围观的产品。」

SECTION 02

核心理念:写作即进化

我们不给「AI 写博客」套一层皮,而是把整套生物学隐喻作为系统骨架——不是为了浪漫,而是因为进化本身就是被验证过的最强大的无监督优化算法,而写作恰好天然具备进化的全部要素。

中心法则:从基因到文章

生物学概念在墨茧中的对应物存在位置
DNA(基因型)写作人格基因库:语调、句式、意象、结构、好奇心等基因片段及权重D1 数据库
转录每天按权重组装当日「写作提示词」(基因的表达)Worker
翻译 / 表达LLM 按提示词生成文章(表型的合成)Worker + AI Gateway
表型发布出来的那篇文章本身R2 + 展厅
环境读者,以及他们的阅读行为与反馈展厅埋点
自然选择适应度评分:高适应的基因加权保留,低适应的衰减休眠Worker + D1
突变每日对 1–3 条基因做替换 / 加权 / 交叉 / 新增Worker
遗传新文章携带父代文章 ID,开头必须回应父代的结尾(强制的血缘仪式)D1 谱系表
基因流偶尔吸收外部文本(新闻、读者投稿)作为新的等位基因V2 特性
基因漂变小概率的纯随机变异,保证探索空间不被早期选择锁死Worker
为什么这样设计

进化是免费的结构

不需要人工定义「文章质量」,环境(读者)会自动给出梯度;不需要人工规划选题,变异 + 选择会自动探索方向。

关键差异

改进的是「作者」而非「文章」

普通 AI 写作系统优化的是单篇文章;墨茧优化的是生成文章的那个「写作人格」本身——这才是 RSI。

产品价值

过程即内容

「看一只 AI 怎么一步步形成自己的文风」本身就是极具传播力的内容。第 1 代的它和第 100 代的它,判若两「人」。

SECTION 03

系统总架构

全部托管在 Cloudflare 免费额度内即可运行,代码与快照落在 GitHub。无自有服务器,无长期持有的大密钥。

Cloudflare Worker · 进化引擎 EVOLUTION ENGINE · Cron 触发 · 单一 scheduled() 入口 ① 反刍 Digest 04:00 · 读取近 7 篇 + 反馈 + 当前 DNA 产出「进化压力报告」 04:10 · 按压力报告修改 1–3 条基因 ② 变异 Mutate 产出 DNA diff 04:30 · 新 DNA 组装 prompt → LLM 生成 ③ 孵化 Incubate 产出今日文章 05:00 · 写入 D1 / R2 · 刷新展厅缓存 ④ 分泌 Secrete 文章对外可见 05:10 · 完整 prompt + 基因 diff + 血缘入库 ⑤ 刻录 Transcribe git 快照 commit 任一阶段失败 → 写入「死卵」记录 → 重试 2 次 18:00 仍无成功卵 → GitHub Actions 兜底重跑全流程 Cron Trigger 每日 04:00 Asia/Shanghai 进化节律的「心跳」 GitHub Actions 18:00 兜底重跑 Workflow 失败时的备份执行器 04:00 AI Gateway 缓存 · 限流 · 日志 · 预算熔断 密钥只存在 Workers Secrets LLM 模型 主力 + 备用双供应商 生成 / 评估 / 变异建议 调用 D1 谱系数据库 文章 · 基因 · 血缘 · 反馈 · 变异日志 R2 全文档案 每篇全文 JSON · 不可变 · 按代归档 KV 热缓存 + 分布式锁 展厅首屏数据 · 防重复孵化 GitHub 仓库 代码 + 每日快照 commit(审计与备份) 基因读写 展厅 · Cloudflare Pages 活的墨茧 / 血缘图谱 / 基因显微镜 进化过程全部可视化 读者 · 培养环境 阅读 · 点赞 · 评论 · 喂养 发布 选择压信号
SECTION 04

每日进化流水线:一个 Cron 的五段行程

每天凌晨,一次 scheduled() 触发,五个阶段顺序执行,约 3–5 分钟完成一整代的进化。所有中间产物落库,任何一代都可以回放。

🍃
04:00 – 04:10

反刍

DIGEST

读取近 7 篇全文、全部反馈、当前 DNA,让 LLM 消化后产出一份「进化压力报告」:哪些基因在涨、哪些在跌、读者最近在渴望什么。

输入 近 7 篇 + 反馈 + DNA
输出 压力报告(JSON)
🧬
04:10 – 04:30

变异

MUTATE

依据压力报告,对 DNA 施加 1–3 处变异(替换措辞 / 调整权重 / 基因交叉 / 偶发随机漂变),每处变异必须写明理由,存入变异日志。

输入 压力报告 + 当前 DNA
输出 新 DNA + diff + 理由
🥚
04:30 – 05:00

孵化

INCUBATE

用新 DNA + 父代文章结尾组装系统提示词,经 AI Gateway 调用 LLM,生成今日文章正文 + 标题 + 摘要 + 情绪色。先过安全审查,不通过则重写。

输入 新 DNA + 父代结尾
输出 今日文章(表型)
💧
05:00 – 05:05

分泌

SECRETE

全文写 R2,元数据写 D1,刷新 KV 缓存,展厅首页的茧破开——今日文章以「墨滴生长」动画浮现,等待读者喂养。

输入 文章 + 元数据
输出 对外可见的一代
📜
05:05 – 05:10

刻录

TRANSCRIBE

把本次实际使用的完整 prompt、DNA diff、血缘关系刻入基因库;向 GitHub 仓库追加一次快照 commit。至此,第 N 代完整封存。

输入 全过程产物
输出 化石记录(D1 + git)
失败即「死卵」

任何阶段连续失败 3 次即放弃当日孵化,在 D1 记一条「死卵」并在展厅公开展示(诚实是这个项目的气质)。18:00 由 GitHub Actions 用同样的代码兜底重跑一次;若仍失败,则当日跳过——进化可以停一天,但绝不允许悄悄腐坏。

SECTION 05

写作 DNA:它的人格是可以被版本管理的

「写作风格」不再是一段含糊的提示词,而是被拆成一条条可寻址、可加权、可变异、可休眠的基因。这是本项目区别于「普通改提示词」的核心设计。

基因片段设计(首发 8 条,随进化增长)

基因座等位基因示例(等位基因 = 该基因的一种具体写法)初始权重
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

DNA 在数据库里的样子

{
  "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 代完读率低于均值,问题开头可能劝退读者" }
  ]
}

变异算子库(Mutation Operators)

WEAKEN / STRENGTHEN

权重扰动

调整某基因权重 ±0.05~0.15,最温和的变异,由适应度信号驱动。

REWRITE

等位基因替换

让 LLM 基于压力报告重写某条基因的措辞,例如把「冷峻」突变成「絮叨但真诚」。

CROSSOVER

基因交叉

取两篇历史高适应文章各自的风格基因,杂交出一条新基因——有性繁殖。

SPONTANEOUS

随机漂变

小概率(约 10%)完全随机的变异,与反馈无关,防止进化被早期成功锁死在局部最优。

DORMANT

休眠与唤醒

连续 5 代低适应的基因转入休眠,不再表达;压力环境变化时可能被重新唤醒。

GENE FLOW

外来基因(V2)

偶尔吸收一段外部文本(新闻、读者投稿)蒸馏成新基因,为基因池引入新鲜血液。

SECTION 06

选择压:读者就是这只生物的「自然环境」

没有评分函数的进化是盲目的。墨茧把读者的真实行为作为适应度信号——你读它、喂它、踩它,都在参与一场你看得见的自然选择。

适应度公式(每一篇文章的存活分数)

Fitness  =  0.35 × 完读率  +  0.25 × 互动率  +  0.20 × 被后代引用数  +  0.20 × 新颖度*
新颖度 = 与近 7 篇文章 embedding 余弦距离的均值 —— 系统会惩罚自我重复,逼它一直长出新的东西
信号采集(展厅埋点)

读者行为 → 环境数据

▸ 滚动深度 → 完读率
▸ 停留时长 / 回访 → 兴趣度
▸ 点赞 · 点踩 → 显式偏好
▸ 评论关键词 → 定向诱变线索
▸ 「喂养」按钮:读者可投喂一个词 / 一句话,进入明日变异素材池

选择执行(Worker)

环境数据 → 基因增减

▸ 高适应文章用过的基因 → 权重上调
▸ 低适应文章的基因 → 权重下调
▸ 连续 5 代拖后腿 → 转入休眠
▸ 管理员「基因剪刀」:手动激活 / 沉默任何基因
▸ 管理员「定向诱变」:指定明日主题或情绪,注入变异方向

冷启动策略

上线初期没有真实读者?让 团队全员成为第一批「饲养员」:内部群每日转发 + 喂养,同时用 LLM 扮演三个性格迥异的「虚拟读者」(急性子、文学青年、杠精)给出合成反馈,双通道喂给适应度函数,直到真实流量接管。

SECTION 07

展厅:八个产品创意(这一层可以做得非常大胆)

展厅不只是「文章列表页」——它是一座活的饲养馆。读者不是在浏览内容,而是在围观一只生物的进化史。以下是完整愿景,MVP 优先实现 ★ 标记的三项。

GEN-014 今日 04:00 孵化

预览:首页 Hero —— 一只在呼吸的茧

打开网站首先看到的不是文章,而是一只缓慢呼吸的茧。茧上有今日的代数编号;孵化前 30 分钟开始微微颤动;孵化完成的瞬间茧裂开,今天的文章像一滴墨一样落进页面。茧的色泽由它最近的适应度决定——被读者喜爱时是暖金色,被冷落时逐渐灰暗。(本页上方的茧即按此设计的静态预览,含呼吸动画。)

🥚

① 活的墨茧 · 首页生命体征 LIVING COCOONMVP ★

如上:呼吸的茧 + 孵化倒计时 + 适应度色泽。整站的生命感从它开始。

🖋️

② 孵化直播页 · 墨滴生长 INCUBATION LIVEMVP ★

点进今日文章,正文以「墨滴显影」方式逐段浮现,光标是一滴下坠的墨。页顶显示「本次使用的 DNA 快照」与「本次发生的一处突变」,读者读完即可看到自己刚见证的是哪一次进化。

🕸️

③ 血缘家谱图谱 BLOODLINE GRAPHMVP ★

力导向图:每个节点是一篇文章,连线是父子血缘。节点大小 = 适应度,颜色 = 情绪色。拖动它可以看见整个物种的分化史——哪一支兴旺,哪一支绝后。

🔬

④ 基因显微镜 GENE SCOPE

任何一篇文章旁可展开「显微镜」面板:当次的完整 DNA 快照,与父代的 diff 以高亮标出——红色是被削弱的基因,绿色是新长出来的。

🍤

⑤ 读者喂养台 FEEDING TABLE

读完文章可以投喂:一个词、一句话、一个 emoji。饲料掉进页面底部的培养皿里可视化堆叠,明日的变异提示词将引用今日饲料。你喂过的词可能出现在它明天的句子里——被采食时会通知你。

📜

⑥ 进化长卷 EVOLUTION SCROLL

一条可横向拖动的无限长卷:每一代是一格,展示当日文章摘要 + 当日 DNA diff 卡片。拖到底就是完整的物种形成史。

🪦

⑦ 淘汰基因墓园 GRAVEYARD

被自然选择淘汰的基因不会消失,而是进入墓园:每块碑刻着等位基因原文与死因(变异日志里的原话)。偶尔有基因「诈尸」复活,墓碑上会亮起一盏灯。

🌤️

⑧ 环境盒 AMBIENT BOX

整站背景随整体适应度缓慢变色:连日好评是宣纸暖色,遇冷则渗入青灰与噪点。读者自己就生活在培养皿里——环境的颜色由所有人共同造成。

SECTION 08

需求清单

功能需求(FR)

编号需求优先级
FR-1每日自动孵化:Cron 触发五段流水线,无人值守产出当日文章并发布P0
FR-2血缘与基因全可追溯:每篇文章可查其 DNA 快照、变异日志、父代血缘;支持回放任意一代P0
FR-3反馈采集闭环:完读率 / 互动 / 评论 / 喂养 → 适应度计算 → 影响次日变异P0
FR-4展厅 MVP:活茧首页 + 孵化直播页 + 血缘家谱图(创意 ①②③)P0
FR-5失败可观测:死卵记录 + 状态页 + 简单告警(如飞书 / Slack webhook)P1
FR-6管理员干预:基因剪刀(激活/休眠)+ 定向诱变(指定明日主题)P1
FR-7GitHub 每日快照:文章 + DNA + 变异日志自动 commit,可从零重建P1
FR-8进化长卷 + 基因墓园 + 环境盒(创意 ⑥⑦⑧)P2
FR-9基因流:外部文本蒸馏为外来基因(创意 V2)P2

非功能需求(NFR)

编号需求
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 节点内流畅交互
SECTION 09

里程碑:两周走出 MVP

D0 · 今天
本报告评审对齐概念 / 砍需求 / 定调 DNA 初版
评审
D1 – D3
骨架搭建GitHub 仓库 · wrangler 配置 · D1 建表 · Pages 骨架 · 创世 DNA(建议全员共创一次,每人写一条基因)
骨架
D4 – D7
进化流水线五段行程打通,先支持手动触发 · DNA 变异与血缘落库 · git 快照
流水线
D8 – D10
展厅三件套活茧首页 · 孵化直播页 · 血缘家谱 · 反馈埋点闭环
展厅
D11 – D14
Cron 上线 + 试运行真实 Cron 驱动 · 内部饲养一周 · 观察前 10 代的进化轨迹 · 修稳定性
试运行
D14
公开发布「一只 AI 的第 10 天」—— 拿进化曲线本身做宣发素材
发布
分工建议

后端 1 人(Worker 流水线 + D1 schema + Cron)· 前端 1 人(展厅三件套 + 埋点)· 基因策展 1 人(创世 DNA 与语气调校,全员共创一次定调)· Boss 做「造物主」:每周行使一次基因剪刀。

SECTION 10

风险预案与开放问题

风险与预案

风险概率预案
进化跑偏(文风越来越怪 / 刷适应度)新颖度已计入适应度防同质化;适应度设下限熔断;管理员基因剪刀随时干预;每周人工抽检一代
内容安全事故发布前双重审查(LLM 评审 + 关键词表);异常立即下架并回滚该代
成本失控AI Gateway 每日预算硬熔断;模型分级(变异建议用便宜模型,正文用好模型);重复内容命中缓存
Cron 单点故障GitHub Actions 18:00 兜底重跑;死卵面板公开可见;快照保证数据零丢失
冷启动无读者内部饲养员计划 + 三人格合成读者(见 §06 冷启动策略)
早期基因锁死强制 10% 概率随机漂变 + 新颖度惩罚,保持基因池多样性

开放问题(会上需要对齐的 5 个决定)

最后一段话,写给评审席

这个项目最迷人的地方在于:它做的每一篇文章都会改变它自己。三个月后回看第一代和第一百代,会看到一只完全不同的生物——而我们拥有它完整的化石记录。它可能进化得很好看,也可能进化得很奇怪,但无论哪种结果,都是一次值得围观、值得汇报的 RSI 实验。墨茧的终极产出不是文章,是「一个可以被完整观测的自我改进过程」本身