feat: 完成 K 群組 — 對話模式:群聊與角色自聊
群聊/自聊子系統(apps/api/src/room/):在場者名冊與共用場景記錄(純記憶體, 同 C-1 工作記憶的設計)、發言權分配(點名/話題相關度/性格基線/情緒/角色間 關係/發言冷卻與冷落累積算衝動值)、群聊矜持(重用 G-3 親密度分層模板、 下修有效親密度而非另建模板庫)、隱私邊界(EpisodicMemory.isPrivate + KeywordMemoryRetriever.excludePrivate,天然呆為口風不緊例外)、群聊記憶 投影(各角色依自身視角固化,被虧的那位權重較高)、角色自聊(沿用發言權 機制、空轉偵測注入轉折或收尾、輪數硬上限、使用者插話切換群聊)。 新增 CharacterRelationship 表供角色間關係使用。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3503cc0be6
commit
6125d6e27f
@@ -0,0 +1,38 @@
|
||||
import type { EmotionTag } from "@kokorone/shared";
|
||||
|
||||
// K-4 發言權分配:各因素的權重與門檻。
|
||||
export const SPEAKING_THRESHOLD = 0.25;
|
||||
export const NAMED_BOOST = 0.6; // 被點名/被提問幾乎必回
|
||||
export const BASELINE_WEIGHT = 0.3;
|
||||
export const TOPIC_RELEVANCE_WEIGHT = 0.25;
|
||||
export const EMOTION_WEIGHT = 0.15;
|
||||
export const RELATIONSHIP_WEIGHT = 0.15;
|
||||
|
||||
// 剛發言者衝動下降;被冷落的角色衝動值隨連續沉默輪數累積(有上限)。
|
||||
export const SPEAK_COOLDOWN_PENALTY = 0.35;
|
||||
export const SILENT_STREAK_BONUS_PER_TURN = 0.05;
|
||||
export const SILENT_STREAK_BONUS_CAP = 0.3;
|
||||
|
||||
export const EMOTION_SPEAKING_MODIFIER: Record<EmotionTag, number> = {
|
||||
CALM: 0,
|
||||
JOY: 0.3, // 愉悅多話
|
||||
SAD: -0.3, // 低落沉默
|
||||
ALERT: 0.1, // 警戒時會出聲反應
|
||||
SHY: -0.1, // 害羞會退縮
|
||||
GRUMPY: -0.2, // 彆扭故意不接話
|
||||
};
|
||||
|
||||
// K-2 群聊矜持:在群聊中,實際傳入生成上下文的親密度會被下修,讓模板系統自然選到更收斂的回應。
|
||||
export const GROUP_RESERVE_INTIMACY_PENALTY = 35;
|
||||
// 傲嬌式反向表達在群聊中「人前更嘴硬」,額外多下修一些。
|
||||
export const TSUNDERE_EXTRA_GROUP_PENALTY = 15;
|
||||
|
||||
// K-6 角色自聊
|
||||
export const SELF_CHAT_MAX_TURNS = 12;
|
||||
export const STALL_CHECK_WINDOW = 3; // 檢查最近幾輪是否開始空轉
|
||||
export const TOPIC_TWIST_LINES = [
|
||||
"對了,說到這個,我突然想到另一件事……",
|
||||
"欸,先別說這個了,你們聽說了嗎——",
|
||||
"話說回來,今天發生了一件蠻好玩的事。",
|
||||
];
|
||||
export const SELF_CHAT_WRAP_UP_LINES = ["好啦,先聊到這裡吧,晚點再聊!", "時間也差不多了,先這樣吧~"];
|
||||
Reference in New Issue
Block a user