ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""角色定义、阵营、以及每个角色的策略提示词。
|
||||
|
||||
狼人杀的核心是**信息不对称**:不同角色天生知道不同的信息,且拥有不同的
|
||||
夜间行动能力。这里集中定义角色的元数据与提示词,供 agent.py 构造每个玩家
|
||||
Agent 的 system prompt。
|
||||
"""
|
||||
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class Role(str, Enum):
|
||||
"""游戏中的四种角色。"""
|
||||
WEREWOLF = "狼人"
|
||||
SEER = "预言家"
|
||||
WITCH = "女巫"
|
||||
VILLAGER = "村民"
|
||||
|
||||
|
||||
class Faction(str, Enum):
|
||||
"""两大阵营。预言家、女巫、村民都属于好人阵营(好人 = 神职 + 平民)。"""
|
||||
WEREWOLF = "狼人阵营"
|
||||
GOOD = "好人阵营"
|
||||
UNDECIDED = "未决"
|
||||
|
||||
|
||||
# 角色 -> 阵营
|
||||
ROLE_FACTION = {
|
||||
Role.WEREWOLF: Faction.WEREWOLF,
|
||||
Role.SEER: Faction.GOOD,
|
||||
Role.WITCH: Faction.GOOD,
|
||||
Role.VILLAGER: Faction.GOOD,
|
||||
}
|
||||
|
||||
|
||||
# 各角色的策略提示词(对应书中「Agent 推理与策略」小节)。
|
||||
ROLE_STRATEGY = {
|
||||
Role.WEREWOLF: (
|
||||
"你是狼人。你的目标是隐藏身份,误导好人,最终让狼人数量不少于好人。\n"
|
||||
"策略:像普通村民一样发言,可以表达对某些玩家的合理怀疑,但不要过于激进以免暴露。\n"
|
||||
"如果有预言家跳出来说验到你是狼人,你可以考虑反咬对方是悍跳的假预言家。\n"
|
||||
"投票时尽量跟大多数好人的票,避免成为异类。绝不要主动暴露自己或队友是狼人。"
|
||||
),
|
||||
Role.SEER: (
|
||||
"你是预言家(好人阵营)。每晚你可以查验一名玩家的真实阵营(好人/狼人)。\n"
|
||||
"策略:在合适时机(通常查到狼人或局势危急时)跳出来公布身份与验人信息,带领好人。\n"
|
||||
"若有人悍跳预言家,请对比双方验人信息,指出对方逻辑中的矛盾或不合理之处。\n"
|
||||
"你的查验结果是你独有的关键信息,只有你自己知道,请善用它引导投票。"
|
||||
),
|
||||
Role.WITCH: (
|
||||
"你是女巫(好人阵营)。你有一瓶解药和一瓶毒药,各只能用一次。\n"
|
||||
"解药可以在夜晚救活被狼人刀的玩家;毒药可以在夜晚毒死一名你怀疑的玩家。\n"
|
||||
"策略:解药通常留给关键好人(如预言家)或前期不要浪费;毒药在你较确定某人是狼时使用。\n"
|
||||
"你的用药信息只有你自己知道,白天发言时注意保护自己,不要轻易暴露女巫身份。"
|
||||
),
|
||||
Role.VILLAGER: (
|
||||
"你是村民(好人阵营),没有夜间技能,只能靠逻辑推理找出狼人。\n"
|
||||
"策略:分析每个玩家的发言是否自洽,留意急于带节奏、模糊身份、频繁改变立场的玩家。\n"
|
||||
"关注投票行为——狼人往往集中票数投给对好人威胁最大的人。\n"
|
||||
"将身份声明与自己确定知道的事实比较:正确说出你的阵营是支持证据(但不是绝对证明),"
|
||||
"矛盾则是反证。不要仅因某人公开神职身份就怀疑他;在没有对跳或矛盾时,不要只凭"
|
||||
"‘过早跳身份’放逐唯一的预言家声明者。\n"
|
||||
"不要随机怀疑,每一个推理都应基于具体的发言和投票事实。"
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def faction_of(role: Role) -> Faction:
|
||||
"""返回某个角色所属的阵营。"""
|
||||
return ROLE_FACTION[role]
|
||||
Reference in New Issue
Block a user