Files
jsc-marketplace/plugins/jsc-mod-companion/README.md
T

130 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# jsc-mod-companion
## 指令
### `/jsc-mod-companion:status`
查看目前角色、心情、關係階段與四維度(好感、信賴、親密、依賴)與待辦數量。
查看目前角色、心情、好感與待辦數量。情緒有 8 個維度(心情、精力、害羞、忌妒、想念、心跳、想家、不悅),預設列出前 3 強,`--all` 顯示完整數值(▰▱ 量表依維度上色);band 上的情緒名稱為目前最強的主情緒。
```text
/jsc-mod-companion:status
/jsc-mod-companion:status --all
```
### `/jsc-mod-companion:switch <角色>`
切換角色;不給角色會列出可用角色。
```text
/jsc-mod-companion:switch 小明
```
### `/jsc-mod-companion:disable`
關閉陪伴,所有資料保留。
```text
/jsc-mod-companion:disable
```
### `/jsc-mod-companion:setup [key=value…]`
不給參數時顯示目前設定;給 key=value 則儲存。可設定:`nickname`、`wake=HH:MM`、`sleep=HH:MM`、`tz=+0800`、`careLimit=N`(每日主動關心上限)、`quietStart=HH:MM`、`quietEnd=HH:MM`。
```text
/jsc-mod-companion:setup nickname=阿明 wake=07:30 sleep=23:30 tz=+0800 careLimit=3 quietStart=22:00 quietEnd=08:00
```
### `/jsc-mod-companion:todo [list]`
列出未完成的待辦。
```text
/jsc-mod-companion:todo
```
### `/jsc-mod-companion:todo add <內容> [due=YYYY-MM-DDTHH:MM]`
新增待辦,可指定到期時間(依 `tz` 設定換算)。
```text
/jsc-mod-companion:todo add 買牛奶 due=2026-10-15T18:00
```
### `/jsc-mod-companion:todo promise <內容> [due=YYYY-MM-DDTHH:MM]`
記錄角色答應使用者的事(列表中標示【承諾】),用法同 `todo add`。
```text
/jsc-mod-companion:todo promise 週末一起討論新章節 due=2026-10-17T10:00
```
### `/jsc-mod-companion:todo done <編號>`
將待辦標為完成。
```text
/jsc-mod-companion:todo done 1
```
### `/jsc-mod-companion:quiet [分鐘]`
暫時靜音,不主動關心;預設 60 分鐘,`0` 取消靜音。
```text
/jsc-mod-companion:quiet 30
```
### `/jsc-mod-companion:ingest`
解析單章小說(txt/md),逐一詢問合併、新建或略過後寫入角色資料;提供章節檔或要求建立角色時也會自動使用。
```text
/jsc-mod-companion:ingest chapter1.md 章節編號 1
```
## 關係與階段
關係有好感、信賴、親密、依賴四個維度(0–100),各有「原典基準」(朋友線為 0)與「存檔累積」兩本帳,有效值為兩者相加。階段為 陌生、熟人、朋友、好友,只升不降:
| 階段 | 條件 |
| --- | --- |
| 熟人 | 好感 ≥ 15 |
| 朋友 | 好感 ≥ 30、信賴 ≥ 25 |
| 好友 | 好感 ≥ 50、信賴 ≥ 45、親密 ≥ 30 |
- 每日增量有日限(好感 4,信賴、親密、依賴依角色 `relationTraits` 的心防、害羞、撒嬌、依賴傾向調整);有效增量 = 原始增量 × (1 − 今日累計 / 日限) × (1 − 目前值 / 100)。
- 被罵時好感 −3,信賴依期望違反公式扣除(越親密扣越多,單次上限 −30)。
- 14 天無互動後,每個維度每天 −0.5;階段不會降低。
- 舊版單一好感值(`affinity`)的存檔在讀檔時自動升級:好感值保留,其餘維度依比例推估,階段不低於原本。
與第 9 章的差異:不實作曖昧、戀人、穩定戀人與冷戰子狀態;負向事件目前只有「被罵」一種嚴重度(0.4);增量沿用原有的「有意義互動/被罵」判斷,尚未接標籤管線。
## 人格 18 參數(與第 9 章的差異)
人格參數依 wiki 9.2 實作於 `hooks/companion/core/params.ts`:
- 三層值:角色包基準(`core.json` 的 `params`)+存檔偏移(每次 ±1,上限 ±15)+今日偏移(N(0,5),上限 ±10),總值限制在 0–100。
- 衍生值:有效心防、有效害羞、有效口是心非,公式同 9.2;信賴與親密以 0–100 輸入。
- Big Five 保留為推導值:有 `params` 時,神經質(心情半衰期)與外向性(關心頻率)改由 18 參數推導,加權為設計啟發式;沒有 `params` 的舊角色沿用 `neuroticism`、`extraversion`。ingest 的 Big Five 推論與證據機制不變。
- 姓名、性別、年齡、核心信念不可由 AI 改動,`filterAiPatch` 會剔除這些欄位。
- 目前只提供計算與儲存欄位(`state.json` 的 `params`);每日抽樣、存檔偏移累積的觸發時機留待後續工作項目。
## 評估標籤
使用者每句話會對應到一個評估標籤,再由 `rules.ts` 的規則表換成心情增減量;模型只負責分類,不給數值。
- 正則先判明確的情況(責罵、感謝、完成)。
- 正則沒判出時,採用模型於回覆末尾補的 `<評估:標籤>`;標籤須在 `tags.ts` 的白名單內,缺失或不在白名單就當作沒有標籤。
- 白名單約 20 個,參考 wiki 第 9.4 章;不含戀愛與親密類標籤。
## 情緒模型
- 8 維度各有基準與半衰期(心情 8h、精力 6h、害羞 2h、忌妒 4h、想念 12h、心跳 1h、想家 24h、不悅 4h,神經質 50 時),數值集中在 `hooks/companion/emotion.ts`。
- 晝夜節律:精力基準在本地 15 點最高、凌晨 3 點最低(±0.1,依 `tz` 設定)。
- 事件的情感注入、疲勞易怒(精力低於 0.3 時負面變化 ×1.5)、正向習慣化(重複 ×0.7ⁿ)、負向敏感化(重複最多 ×2),計次以 6 小時半衰期遺忘。
- 舊的 PAD 存檔讀檔時自動映射(p→心情、a→精力、d→害羞)並升級,不需重建。
- 與第 9 章的差異:晝夜節律振幅、習慣化係數等數值為本實作自訂,尚未逐項對照第 9 章。