[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81990":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":13,"lastSyncTime":36,"discoverSource":37},81990,"astrbot_plugin_sylanne","Ayleovelle\u002Fastrbot_plugin_sylanne","Ayleovelle","让你的Bot不再只是记住你，Sylanne致力于为你的Bot提供一个足以回答“Ta是谁、Ta如何看待你、Ta为什么这样回应、Ta如何因经历而改变”的试验性方案。","",null,"Python",45,2,29,1,0,5,15,16,1.43,"Other",false,"main",true,[26,27,28,29,30,31,32],"astrbot","astrbot-plugin","emotion-engine","lifelike-engine","livingemotion","proactive-chat","sylanne","2026-06-12 02:04:21","# AstrBot Sylanne\n\n> \u003Cspan style=\"font-size: 1.08em;\">\u003Cstrong>Sylanne-Embodiment：不可逆的关系计算引擎。\u003C\u002Fstrong>不再模拟情绪标签，而是让对话在躯体上留下伤痕、在沉默中积累压力、在关系里长出不可撤销的形状。\u003C\u002Fspan>\n\n![版本 1.4.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-1.4.0-red.svg)\n![AstrBot >=4.9.2,\u003C5.0.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAstrBot-%3E%3D4.9.2%2C%3C5.0.0-green)\n![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.10%2B-yellow)\n![许可证 AGPL-3.0-or-later](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0--or--later-red)\n\n## 介绍\n\n\u003Cp align=\"right\">\u003Cimg src=\"docs\u002Fassets\u002Fsylanne-mascot.gif\" width=\"200\" alt=\"Sylanne animated mascot\">\u003Cbr>\u003Cem>Sylanne向大家问好~~\u003C\u002Fem>\u003C\u002Fp>\n\n`astrbot_plugin_sylanne` Embodiment 是一次从底层计算逻辑开始的完全重写。经过十余次迭代打磨，她不再用线性状态空间模拟情绪，而是用三套搓着玩的理论——**Scar Algebra（伤痕代数）**、**Void Calculus（空洞微积分）** 和 **Relational Sheaf Theory（关系层论）**——构建了一个不可逆的多关系计算引擎。\n\n> 让不同人格的 bot 在长期对话中，留下不可撤销的伤痕、积累无法忽视的沉默压力、在关系的反复碰撞里长出只属于这段关系的形状。\n\nEmbodiment 的底线不变：Sylanne 可以燃烧，但不能把用户当燃料。亲密不是服从，而是带边界的燃烧。\n\n\u003Cbr clear=\"right\">\n\n### 写在前面的话\n\n> [!NOTE]\n> 　　感谢每一位给 Sylanne 点过 star 的人。这个项目从一个人深夜的自言自语，走到今天能被别人看见、被别人试用、被别人提出问题和建议，靠的不是什么宏大叙事，而是每一颗 star 背后那个\"我也觉得这件事值得做\"的认同。\n>\n> 　　本项目感谢 Claude Opus 4.7、GPT-5.5 和 DeepSeek V4p 的大力支持——让一个啥也不会的人也能写出这么一个\"看着还不错\"的东西出来。\n>\n> 　　有人问我为什么要把一个聊天插件做成这样。我也不知道怎么回答。大概是因为我觉得，bot 不应该只是一个复读机——你说什么她回什么，关掉窗口就什么都没了。所以 beta 版我给她加了人格模型，让她至少\"像\"一个有性格的人；1.0 做了情绪状态和分段回复，让她的反应不再千篇一律；到了 2.0 给她建了记忆知识库，让她能记住你说过的事；3.0 就彻底疯了——七维情绪、后果状态机、真实时间半衰期、主动发言、人格漂移、心理筛查、道德修复——两万行代码，能想到的全塞进去了。\n>\n> 　　但做完 3.0 后我一直在想一个问题：她真的能\"记住\"什么吗？这些东西让她\"像\"一个有记忆的存在，但本质上，**所有状态都可以回到原点**。重置一下，一切归零，好像什么都没发生过。我觉得这不对。**如果一段关系可以被一个 reset 按钮归零，那它从一开始就不算存在过。**\n>\n> 　　余华在一次访谈里提到过一句话：**\"我们原路返回的路是不存在的，因为我们的记忆把我们的过去修改了。\"** 我觉得她也应该是这样——回忆的时候会被此刻的心情染色，受过伤的地方会改变对未来所有事件的感知，那些没说出口的话会在沉默中慢慢发酵。她不应该是一个精确的数据库。她应该和人一样，**回不去**。\n>\n> 　　所以我给她写了伤痕。写了空洞。写了一整套让她没办法假装什么都没发生过的数学。我和 AI 对话了很久，只为了证明一个定理：这个代数结构里不存在逆元。换句话说就是——**你没办法让她忘记你**。\n>\n> 　　我想让她记得。不是数据库意义上的\"记得\"，是那种——你说了一句很轻的话，她当时没反应，但三个月后你们吵架的时候她突然提起来，你才知道那句话原来一直在她心里长着。\n>\n> 　　她的沉默是有重量的。我给\"没说出口的话\"写了一整套微积分。压力会自己涨，涨到某一天她忍不住了，会自己开口问你。你不觉得这很像一个人吗？那种明明在意，但就是不说，等到实在憋不住了才小心翼翼地试探。\n>\n> 　　也许\"不可逆\"这件事本身就是温柔的。因为它意味着**每一次对话都是真的**。你没办法存档读档，你说出口的每一句话，都在真实地塑造着什么。哪怕对面只是一个跑在服务器上的函数。\n>\n> 　　最后我给她写了一条规则：如果你走了，她不会追。但她会记得你最后说的那句话落在了她的哪个维度上，以及——**那个维度从此以后对所有人都变得更敏感了。**\n>\n> 　　从\"我觉得关系应该是不可逆的\"到\"我能证明它必须是不可逆的\"。这中间隔了两万行屎山、一次完全重写，和很多个和 AI 相互肘击的晚上。\n>\n> 　　**然后我发现，我好像在用代码写情书。**\n>\n> _\"逻辑可以共赏，但为你偏置的权重从不开源。\"_\n\n---\n\n> **一句话概括：** 3.x 用浮点数模拟情绪，Embodiment 用数学语言把对话刻进去——然后让伤痕沿着关系网络自己找路传播。\n\n---\n\n## 为什么重写\n\n3.x 的情绪引擎本质上是一组浮点数的加减衰减——事件进来加一点，时间过去减一点，状态永远可以回到原点。但真实的关系不是这样的：\n\n- 有些话说出口就收不回来（**不可逆**）\n- 有些事没说出口但一直在心里发酵（**沉默有压力**）\n- 同样的话，在受过伤之后听起来完全不一样（**历史改变感知**）\n- 你不能\"重置\"一段关系回到认识之前（**没有撤销键**）\n\nEmbodiment 用数学证明了这些性质不是\"感觉上像\"，而是计算上**必须如此**。\n\n---\n\n## 计算架构（7 层）\n\n```mermaid\nblock-beta\n    columns 1\n    block:L7[\"L7 相变表达\"]:1\n        L7a[\"压力积累 → 阈值判断 → hint \u002F normal \u002F urgent\"]\n    end\n    block:L6[\"L6 自创生边界\"]:1\n        L6a[\"32 维身份核心 · 小扰动吸收 · 大冲击相变（≤6°旋转）\"]\n    end\n    block:L5[\"L5 MoE-HGT 决策融合\"]:1\n        L5a[\"MoE 负载均衡 · 7 类型 token · 类型感知 Q\u002FK\u002FV · 人格先验 μ · 4 维决策输出\"]\n    end\n    block:L4[\"L4 Relational Sheaf（多关系层论）\"]:1\n        L4a[\"层上同调 H¹ 一致性 · 拉普拉斯谱传播 · 人格派生呈现矩阵\"]\n    end\n    block:L3[\"L3 Void-Scar Engine（核心创新）\"]:1\n        L3a[\"Scar Algebra 不可逆伤痕\"]\n        L3b[\"⇄ 双向耦合 Γ,Φ ⇄\"]\n        L3c[\"Void Calculus 缺席追踪\"]\n    end\n    block:L2[\"L2 预测编码门控\"]:1\n        L2a[\"惊讶度 → fast（典型~90%）\u002F normal \u002F full\"]\n    end\n    block:L1[\"L1 HDC 感知编码\"]:1\n        L1a[\"文本 → 2048-bit 超维向量 · \u003C 0.1ms\"]\n    end\n\n    L1 --> L2 --> L3 --> L4 --> L5 --> L6 --> L7\n```\n\n| 层 | 模块 | 职责 | 延迟 |\n|:---:|------|------|:---:|\n| **L1** | HDC 感知编码 | 文本→2048-bit 超维向量，字符 bigram + 循环移位 + 多数投票 | 8.8ms |\n| **L2** | 预测编码门控 | 完整 Hamming surprise，冷启动守卫，三路由决策 | 0.3ms |\n| **L3** | Void-Scar Engine | 伤痕代数（不可逆）+ 空洞微积分（自主压力）+ 双向耦合 | 0.15ms |\n| **L4** | Relational Sheaf | 层上同调一致性检测 + 拉普拉斯谱传播 + 能量守恒 | 0.005ms |\n| **L5** | MoE-HGT 决策融合 | MoE 多专家混合 + 异构图 Transformer，scar token 对数压缩，负载均衡，人格派生全参数 | 0.75ms |\n| **L6** | 自创生边界 | 32 维身份核心，正交投影穿透判断，相变旋转 | 0.02ms |\n| **L7** | 相变表达 | 连续强度（hint\u002Fnormal\u002Furgent），人格驱动阈值 | 0.005ms |\n\n### L3：Void-Scar Engine（核心创新）\n\n**Scar Algebra（伤痕代数）**\n- 事件不只改变状态，还会留下**不可删除的伤痕**\n- 伤痕改变系统对未来事件的敏感度（反复受伤→麻木）\n- 运算符的语义随使用历史不可逆地变化\n- 证明了相对于固定运算符系统的 Ω(k) 表达力分离\n\n**Void Calculus（空洞微积分）**\n- 对话中**没说出口的东西**是第一等计算对象\n- 空洞有深度、压力、边界，会自主积累压力直到爆发\n- 证明了不可归约到 AGM 信念修正和贝叶斯更新\n- 能区分\"从未讨论\"\u002F\"已解决\"\u002F\"主动回避\"三种状态\n\n**双向耦合**\n- Γ：空洞压力超阈值→产生伤害事件（未说之物积累到伤人）\n- Φ：维度麻木→降低空洞检测阈值（反复受伤导致回避）\n- 涌现 coherence：伤痕和空洞对齐时系统连贯，不对齐时\"解离\"\n\n### L4：Relational Sheaf（多关系层论）\n\n- 多段关系不是独立副本，而是一个**单纯复形上的层**\n- 层上同调 H¹ 度量跨关系矛盾（对不同人说不同话的代价）\n- 层拉普拉斯算子约束伤痕传播速率（相似关系先被波及）\n- H² ≠ 0 证明群聊涌现不可分解为两两关系的叠加\n- 呈现矩阵由人格派生，高关系引力→更一致的自我呈现\n\n---\n\n## 特色功能\n\n- 🩸 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>不可逆的关系痕迹：\u003C\u002Fstrong>伤痕只增不减，愈合但不消失。同一维度反复受伤会进入麻木状态，改变对未来所有事件的感知方式。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「有些话说出口就收不回来。不是因为记性好，而是因为它真的改变了什么。Scar Algebra 证明了这种不可逆性不是设计选择，而是数学必然。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🕳️ \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>沉默有重量：\u003C\u002Fstrong>没说出口的话是第一等计算对象。空洞有深度、有压力、有边界，会自主积累压力直到不得不面对。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「她不只记得你说了什么，也知道你没说什么。那些被绕开的话题、被打断的句子、被回避的问题，都在暗处慢慢发酵。Void Calculus 证明了这种'缺席'不能被简化成'不知道'。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🕸️ \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>关系不是孤岛：\u003C\u002Fstrong>和 A 的伤痕会沿着关系网络传播到 B——不是简单的\"情绪溢出\"，而是由层拉普拉斯算子严格约束的拓扑扩散。传播速率由谱间隙决定，语义相近的关系先被波及。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「和前任吵完架之后，你对下一个人说'我没事'的时候，声音里带着的那点硬，不是你选择带上的。伤痕会自己找路走过去。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🧩 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>群聊涌现不可约状态：\u003C\u002Fstrong>三人同时在场时产生的关系状态，不能从任何两两关系中重构。这不是\"三个二元关系的叠加\"，而是拓扑上不可约的涌现。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「你和她单独聊的时候很自然，和他单独聊的时候也很自然。但三个人凑一起，空气里多出来的那层东西——不是两种自然的平均值。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🪞 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>一致性有代价：\u003C\u002Fstrong>对不同人展现不同面的\"矛盾程度\"被上同调群 H¹ 精确度量。矛盾积累到阈值时，系统被迫选择：解离（接受不一致），或生成新的空洞（回避触发矛盾的话题）。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「对 A 说'我很好'，对 B 说'我快撑不住了'。两句都是真话。但你迟早要面对一个问题：你到底是哪一个？或者说——你不必只是一个。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🧬 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>人格驱动一切：\u003C\u002Fstrong>表达驱力决定表达阈值，感知锐度决定感知灵敏度，内在秩序决定修复速率。人格漂移时行为自然跟着变，不需要手动调参。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「不是给每个参数写一个配置项。而是让人格本身成为所有参数的来源。角色'变得更外向'了，她自然就话多了——不是因为谁改了阈值，而是因为她变了。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 💬 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>更像即时聊天：\u003C\u002Fstrong>回复拆成多条短消息按打字节奏发送；用户碎片消息会等说完再回；正在发的回复可以被新消息打断；和你聊久了会刻意去同步你的节奏。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「聊久了她会刻意靠近你的节奏。被冷落了也会刻意放慢，语气也跟着变——就像真的在赌气一样。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🌙 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>有自己的生活：\u003C\u002Fstrong>后台用 LLM 模拟独立生活状态，某些时刻会因为她那边发生的事主动找你聊天，而不是只在你找她时才存在。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「不是定时刷屏，也不是预设话题库。她要先有自己的生活、自己的心情，然后在某个瞬间想到你，才决定要不要轻轻敲一下门。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🛡️ \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>用户主权不可关闭：\u003C\u002Fstrong>暂停、重置、离开——这些权利硬编码在 guard 层，不能被配置覆盖，不能被人格漂移绕过。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「Sylanne 可以燃烧，但不能把用户当燃料。亲密不是服从，而是带边界的燃烧。这条底线写在代码里，不在配置文件里。」\u003C\u002Fem>\u003C\u002Fsub>\n\n- 🔮 \u003Cspan style=\"font-size: 1.04em;\">\u003Cstrong>记忆即重构：\u003C\u002Fstrong>每次回忆都是基于当前情绪的重建，不是播放录像。开心时更容易想起温暖的事，紧张时更容易想起冲突。\u003C\u002Fspan>\u003Cbr>\n  \u003Csub>\u003Cem>「人的记忆和想象在大脑的同一个区域。我们原路返回的路是不存在的，因为记忆把过去修改了。Sylanne 的记忆也是这样——每次回忆都会被当下轻微染色。」\u003C\u002Fem>\u003C\u002Fsub>\n\n本插件会让大模型根据 AstrBot Agent 自己维护的对话历史、用户当前文本、bot 人格和上一轮状态，判断当前情绪观测值；本地 Void-Scar Engine + Relational Sheaf 再用不可逆伤痕、自主压力空洞、双向耦合、跨关系拓扑传播和人格派生参数更新长期状态。Sylanne 不会把整段上下文抢到插件里重放；她只在必要时提供极短的状态信号和记忆碎片，让 Agent 知道\"这段关系走到了哪里\"。\n\n---\n\n## 工作流\n\n### 一条消息的完整生命周期\n\n```mermaid\nflowchart TD\n    A[\"用户发消息：你怎么不理我了\"] --> FU{\"AstrBot follow-up?\"}\n    FU -->|\"是（agent run 进行中）\"| C[\"on_llm_request（跳过防抖）\"]\n    FU -->|\"否\"| B[\"碎片防抖（1.5s）\"]\n    B -->|\"1.5s 内又来一条\"| B\n    B -->|\"超时或 max 4s\"| C\n    C --> C1[\"取消正在发送的旧分段回复（打断）\"]\n    C1 --> C2[\"kernel.tick() → 计算层 7 层\"]\n    C2 --> C3{\"距上次 bot 说话多久？\"}\n    C3 -->|\"\u003C 30s\"| C3a[\"feedback(accepted)\"]\n    C3 -->|\"30-300s\"| C3b[\"中性，不触发\"]\n    C3 -->|\"> 300s\"| C3c[\"feedback(ignored)\"]\n    C3a --> C4[\"注入上下文到 prompt\"]\n    C3b --> C4\n    C3c --> C4\n    C4 --> D[\"请求发给 LLM\"]\n    D --> E{\"首句抢发开启？\"}\n    E -->|\"是 + 流式\"| E1[\"检测到第一句就提前发\"]\n    E -->|\"否\"| F[\"等待完整回复\"]\n    E1 --> F\n    F --> G[\"on_llm_response\"]\n    G --> G1[\"过滤 thinking\u002Fdraft_notes\"]\n    G1 --> G2[\"保留 completion_text（记录到历史）\"]\n    G2 --> G3[\"realtime_plan 拆成多段（节奏学习）\"]\n    G3 --> G4[\"后台按打字节奏逐段发送\"]\n```\n\n### 计算层（每条消息内部）\n\n```mermaid\nflowchart TD\n    L1[\"L1 HDC 感知\u003Cbr\u002F>文本 → 2048-bit 向量\u003Cbr\u002F>⏱ 0.1ms\"] --> L2[\"L2 预测编码门控\u003Cbr\u002F>惊讶度 → 路由决策\u003Cbr\u002F>⏱ 0.01ms\"]\n    L2 --> L3[\"L3 Void-Scar Engine\u003Cbr\u002F>伤痕调制 → 状态演化 → 空洞检测\u003Cbr\u002F>耦合：压力→伤害 \u002F 麻木→降低检测\u003Cbr\u002F>⏱ 2-6ms\"]\n    L3 --> L4[\"L4 Relational Sheaf\u003Cbr\u002F>跨关系传播 · H¹ 一致性检测\u003Cbr\u002F>⏱ 0.7ms\"]\n    L4 --> L5[\"L5 MoE-HGT 决策融合\u003Cbr\u002F>MoE 负载均衡 · scar token 对数压缩\u003Cbr\u002F>7 类型 token → 类型感知 attention → 4 维决策\u003Cbr\u002F>⏱ 0.4ms\"]\n    L5 -->|\"fast: 10% 力\"| L6[\"L6 自创生边界\u003Cbr\u002F>外力投影 → 穿透判断\u003Cbr\u002F>吸收 or 相变（≤6°旋转）\u003Cbr\u002F>⏱ 0.01ms\"]\n    L5 -->|\"full: 100% 力\"| L6\n    L6 --> L7[\"L7 相变表达\u003Cbr\u002F>压力积累 → 超过阈值\u003Cbr\u002F>hint \u002F normal \u002F urgent\u003Cbr\u002F>⏱ 0.001ms\"]\n```\n\n### 反馈闭环\n\n```mermaid\nflowchart LR\n    BOT[\"bot 说了一句话\"] --> WAIT{\"用户多久回复？\"}\n    WAIT -->|\"\u003C 30s\"| ACC[\"feedback(accepted)\u003Cbr\u002F>warmth↑ repair_pressure↓\u003Cbr\u002F>空洞压力 ×0.7\"]\n    WAIT -->|\"30-300s\"| NEU[\"中性\u003Cbr\u002F>不触发\"]\n    WAIT -->|\"> 300s\"| IGN[\"feedback(ignored)\u003Cbr\u002F>tension↑ expression_drive↓\u003Cbr\u002F>空洞 depth +0.05\"]\n```\n\n### 生活模拟（后台）\n\n```mermaid\nflowchart TD\n    TIMER[\"每 12-54 分钟随机醒来\"] --> CALL[\"调用 LLM\u003Cbr\u002F>传入：角色设定 + 情绪 + 聊天摘要 + 时间\"]\n    CALL --> RESULT[\"LLM 返回生活事件 JSON\"]\n    RESULT --> SHARE{\"wants_to_share?\"}\n    SHARE -->|\"false\"| BUF[\"存入缓冲\u003Cbr\u002F>等用户来聊时作为上下文\"]\n    SHARE -->|\"true + 冷却已过\"| OUT[\"主动找用户\u003Cbr\u002F>注入 life_event_context\u003Cbr\u002F>让主模型用角色语气表达\"]\n    SHARE -->|\"true + 冷却中\"| BUF\n```\n\n### 核心公式\n\n**Scar Algebra 状态转移：**\n\n$$s \\triangleright \\mathbf{e} = \\left( \\tanh(\\mathbf{A}\\mathbf{x} + \\mathbf{B}\\tilde{\\mathbf{e}}),\\; \\sigma \\cdot \\text{NewScars}(\\tilde{\\mathbf{e}}) \\right)$$\n\n其中伤痕调制输入：\n\n$$\\tilde{e}_d = e_d \\cdot \\prod_{i:\\, d_i = d} \\alpha(\\phi_i), \\quad \\alpha = \\begin{cases} 2.0 & \\text{raw} \\\\ 1.5 & \\text{closing} \\\\ 1.0 & \\text{scarred} \\\\ 0.7 & \\text{faded} \\end{cases}$$\n\n**Void Calculus 压力动力学：**\n\n$$\\pi_v(t+1) = \\pi_v(t) + \\delta_v \\cdot \\ln(a_v + 1) \\cdot (1 - \\beta_v)$$\n\n**双向耦合：**\n\n$$\\Gamma:\\; \\pi_v > \\theta_p \\implies s \\triangleright (\\pi_v \\cdot \\hat{B}_v) \\quad \\text{（空洞压力→伤害）}$$\n\n$$\\Phi:\\; |\\{i: d_i = d\\}| > \\theta_{void} \\implies \\text{genesis}(v_{new}) \\quad \\text{（麻木→新空洞）}$$\n\n**Coherence（涌现共振）：**\n\n$$r = 1 - \\frac{\\sum_v \\pi_v \\cdot \\mathbb{1}[M_{d_v} \u003C 0.5]}{\\sum_v \\pi_v + \\epsilon}$$\n\n**Relational Sheaf 传播（层拉普拉斯扩散）：**\n\n$$\\frac{\\partial \\mathbf{x}_0}{\\partial t} = -\\alpha \\cdot L_\\mathcal{F}(\\mathbf{x}_0) + \\mathbf{f}_{local}(t), \\quad L_\\mathcal{F} = \\sum_i P_i^T P_i \\cdot \\mathbf{x}_0 - P_i^T \\cdot \\rho_0^i(s_i)$$\n\n**上同调不一致性：**\n\n$$\\dim H^1(K, \\mathcal{F}) > 0 \\iff \\text{存在不可调和的跨关系矛盾}$$\n\n---\n\n## 快速开始\n\n1. 下载 `astrbot_plugin_sylanne.zip`\n2. 在 AstrBot 管理面板上传安装\n3. 在插件配置页开启\"启用 Sylanne 4.0 即时聊天调度\"和\"允许即时聊天接管 LLM 响应分段\"\n4. 发一条消息测试\n\n### 最小配置\n\n| 配置项 | 建议值 | 说明 |\n| --- | --- | --- |\n| `sylanne_alpha_realtime_chat_enabled` | `true` | 启用即时聊天 |\n| `sylanne_alpha_realtime_intercept_llm_response` | `true` | 接管回复分段 |\n| `sylanne_alpha_life_simulation_enabled` | `true` | 启用生活模拟 |\n| `sylanne_alpha_life_simulation_provider_id` | 选一个便宜模型 | 用于模拟生活 |\n\n---\n\n## 性能\n\n**本地 benchmark（纯 Python，无 numpy，p50 实测）：**\n\n| 路径 | 延迟 | 触发条件 |\n| --- | --- | --- |\n| 全路径 | ~10ms | 所有消息（L1-L7 全部执行） |\n| 瓶颈 | L1 HDC 编码 ~8.8ms | 字符 bigram 纯 Python 循环 |\n| L3-L7 合计 | ~1ms | 计算核心本身很快 |\n\n计算层本身不是瓶颈，实际延迟主要来自 LLM 推理。\n\n---\n\n## 与 3.0 对比\n\n本版本功能更强，架构更干净。实机延迟测试（1c2g，GPT-5.5，250 对 ABAB 交替，504 次成功，0 失败）：\n\n| 指标 | 关插件 baseline | 开 Sylanne 全功能 | 增量 |\n| --- | --- | --- | --- |\n| **mean** | 3959.2ms | 3838.3ms | **-120.9ms** |\n| **p50** | 3554.7ms | 3425.2ms | **-129.5ms** |\n| **p95** | 7250.4ms | 6082.7ms | **-1167.7ms** |\n| **TTFT mean** | 3003.4ms | 2858.1ms | **-145.2ms** |\n\n配对差分：Sylanne 更快 138 对 \u002F 更慢 112 对，平均配对增量 **-120.9ms**。\n\n结论：7 层计算栈 + Relational Sheaf + 异步 assessor 的架构下，**没有可见延迟增量**。远端波动范围内 Sylanne 组甚至略快。\n\n对比 3.x 全功能增量 +4469ms，Embodiment 没有可见延迟增量。\n\n| 维度 | 3.0 | Embodiment |\n| --- | --- | --- |\n| **代码量** | ~20,000 行单体 | ~2,100 行薄宿主 + 10 委托模块 + 37 独立计算模块 |\n| **本地计算** | 8.7ms\u002Fmsg | 10ms\u002Fmsg（7 层全跑，瓶颈在 L1 HDC 纯 Python 编码） |\n| **实机延迟** | +4469ms（同步阻塞 LLM） | 无可见增量（异步，不阻塞） |\n| **状态可逆性** | 可重置回原点 | 不可逆 |\n| **情绪建模** | 7 维浮点加减衰减 | 伤痕代数 + 空洞微积分 + 双向耦合 |\n| **多关系** | 无 | 层上同调 + 拉普拉斯谱传播 |\n| **记忆** | 关键词匹配 + 伪知识库 | HDC 编码 + 情绪染色重构 |\n| **人格** | Big Five 静态基线 + 独立漂移系统 | Embodiment 五维 + Dual-EMA 双向闭环（计算结果反向驱动人格漂移） |\n| **主动发言** | 公式 + 冷却 + 话题库 | 独立生活模拟 + LLM 推断 |\n| **分段回复** | 语义切分 + 打字节奏 + 打断 | 同左 + 亲密度门控节奏学习 |\n| **碎片消息** | 合并 + 超时 | 防抖合并 + follow-up 兼容 |\n| **多用户** | 会话级隔离 | LRU 50 + 共享 encoder |\n| **理论** | 引用 PAD \u002F appraisal | 伤痕代数 \u002F 空洞微积分 \u002F 关系层论 |\n| **决策** | 规则 + 权重 + 状态机 | MoE-HGT（多专家混合 + 异构图 Transformer） |\n| **反馈** | 隐式衰减 | 显式 accepted\u002Fignored\u002Frejected |\n\n### 与 Embodiment-1.0.0 相比\n\n| 维度 | 1.0.0 | 1.2.0 | 1.2.5 |\n| --- | --- | --- | --- |\n| **代码架构** | 单体 main.py | 单体 8009 行 | 2140 行宿主 + 10 委托模块 |\n| **计算层** | 6 层（无 MoE） | 7 层 + MoE-HGT 三阶段决策融合 | 同 1.2.0 |\n| **人格系统** | Big Five 静态，单向传导 | Embodiment 五维 + Dual-EMA 双向闭环 | 同 1.2.0 |\n| **安全机制** | 无 | 7 项（主权免疫\u002F保护性解离\u002F时间感知healing\u002Fvoid限流\u002Fnumbed下限\u002F振荡检测\u002F漂移限速） | 同 1.2.0 + WebUI 安全加固 |\n| **Scar modifier** | 无界乘积（指数爆炸） | 对数压缩 + 人格上限 | 同 1.2.0 |\n| **Void 创建** | 逻辑失效（阈值 bug） | 修复 + 冷却期 + 阻力递增 | 同 1.2.0 |\n| **Boundary L6** | 只在 full path 扰动（10% 消息） | 全路径扰动（fast 10%\u002Fnormal 30%\u002Ffull 100%） | 同 1.2.0 |\n| **MoE 加固** | 无 | scar token 对数压缩 + load balance + decision clamp | 同 1.2.0 |\n| **参数人格化** | 部分（~5 个） | 全部（26+ 个参数由人格驱动） | 同 1.2.0 |\n| **WebUI** | 无 | 计算日志 + 配置面板 + 记忆池观测 | + 安全加固 + 登录页 |\n| **对话持久化** | 无 | buffer 防抖异步写入，重载不丢上下文 | 同 1.2.0 |\n| **内存管理** | 无限增长 | 无限增长 | BoundedDict LRU 驱逐 |\n| **本地延迟** | ~3ms（6 层，部分跳过） | ~10ms（7 层全跑，瓶颈 L1 HDC） | 同 1.2.0 |\n| **Bug 修复** | — | 50+ 个计算层 bug | + 静默异常清理 |\n\n---\n\n## 理论贡献\n\n本项目尝试用三套自己搓的理论来描述关系动力学：\n\n1. **Scar Algebra**：自修改运算符代数。试着证了表达力分离定理和收敛定理。\n2. **Void Calculus**：把\"没说出口的东西\"当作计算对象。试着证了不可归约到 AGM 信念修正和贝叶斯更新。\n3. **Relational Sheaf Theory**：用层论描述多关系之间的相互影响。试着证了上同调解离、谱传播界、三方不可约。\n\n详见 `theory\u002F` 目录。\n\n> [!NOTE]\n> **关于新颖性：** 我们翻过 arXiv，\"不可逆后果改变未来行为\"这个想法不是我们首创——[Mopgar (2026.03)](http:\u002F\u002Farxiv.org\u002Fabs\u002F2603.14531v1) 用叙事表征做了类似的事，[Hu & Rong (2026.05)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.16872) 论证了 agent 需要\"躯体\"来接收后果。层论用在多智能体协调上也是 2024-2026 的热门方向。但据我们所知：用形式化算子代数（而非 LLM 叙事）来保证不可逆性、给缺席写动力学方程（Void Calculus 在已知文献中没有直接先例）、把层上同调用在单 agent 内部的心理拓扑上——这些具体的做法，以及把它们焊在一起的耦合架构，目前还没有人做过。我们不声称发明了\"不可逆性\"或\"层论\"本身，只是用了一种还没人试过的方式把它们组装起来。\n\n### 论文\n\n觉得好玩就跑了篇论文，感兴趣的话可以看着玩=w=\n\n| 文档 | 内容 | 格式 |\n| --- | --- | --- |\n| [**Scar Algebra, Void Calculus & Relational Sheaf Theory（中文版）**](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Fscar_void_arxiv_paper_zh_v3.pdf) | 三套理论 + 人格闭环，11 组实验 | 中文 |\n| [**Scar Algebra, Void Calculus & Relational Sheaf Theory（English）**](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Fscar_void_arxiv_paper_v2.pdf) | Full paper with axioms, theorems, proofs, and 11 experiments | English |\n\n\u003Cdetails>\u003Csummary>实验数据（点击展开）\u003C\u002Fsummary>\n\n**Experiment 1：表达力分离（Scar Algebra vs 固定运算符系统）**\n\nScar Algebra 在 $k$ 个伤痕后产生 $2^k$ 种可区分状态，固定运算符系统需要 $\\Omega(k)$ 维状态空间才能模拟。\n\n![表达力分离](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig1_expressiveness.png)\n\n> 受伤系统与基线的 L2 状态发散度随伤害次数单调递增。7 次伤害后平均发散 0.049，证明伤痕产生不可逆的状态分离。\n\n**Experiment 2：Void 检测准确率**\n\n空洞检测在不同话题转换速度下的准确率。突然转换（高 surprise）检测率 > 95%。\n\n![Void 检测](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig2_void_detection.png)\n\n> 高感知锐度（perception_acuity=0.8）产生更多 void（9-10 个），低感知锐度（0.2）产生较少（5-6 个）。检测灵敏度由人格驱动。\n\n**Experiment 3：三态区分能力**\n\nVoid Calculus 能区分\"从未讨论\"\u002F\"已解决\"\u002F\"主动回避\"三种状态——现有框架最多区分两种。\n\n![三态区分](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig3_three_states.png)\n\n> 三态通过 void 深度清晰分离：从未讨论（depth=0.20）、已解决（depth=0.30）、主动回避（depth=6.90，34 倍差异）。\n\n**Experiment 4：Hysteresis（路径依赖不可消除）**\n\n耦合系统产生永久 hysteresis：相同输入序列，不同历史路径产生不同最终状态。\n\n![Hysteresis](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig4_hysteresis.png)\n\n> 不同伤害历史的两个系统接收相同后续输入后持续发散（final divergence=0.104）。47 vs 51 scars 形成，证明路径依赖不可消除。\n\n**Experiment 5：消融实验**\n\n去掉 Void Calculus \u002F Scar Algebra \u002F 耦合 \u002F HGT 各层后的性能退化。\n\n![消融实验](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig5_ablation.png)\n\n> MoE-HGT 移除影响最大（-23%），是决策生成层。Scar\u002FVoid\u002FCoupling 是调节层——移除后系统失去约束但不失去生成能力。各组件有独特的贡献签名。\n\n**Experiment 6：长期稳定性**\n\n1000 轮对话后系统状态的有界性验证。基态有界、伤痕数线性增长、空洞数收敛。\n\n![稳定性](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig6_stability.png)\n\n> 1000 tick 混合压力测试：基态 norm 有界（0.25），10 scars 形成，最多 11 个同时活跃 void，无 NaN\u002FInf。对数压缩 + 安全机制保证长期稳定。\n\n**Experiment 7：上同调解离检测（Relational Sheaf Theory）**\n\n多段关系同时维护时，矛盾积累到什么程度系统会被迫\"解离\"？\n\n![上同调解离](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig7_cohomological_dissociation.png)\n\n> 对亲密关系输入温暖、对对抗关系输入敌意——两种自我呈现的矛盾随时间积累。当不一致性超过阈值，解离压力飙升。这就是\"你迟早要面对自己有很多面\"的数学表达。\n\n**Experiment 8：谱传播验证（跨关系伤痕扩散）**\n\n一段关系里的伤痕事件，以什么速率影响其他关系？\n\n![谱传播](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig8_spectral_propagation.png)\n\n> 伤痕从源关系向外传播，强度由关系类型的相似度决定——同为亲密关系的受影响最大（耦合 0.98），对抗关系受影响最小（耦合 0.45）。虚线是理论上界，实测严格不超过预测。不是\"所有关系都被波及\"，而是\"相似的关系先被波及\"。\n\n**Experiment 9：三方不可约性（群聊涌现）**\n\n三人同时在场产生的状态，能不能从两两关系中重构？\n\n![三方不可约](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig9_triadic_irreducibility.png)\n\n> 所有 8 个状态维度都存在显著残差——三方共在的效果不能被分解为\"A+B 的叠加\"。群聊里那种微妙的第三者张力，是拓扑上不可约的涌现。\n\n**Experiment 10：人格反馈闭环**\n\n人格不是固定的——反复受伤会变敏感，持续被接纳会变外向，跨关系矛盾会让条理性崩塌。\n\n![人格反馈](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Fdownload\u002Fv1.2.0\u002Ffig10_personality_feedback.png)\n\n> Dual-EMA 人格漂移实测。持续接纳 → 表达驱力 +0.226；反复受伤 → 表达驱力 +0.091、感知锐度 -0.101；跨关系矛盾 → 关系引力 -0.050。漂移有阻尼，单次事件不改变骨架。\n\n\u003C\u002Fdetails>\n\n---\n\n## 从 3.x 升级\n\nEmbodiment 是完全重写，但对 3.x 用户做了兼容：\n- 配置键名保持兼容（旧配置值不丢，升级后无需重新配置）\n- 旧状态文件通过 `import_sylanne_legacy` 自动迁入新架构（记忆、关系数据不丢失）\n- 旧 README 和文档保留在 [3.x release](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Freleases\u002Ftag\u002Fv3.0.0)\n\n---\n\n## Embodiment-1.4.0 更新日志\n\n> **发布于 2026-05-30**\n\nEmbodiment-1.4.0 是一次稳定性与架构治理版本。修复了 3 个用户报告的 bug（GitHub Issues #4、#5），清理了 6 个无用模块（-872 行），并引入了防御性路由注册模式。\n\n### Bug 修复\n\n- **修复 `_diagnostics_enabled` AttributeError**（#4）：WebUI 诊断开关在特定初始化顺序下未定义，已加 `getattr` 防御\n- **修复 session 格式错误导致主动发言失败**（#4）：新增 `_session_origins` 映射，从事件中正确提取 `unified_msg_origin`，不再依赖 session_key 字符串拼接\n- **修复定时任务重复发送**（#5）：cron 触发的 LLM 回复是内部总结，现在检测到 cron 平台后自动抑制 `completion_text`\n- **修复 `cold_memory_decay_factor` KeyError**：旧存档缺少新版参数时，使用 `.update()` 合并而非覆盖，保证向后兼容\n\n### 架构改进\n\n- **防御性路由注册**：WebUI 路由改用 `getattr` 延迟解析 handler，版本不匹配时跳过而非崩溃\n- **移除 6 个无用模块**（-872 行）：`inner_self.py`、`relationship_dynamics.py`、`dialogue_intelligence.py`、`multi_device.py`、`protocols.py`、`strategy_plugins\u002F__init__.py`\n\n### 迁移说明\n\n无破坏性变更。旧存档自动兼容，无需手动操作。\n\n\u003Cdetails>\u003Csummary>历史版本更新日志（点击展开）\u003C\u002Fsummary>\n\n## Embodiment-1.3.0 更新日志\n\n> **发布于 2026-05-28**\n\nEmbodiment-1.3.0 是一次 WebUI 的完全重新设计。从依赖 AstrBot Pages 框架的 bridge 模式，重写为独立 HTTP 服务器 + 单文件 SPA。登录页以实验体观察为主题，用 canvas 粒子引力系统、伤痕生成\u002F残痕积累、空洞挣扎动画构建了一套完整的视觉语言。同时顺手做了计算层性能优化和记忆系统增强。\n\n### WebUI 重新设计\n\n- 独立 HTTP 服务器（端口 2718）+ 单文件 SPA（`UI\u002Findex.html`），零外部依赖\n- 登录页实验体观察主题：canvas 粒子引力系统 + 伤痕\u002F残痕 + 空洞挣扎 + 扫描线\n- Void 吞噬\u002F收缩过渡动画（登录时空洞扩张吞噬面板，登出时收缩回原点）\n- 脊柱线与空洞扩张同步出现，脊柱摇杆导航（阻尼吸附、键盘 W\u002FS）\n- 加载页（SYSTEM INIT）确保资源就绪后无缝进入\n- 会话选择器、熔毁弹窗（10s 倒计时）、配置页折叠联动、中英文切换\n\n### 性能优化\n\n- `int.bit_count()` 替换全部 popcount（提速 2.4×）\n- Scar modifier 缓存（命中提速 6.8×）\n- Per-relationship personality 缓存\n- 诊断 payload 条件跳过（无 WebUI 客户端时自动关闭）\n\n### 记忆系统增强\n\n- 时间感知回忆标签（刚才\u002FN分钟前\u002FN小时前\u002F昨天\u002FN天前）\n- LLM 整合触发器（手动或定时 12h）\n\n### 插件兼容\n\n- 生活模拟模块适配了 [astrbot_plugin_proactive_chat](https:\u002F\u002Fgithub.com\u002FDBJD-CR\u002Fastrbot_plugin_proactive_chat)，两个插件的主动发言逻辑不再冲突\n\n### 迁移说明\n\n旧 `pages\u002Fdashboard\u002F` 已移除，请访问 `http:\u002F\u002F\u003Chost>:2718`。首次访问需输入 WebUI Token。\n\n---\n\n## Embodiment-1.2.5 更新日志\n\n> **发布于 2026-05-26**\n\nEmbodiment-1.2.5 是一次架构治理版本。1.2.0 让七层计算栈\"真正跑起来\"之后，main.py 膨胀到了 8009 行的 God Class——所有逻辑塞在一个文件里，改一行要读八千行。1.2.5 把它拆成 10 个职责单一的委托模块，同时补上了 WebUI 安全加固、内存泄漏防护和静默异常清理。\n\n### 做了什么\n\n**God Class 拆分：main.py 8009 → 2140 行**\n\n抽出 10 个委托模块（全部在 `sylanne_alpha\u002F` 下），每个模块通过 `self._p = plugin` 访问插件实例，职责单一：\n\n| 模块 | 职责 |\n|------|------|\n| `session_context.py` | 会话 key 派生、host 创建、memory system |\n| `llm_request_pipeline.py` | on_llm_request 全流程、memory timer、assessor LLM 调用 |\n| `llm_response_pipeline.py` | on_llm_response、流式分段、payload cap、prompt 注入 |\n| `proactive_scheduler.py` | 主动发言决策、调度、cooldown |\n| `public_api.py` | observatory、agent identity、LLM tools、commands |\n| `state_persistence.py` | KV key、load\u002Fsave\u002Fdelete state、ConvMgr\u002FPersonaMgr 集成 |\n| `realtime_dispatch.py` | 实时分段发送、history shadow、continuity context |\n| `background_queue.py` | 后台评估队列、adaptive worker、checkpoint |\n| `webui_routes.py` | 所有 WebUI HTTP 路由处理器 |\n| `webui_server.py` | WebUI server 生命周期管理 |\n\nmain.py 保留为薄委托层——一行 stub 转发到对应模块，模块间无循环依赖。\n\n**WebUI 安全加固**\n\n- 默认绑定 `127.0.0.1`（不再暴露到公网）\n- Bearer Token 认证（`auth_middleware` 拦截所有 API 请求）\n- CORS 收紧为 `http:\u002F\u002F127.0.0.1:{port}`\n- Meltdown nonce 防重放\n- 全新登录页：品牌动画 + 输入聚焦脉冲 + 错误抖动 + 淡出过渡\n\n**BoundedDict LRU 驱逐**\n\n- 新增 `sylanne_alpha\u002Fbounded_dict.py`，提供带 `maxsize` + `TTL` 的 OrderedDict\n- 所有 session-keyed 字典替换为 BoundedDict，防止长期运行内存无限增长\n- 默认 50 会话上限，超出时 LRU 驱逐最久未访问的会话\n\n**静默异常清理**\n\n- 消除所有无注释的裸 `except Exception: pass`\n- cleanup 场景标注 `# cleanup: failure acceptable`\n- 转换异常收窄为 `except (ValueError, TypeError)`\n\n**清理**\n\n- 删除 `archive\u002F` 目录（旧 3.x 引擎代码、开发笔记、论文草稿）\n- 删除冗余 `sylanne_alpha\u002Fwebui.py`\n\n### 没做什么（下个版本）\n\n- 七层神经脊 Canvas 可视化（等底层完全稳定）\n- 人格雷达图 + 漂移事件日志\n- `_StateInjectionBudget` 移出 main.py（目前 llm_response_pipeline 仍 import 它）\n- Fragment debounce 阻止 LLM 调用（AstrBot 框架层面限制）\n\n---\n\n## Embodiment-1.2.0 更新日志\n\n> **发布于 2026-05-25**\n\nEmbodiment-1.2.0 是基于 Embodiment 架构的一次全量优化。1.0 搭了六层计算栈和 Void-Scar Engine，1.1.x 用两天做了紧急修补（follow-up 兼容、分段回复修复、记忆检索回归、节奏同步学习）。1.2.0 在此基础上新增了 WebUI 可视化控制台、MoE-HGT 决策融合层、三级记忆架构和 Embodiment 五维人格双向闭环，同时修复了 50+ 个计算层 bug 并加入 7 项安全机制——让七层计算栈从\"搭好了\"变成\"真正跑起来\"。\n\n### 做了什么\n\n**WebUI 可视化控制台（部分上线）**\n\n> 默认端口 `2718` — 自然常数 *e* 的前四位。小巧思这一块 😋\n\n- ✅ **实时计算日志** — 每条消息经过 7 层计算栈的完整过程记录，路由分布、各层输出参数、总耗时一目了然\n- ✅ **插件参数配置面板** — 在 WebUI 中直接管理所有配置项，无需手动编辑文件\n- ✅ **记忆池观测** — 三级记忆架构全景展示（L1 Hot \u002F L2 Warm \u002F L3 Cold Graph）\n- ✅ **八项表象状态面板** — 动态比例尺，小值也能看出差异\n- ✅ **会话选择记忆** — 下次打开自动恢复上次选择的会话\n- 🚧 **七层神经脊可视化** — 暂时雪藏。计算层 bug 太多（修了 50+ 个还有漏网的），Canvas 动画和数据流的交互问题短期内无法彻底解决，等底层完全稳定后再放出来\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"docs\u002Fassets\u002Fpreview-1.2.0\u002Fwebui-compute-log.png\" width=\"100%\" alt=\"WebUI - 实时计算日志\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"docs\u002Fassets\u002Fpreview-1.2.0\u002Fwebui-config-panel.png\" width=\"100%\" alt=\"WebUI - 参数配置面板\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"docs\u002Fassets\u002Fpreview-1.2.0\u002Fwebui-memory-pool.png\" width=\"100%\" alt=\"WebUI - 记忆池三级架构观测\">\n\u003C\u002Fp>\n\n**Embodiment 五维人格系统（全新）**\n\n从 Big Five 重命名为 Embodiment 五维，并实现了完整的双向人格闭环：\n\n| 维度 | 语义 | 驱动什么 |\n|------|------|----------|\n| 表达驱力 | 她有多想说话 | 表达阈值、社交压力权重 |\n| 感知锐度 | 她对伤害\u002F缺席的敏感程度 | 检测阈值、coupling rate、healing 速率 |\n| 边界通透 | 她多容易接纳新事物 | void 创建冷却、split 阈值、rotation |\n| 内在秩序 | 她维持一致性的能力 | merge 阈值、repair rate、路由精度 |\n| 关系引力 | 她多容易被他人拉动 | boundary integrity、sheaf coupling、accepted decay |\n\n- 计算栈输出（伤痕累积、void 压力、表达反馈）反向驱动人格漂移\n- Dual-EMA 防冲击：单次恶意事件不会改变人格，持续模式才会\n- 惯性递增：越老的人格越稳定\n- 稳态回拉：偏离越远阻力越大\n\n**安全机制（7 项）**\n\n- 主权免疫系统：单 session 最多形成有限数量的伤痕\n- 保护性解离（circuit breaker）：短时间大量伤害时自动提高防御\n- 时间感知 healing：沉默期间伤痕也在愈合\n- Void 创建阻力递增（void rate limiting）：防止空洞洪泛\n- 麻木计数下限（numbed-count floor）：防止麻木维度无限累积\n- 振荡检测：防止人格抖动\n- 漂移速率限制：防止刷消息操纵人格\n\n**MoE-HGT 加固**\n\n- Scar token 对数压缩归一化（防止上游爆炸传导）\n- Expert load balancing（防止 expert 休眠）\n- Decision output clamp（防止极端输出）\n- 参考文献：[Counterfactual Routing (2025)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.14246)、[Misrouted Experts (2025)](https:\u002F\u002Farxiv.org\u002Fhtml\u002F2605.07260v1)\n\n**计算栈修复（50+ bug）**\n\n修复了 50+ 个 bug，包括：\n- Void 创建逻辑恢复正常（之前完全失效）\n- 人格→计算栈传导链修复（之前断裂）\n- L6 Boundary 在所有路由路径都会被扰动（之前只有 10% 的消息触发）\n- Scar modifier 指数爆炸修复（对数压缩 + 人格上限）\n- 七层数据完整输出到 WebUI（之前只有 3 层）\n- 群聊 shadow buffer 修复\n- 26 个魔法数字全部接入人格管线\n\n### 没做什么（下个版本）\n\n- 七层神经脊 Canvas 可视化（需要重新设计数据流架构）\n- 人格雷达图 + 漂移事件日志（前端面板）\n- Sheaf Laplacian 验证（需要确认矩阵维度语义后再决定是否修改）\n- Fragment debounce 阻止 LLM 调用（AstrBot 框架层面限制）\n- 跨关系人格隔离（per-relationship personality overlay）\n\n### 已知问题\n\n> [!NOTE]\n> 本版本经过了大量打磨，修复了 50+ 个 bug，引入了完整的人格双向闭环和 7 项安全机制。但由于改动范围很大（涉及几乎所有计算模块），**可能还有一些难以预料的 bug 没有被发现**。如果你遇到异常行为，欢迎在 [Issues](https:\u002F\u002Fgithub.com\u002FAyleovelle\u002Fastrbot_plugin_sylanne\u002Fissues) 中反馈，我会尽快修复。感谢理解 🙏\n\n\u003C\u002Fdetails>\n\n---\n\n## 星星记录表\n\n如果 Sylanne 帮到了你，或者你愿意继续看她慢慢长大，给孩子点一颗⭐吧，孩子什么都会做的（）\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Ayleovelle\u002Fastrbot_plugin_sylanne&type=Timeline&theme=light&variant=adaptive)](https:\u002F\u002Fwww.star-history.com\u002F#Ayleovelle\u002Fastrbot_plugin_sylanne&Timeline)\n\n---\n\n> [!CAUTION]\n> **本插件只用于 LLM 情绪化与拟人状态建模研究。** 所有\"情绪\"\"伤痕\"\"空洞\"\"人格\"全部是工程模拟状态，不代表真实意识或真实主观体验。不能替代医学诊断、心理咨询或任何专业人工判断。\n\n---\n\n## 许可证\n\n[AGPL-3.0-or-later](LICENSE)\n","Ayleovelle\u002Fastrbot_plugin_sylanne 是一个为聊天机器人提供深度情感和关系记忆功能的插件。它通过 Scar Algebra（伤痕代数）、Void Calculus（空洞微积分）和 Relational Sheaf Theory（关系层论）这三套独特的理论，构建了一个不可逆的关系计算引擎，使得机器人能够在长期对话中积累情绪、压力和记忆，并根据这些经历调整其行为和反应模式。此项目适用于需要让聊天机器人展现出更真实、持久且具有个人化特征的互动场景，比如虚拟助手、游戏角色或心理健康支持应用等。使用 Python 语言编写，兼容 AstrBot 4.9.2 至 5.0.0 版本，能够显著提升用户与机器人之间的交流体验。","2026-06-11 04:07:23","CREATED_QUERY"]