Merge branch 'pr-10'

This commit is contained in:
bridge
2026-01-05 20:46:43 +08:00
3 changed files with 8 additions and 3 deletions

View File

@@ -87,9 +87,10 @@ class LLMAI(AI):
for p in raw_pairs:
if isinstance(p, list) and len(p) == 2:
pairs.append((p[0], p[1]))
# LLM 可能返回 null 作为 params需要转为空字典。
pairs.append((p[0], p[1] or {}))
elif isinstance(p, dict) and "action_name" in p and "action_params" in p:
pairs.append((p["action_name"], p["action_params"]))
pairs.append((p["action_name"], p["action_params"] or {}))
else:
continue

View File

@@ -126,6 +126,10 @@ class Simulator:
async def _phase_execute_actions(self):
"""
执行阶段:推进当前动作,支持同月链式抢占即时结算,返回期间产生的事件。
TODO: 为单个角色的 tick_action() 添加 try-except 处理。
当前如果任一角色的动作执行抛出异常,整个 step() 会失败,
导致 month_stamp 不会推进,游戏卡在同一个月份无限循环。
"""
events = []
MAX_LOCAL_ROUNDS = 3

View File

@@ -14,7 +14,7 @@
"avatar_thinking": ... // 从角色角度,以第一人称视角,简单清晰的描述想法
"current_emotion": ... // 从以下列表中选择一个最符合当前心情的词:平静、开心、愤怒、悲伤、恐惧、惊讶、期待、厌恶、疑惑、疲惫
"short_term_objective": ..., // 角色接下来一段时间的短期目标
"action_name_params_pairs": list[Tuple[action_name, action_params]] // 一次性决定未来的5~10个动作按顺序执行
"action_name_params_pairs": list[Tuple[action_name, action_params]] // 一次性决定未来的5~10个动作按顺序执行。action_params 必须是字典 {{}},不能是 null。
}}
}}