基于 Overlord 世界观的多智能体文字游戏。角色通过文件配置,有"系统/导演"编排剧本、触发事件、推动剧情;每个角色有各自长期记忆;主角由玩家操控(战斗可 AI 托管)。
M0 + M1 + M2 + v1.1 + v2 + v3 全部完成,129 个测试通过 + 2 跳过(真实 LLM)。
v3 新增(基于用户反馈,见 docs/feedback-log.md):
-
增强界面:prompt_toolkit Tab 补全(
@角色//命令)、彩色输出(发言/系统/心声/行动/描述五色)、LLM 思考进度 spinner -
群聊串行调度:多 agent 按 position_rank 依次发言,后发言者引用前人发言(不再各说各话)
-
内容点名路由:无
@时按文本内容路由(如"shalltear你去吧"→夏提雅) -
任务时间线:任务派发后持续推演,
/next推进系统↔队长自动交互(局势推演+汇报+请示),玩家可旁观或介入 -
Actor 模型(单线程协作式):角色/导演都是 actor,信箱通信
-
记忆:SQLite 原始流水 + ChromaDB 向量(LlamaIndex 检索),每角色独立 collection,反思层(高阶信念合成)
-
导演:声明式剧本 + 受限 trigger DSL + player_directives 自主推进 + 张力曲线管理
-
战斗:完整公式(乘法防御 + 命中/闪避/暴击/克制/魔抗 + 天赋),纯函数 resolver,种子可复现,AI 托管
-
任务方针:战略(雅儿贝德给目标)→ 队长执行 → 玩家中途拍板,数据驱动方针池(7 个,config 可扩展),含终止护栏
-
角色卡生成:遇新角色 LLM 生成(不审核),数值钳制
-
关系/情绪:affinity(玩家可见)+ mood(影响发言)
-
内心戏:主角旁白特权(他人不感知)
-
群聊:
@多人(@夏提雅 @雅儿贝德 文字)、@all全员在场、@单角色一对一 -
@自动补全:单独
@列候选,前缀匹配;追问默认沿用上次对象 -
超越点:满级后 exp 转 overlord_points,可消费换永久属性
-
信念建模:角色对其他角色的已知信息建模(权谋/信息隔离)
-
存档/回放:步边界存档,think-trace + provenance 日志
-
真实 LLM:HttpLLM(OpenAI 兼容),异构多模型(雅儿贝德=kimi-k2.6、夏提雅=glm-5.2、其余=deepseek-v3.2)
# 安装(需 Python 3.11+,本机用 py -3.14)
pip install -e ".[dev]"
# 配置真实 LLM(OpenAI 兼容,如 cp.compshare.cn)
cp .env.example .env
# 编辑 .env 填入 MAG_LLM_BASE 和 MAG_LLM_KEY(.env 已 gitignore)
# 跑游戏(自动加载 .env)
py -3.14 main.py
# 跑测试(无凭据时自动回退 StubLLM,跳过真实 LLM 测试)
PYTHONUTF8=1 py -3.14 -m pytest -q
# 跑含真实 LLM 的测试:
MAG_LLM_BASE=... MAG_LLM_KEY=... PYTHONUTF8=1 py -3.14 -m pytest tests/adapters/test_http_llm.py -q@角色 文字— 与该角色一对一对话@A @B 文字— 多人在场群聊(B 模式)@all 文字— 全员在场群聊(C 模式)@单独输入 — 列出可选角色(自动补全)- 追问(无 @) — 沿用上次对话对象
@系统 生成剧情 [主题]— 系统命令:导演据玩家基调 LLM 生成剧情事件+敌人卡,注入为待执行任务@系统 跳过— 取消当前待办任务@系统 在场谁— 列出在场角色@系统 文字— 对导演自然语言提问(走 LLM)/leave— 退出当前对话/next— 推进一个时间步(按剧本 trigger 触发事件)/approach 战斗|逃跑|打探情报— 对当前待办任务拍板方针执行/save/stats/quit
两种方式:
- 配置剧本:
config/scripts/*.yaml定义事件 +trigger(on_time at_step:N/on_flag/on_condition),/next推进到触发步时导演自动点燃。 - 系统生成:
@系统 生成剧情 [主题]→ 导演用真实 LLM 据玩家 directives 生成事件 + 数值钳制的敌人卡 →/approach 战斗出击 → 真实回合战斗 → 结果存档。
config/characters/*.yaml— 角色卡(人设/属性/技能/天赋/动机/好感/模型)config/scripts/*.yaml— 剧本弧(事件/触发/分支)config/settings.yaml— 全局(LLM 模型池/记忆/导演/战斗/恢复)config/player_directives.yaml— 玩家剧情规则(基调/节奏/主题/种子)
详见 docs/superpowers/specs/2026-07-19-multi-agent-game-design.md。
模块:
domain/纯数据(character/world/scene/message)actors/actor(character_actor/director_actor)memory/LlamaIndex 检索层(store/retriever)director/导演大脑(event_rules/power/flee/approach_sim/char_card_gen/consequences)combat/战斗(resolver/scene/ai_pilot)engine/运行时(scheduler/game_loop/game_log/save/recovery)adapters/外部(llm/cli/config_loader)
摘要级联压缩、真并发 actor、天赋通用脚本引擎、觉醒天赋解锁树。