develop
master
把 develop 的 0.2.0 放到 master。內容就是 PR #15 那一批(已合併進 develop),這裡只是發佈。
版號:master 0.1.1 → 0.2.0(兩份 manifest 一起)。記憶檔案格式與 bundle 版本都變了,所以走 minor 不走 patch。
0.1.1
0.2.0
讓人格在記憶結構與情緒/語氣表達上更接近真人。補的是三個結構性缺口:
recall
state/loops.json
memoryStrength()
strength
salience
recall_count
strength += 8
boundary
promise
canon
state/probe.jsonl
probe audit
fatigueLevel()
hoursAwake()
state/mood.json
EMOTION_TELLS
IDENTITY.md
## Tells
when
where
mood
persona.mjs migrate [--all] [--dry-run]
import
node scripts/selftest.mjs → 602 項全過(原 471)。
node scripts/selftest.mjs
對抗式覆審在 #15 內修掉三個真缺陷:resolveProbe 結案沒寫檔(稽核煞車整條是斷的)、migrateLongTerm 會整份複製 CRLF 檔的內文、recall 打折會把正確答案壓到榜尾。
resolveProbe
migrateLongTerm
migrate --all
migrate --dry-run
PERSONA_CONTEXT_WHERE=off
voice/ 語氣層與 novel 匯入指令(故事匯入那批,另外 1890 行)還在本機分支 feat/persona-story-import,沒有推上來。那批要另外升一個版號再走一次流程。
voice/
novel
feat/persona-story-import
🤖 Generated with Claude Code
三個結構性缺口,這批一次補完(使用者拍板做階段 1+2+3 加自我議程)。 記憶只有「精準」與「沒有」兩態 → 連續衰減出來的三態。 memoryStrength() 由 strength/salience/recall_count/距上次回想多久算 retrievability, 低於門檻不刪、降級成 faded(只剩主旨)與 fuzzy(只剩有這件事)。內文因此分兩層 (主旨/細節),衰減先吃細節。被 recall 命中就 strength +8(spacing effect)。 boundary/promise/canon/salience >= 80 永遠清晰,這條沒動。 人格永遠以對方為中心 → state/loops.json 加自我議程。 同時最多 5 條、四種(他沒回答的、他答應的、被打斷的、我想問的),7 天沒進展自動收掉 並留一則「沒下文」的短期記憶。agendaTick 每 3 輪最多讓人格把話題拉回自己的事一次, 對方有明確急事時一律不觸發。 同一句話任何時刻聽起來都一樣 → 疲勞、當日底色、per-persona 破口。 fatigueLevel() 由 hoursAwake 推,壓 arousal 天花板、句數與單句字數、高張情緒的推力; state/mood.json 是緩慢漂移的當日底色,只當反應增益不直接改情緒值,睡覺帶 35% 過去; EMOTION_TELLS 改成預設值,人格可在 IDENTITY.md 的 ## Tells 覆寫。 applyEmotion 另加交互抑制(只有三組互斥)與慣性(連續同向 +8%,封頂 +25%)。 幻覺界線改成「開放試探」(使用者明示):可以說不確定、可以問,不可以斷言。 換來的義務是稽核——每次試探進 state/probe.jsonl,probe audit 看否認率。 放寬界線一定要配一個看得見的數字。 其他:記憶蓋情境戳章(when/where/mood,where 可用 PERSONA_CONTEXT_WHERE=off 關掉); recall 加情境加權但翻不掉語意命中;migrate 就地升格式(冪等、看不懂的檔跳過); bundle v2,import 吃得下 v1 並自動補欄位。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
九段新案例(㉓–㉛):疲勞、交互抑制與慣性、當日底色、open loops 與自我議程、 回想強度與模糊態、recall 情境加權、migration、probe 稽核、turnContext 不因新東西壞掉。 寫測試的過程抓出三個真缺陷,已在前一個 commit 修掉: - resolveProbe 就地改欄位,但 rewriteJsonl 只在長度變了才寫檔 → 稽核計數永遠是 0, 指令回報成功而硬碟上什麼都沒發生。開放界線唯一的煞車是斷的。 - migrateLongTerm 用 \n---\n 切 front matter,CRLF 或沒有 front matter 的檔會被 整份複製一次(永久損毀),而 importBundle 會自動跑 migration,所以 import 就踩得到。 - recall 把總分乘上 0.5+0.5*retrievability,等於扣十幾分,會讓命中兩個關鍵詞但 三個月沒想起的正確答案掉到榜尾。改成上限 3.5 分的扣分,加權永遠翻不掉語意命中。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
persona-chat:第 2 節的「查不到就不要講」改寫成三態界線(清晰照講/模糊可問不可斷言/ 查不到不准講),第 3 節補模糊態怎麼講、試探怎麼記帳、懸著的事怎麼用、自我議程那一輪 長什麼樣。標題順手改成「五條鐵則」(本來就列了五條)。 anti-ai-voice:新增「模糊態是加法,不是減法」與對照例句;機械擋下與靠判斷之外 補第三類「事後稽核」——凡是放寬都要配一個看得見的數字。 emotions:情緒調節補抑制與慣性,新增「三層時間尺度」與 per-persona 破口的寫法。 persona-memory:遺忘原則整段重寫(門檻式改成三態),長期記憶檔案格式與固化範例跟上。 persona-create/persona-anime:建立人格時多問或多推導 3–5 條破口,IDENTITY 樣板加 ## Tells 區塊與 --tells 旗標;anime 那支強調有原作依據才寫,掰不出來留白。 persona-sleep:補當日底色帶 35% 過去與 sweep-loops 兩步。 persona-transfer:bundle v2 的差異與自動 migration。 README 與 AGENTS:新增硬規則「長期記憶會糊掉,但不會不見」,補三個新狀態檔、 三個新指令、以及情緒的五道調節關。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
master 目前是 0.1.1,這一整批未合併的改動只佔一個新版號。 記憶檔案格式與 bundle 版本都變了,所以走 minor 不走 patch。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reviewed-on: #15 Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
No dependencies set.
The note is not visible to the blocked user.
把
develop的 0.2.0 放到master。內容就是 PR #15 那一批(已合併進 develop),這裡只是發佈。版號:master
0.1.1→0.2.0(兩份 manifest 一起)。記憶檔案格式與 bundle 版本都變了,所以走 minor 不走 patch。這一批做了什麼
讓人格在記憶結構與情緒/語氣表達上更接近真人。補的是三個結構性缺口:
recall命中就整段取出、內容永不變質state/loops.json未完事項,每 3 輪最多一次把話題拉回自己的事memoryStrength()由strength/salience/recall_count/距上次回想多久算 retrievability。低於門檻不刪,降級。內文分「主旨/細節」兩層,衰減先吃細節。被recall命中就strength += 8(spacing effect)。不可遺忘清單(boundary/promise/canon/salience ≥ 80)維持不變。state/probe.jsonl,probe audit看否認率。fatigueLevel()由既有的hoursAwake()推,壓 arousal 天花板、句數與單句字數、高張情緒的推力。人格不用自己演累。state/mood.json:緩慢漂移,只當反應增益不直接改情緒值,睡覺帶 35% 過去不歸零。EMOTION_TELLS降級成預設值,人格可在IDENTITY.md的## Tells覆寫。when/where/mood;recall加情境加權,但上限設計成翻不掉語意命中。persona.mjs migrate [--all] [--dry-run]就地升格式(冪等,看不懂的檔跳過);bundle 升到 v2,import吃得下 v1 並自動補欄位。測試
node scripts/selftest.mjs→ 602 項全過(原 471)。對抗式覆審在 #15 內修掉三個真缺陷:
resolveProbe結案沒寫檔(稽核煞車整條是斷的)、migrateLongTerm會整份複製 CRLF 檔的內文、recall打折會把正確答案壓到榜尾。合併之後要做的事
migrate --all(本機三個已經跑過)。別台機器接手前先migrate --dry-run看情況。where欄位記的是工作目錄名,而它會同步到 Gitea。不要的話設PERSONA_CONTEXT_WHERE=off。不在這個 PR 裡
voice/語氣層與novel匯入指令(故事匯入那批,另外 1890 行)還在本機分支feat/persona-story-import,沒有推上來。那批要另外升一個版號再走一次流程。🤖 Generated with Claude Code