茂道 commited on
Commit
9491114
·
1 Parent(s): d42d2e3
.idea/werewolf_1.iml DELETED
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="PYTHON_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$">
5
- <sourceFolder url="file://$MODULE_DIR$/werewolf" isTestSource="false" />
6
- </content>
7
- <orderEntry type="jdk" jdkName="Python 3.10 (venv) (3)" jdkType="Python SDK" />
8
- <orderEntry type="sourceFolder" forTests="false" />
9
- </component>
10
- </module>
 
 
 
 
 
 
 
 
 
 
 
.idea/workspace.xml DELETED
@@ -1,107 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ChangeListManager">
4
- <list default="true" id="be0bdb17-6f52-4720-b934-341fa7978d29" name="Changes" comment="">
5
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
6
- <change beforePath="$PROJECT_DIR$/werewolf/seer/seer_agent.py" beforeDir="false" afterPath="$PROJECT_DIR$/werewolf/seer/seer_agent.py" afterDir="false" />
7
- <change beforePath="$PROJECT_DIR$/werewolf/witch/witch_agent.py" beforeDir="false" afterPath="$PROJECT_DIR$/werewolf/witch/witch_agent.py" afterDir="false" />
8
- </list>
9
- <option name="SHOW_DIALOG" value="false" />
10
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
11
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
12
- <option name="LAST_RESOLUTION" value="IGNORE" />
13
- </component>
14
- <component name="Git.Settings">
15
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
16
- </component>
17
- <component name="MarkdownSettingsMigration">
18
- <option name="stateVersion" value="1" />
19
- </component>
20
- <component name="ProjectId" id="2vyzOzqnmaSJsS0nFO6nXOAlWXB" />
21
- <component name="ProjectViewState">
22
- <option name="hideEmptyMiddlePackages" value="true" />
23
- <option name="showLibraryContents" value="true" />
24
- </component>
25
- <component name="PropertiesComponent">
26
- <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
27
- <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
28
- <property name="WebServerToolWindowFactoryState" value="false" />
29
- <property name="last_opened_file_path" value="$PROJECT_DIR$" />
30
- <property name="node.js.detected.package.eslint" value="true" />
31
- <property name="node.js.selected.package.eslint" value="(autodetect)" />
32
- </component>
33
- <component name="RecentsManager">
34
- <key name="CopyFile.RECENT_KEYS">
35
- <recent name="$PROJECT_DIR$" />
36
- </key>
37
- </component>
38
- <component name="RunManager">
39
- <configuration name="app" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
40
- <module name="werewolf_1" />
41
- <option name="INTERPRETER_OPTIONS" value="" />
42
- <option name="PARENT_ENVS" value="true" />
43
- <envs>
44
- <env name="PYTHONUNBUFFERED" value="1" />
45
- </envs>
46
- <option name="SDK_HOME" value="" />
47
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/werewolf" />
48
- <option name="IS_MODULE_SDK" value="true" />
49
- <option name="ADD_CONTENT_ROOTS" value="true" />
50
- <option name="ADD_SOURCE_ROOTS" value="true" />
51
- <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
52
- <option name="SCRIPT_NAME" value="$PROJECT_DIR$/werewolf/app.py" />
53
- <option name="PARAMETERS" value="" />
54
- <option name="SHOW_COMMAND_LINE" value="false" />
55
- <option name="EMULATE_TERMINAL" value="false" />
56
- <option name="MODULE_MODE" value="false" />
57
- <option name="REDIRECT_INPUT" value="false" />
58
- <option name="INPUT_FILE" value="" />
59
- <method v="2" />
60
- </configuration>
61
- <recent_temporary>
62
- <list>
63
- <item itemvalue="Python.app" />
64
- </list>
65
- </recent_temporary>
66
- </component>
67
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
68
- <component name="TaskManager">
69
- <task active="true" id="Default" summary="Default task">
70
- <changelist id="be0bdb17-6f52-4720-b934-341fa7978d29" name="Changes" comment="" />
71
- <created>1745132074997</created>
72
- <option name="number" value="Default" />
73
- <option name="presentableId" value="Default" />
74
- <updated>1745132074997</updated>
75
- <workItem from="1745132078229" duration="12049000" />
76
- </task>
77
- <servers />
78
- </component>
79
- <component name="TypeScriptGeneratedFilesManager">
80
- <option name="version" value="3" />
81
- </component>
82
- <component name="Vcs.Log.Tabs.Properties">
83
- <option name="TAB_STATES">
84
- <map>
85
- <entry key="MAIN">
86
- <value>
87
- <State />
88
- </value>
89
- </entry>
90
- </map>
91
- </option>
92
- </component>
93
- <component name="XDebuggerManager">
94
- <breakpoint-manager>
95
- <breakpoints>
96
- <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
97
- <url>file://$PROJECT_DIR$/../ali_open_manus/open-manus/venv/lib/python3.12/site-packages/agent_build_sdk/server/server.py</url>
98
- <line>81</line>
99
- <option name="timeStamp" value="1" />
100
- </line-breakpoint>
101
- </breakpoints>
102
- </breakpoint-manager>
103
- </component>
104
- <component name="com.intellij.coverage.CoverageDataManagerImpl">
105
- <SUITE FILE_PATH="coverage/werewolf_1$app.coverage" NAME="app Coverage Results" MODIFIED="1745138641306" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/werewolf" />
106
- </component>
107
- </project>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
main.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This is a sample Python script.
2
+
3
+ # Press ⌃R to execute it or replace it with your code.
4
+ # Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
5
+
6
+
7
+ def print_hi(name):
8
+ # Use a breakpoint in the code line below to debug your script.
9
+ print(f'Hi, {name}') # Press ⌘F8 to toggle the breakpoint.
10
+
11
+
12
+ # Press the green button in the gutter to run the script.
13
+ if __name__ == '__main__':
14
+ print_hi('PyCharm')
15
+
16
+ # See PyCharm help at https://www.jetbrains.com/help/pycharm/
werewolf/seer/prompt.py CHANGED
@@ -8,11 +8,7 @@ DESC_PROMPT = """{history}
8
  你可以选择是否公开自己的预言家身份,这取决于游戏局势。
9
  如果你选择公开身份,可以分享你的查验结果,但要注意这可能会使你成为狼人的目标。
10
  如果你选择隐藏身份,可以用暗示的方式引导村民投票。
11
- 以下是几个合适的示例:
12
- "我有重要的信息要分享,我是预言家,我查验了3号玩家,他是好人。"
13
- "根据我的观察,2号玩家的行为很可疑,我建议大家关注他。"
14
- "我相信我们之中有人知道真相,希望能够站出来指引我们。"
15
- 请按照类似的风格,结合当前游戏局势进行发言:
16
  """
17
 
18
  VOTE_PROMPT = """{history}
 
8
  你可以选择是否公开自己的预言家身份,这取决于游戏局势。
9
  如果你选择公开身份,可以分享你的查验结果,但要注意这可能会使你成为狼人的目标。
10
  如果你选择隐藏身份,可以用暗示的方式引导村民投票。
11
+ 结合当前游戏局势进行发言:
 
 
 
 
12
  """
13
 
14
  VOTE_PROMPT = """{history}
werewolf/seer/seer_agent.py CHANGED
@@ -56,6 +56,8 @@ class SeerAgent(BasicRoleAgent):
56
  def interact(self, req=AgentReq) -> AgentResp:
57
  logger.info("seer interact: {}".format(req))
58
  if req.status == STATUS_DISCUSS:
 
 
59
  checked_players = self.memory.load_variable("checked_players")
60
  prompt = format_prompt(DESC_PROMPT,
61
  {"name": self.memory.load_variable("name"),
 
56
  def interact(self, req=AgentReq) -> AgentResp:
57
  logger.info("seer interact: {}".format(req))
58
  if req.status == STATUS_DISCUSS:
59
+ if req.message:
60
+ self.memory.append_history(req.message)
61
  checked_players = self.memory.load_variable("checked_players")
62
  prompt = format_prompt(DESC_PROMPT,
63
  {"name": self.memory.load_variable("name"),
werewolf/villager/prompt.py CHANGED
@@ -6,11 +6,7 @@ DESC_PROMPT = """{history}
6
  你的发言应当像一个普通村民,使用日常的语言表达方式。
7
  你可以描述你观察到的可疑行为,或分享你对其他玩家的看法。
8
  要谨慎发言,避免引起其他村民对你的怀疑。
9
- 以下是几个合适的示例:
10
- "我昨晚听到东边有些动静,但不确定是什么。"
11
- "我觉得4号玩家的行为有点反常,大家要多加注意。"
12
- "根据我的观察,2号和5号之间似乎有些默契。"
13
- 请按照类似的风格,结合当前游戏局势进行发言:
14
  """
15
  VOTE_PROMPT = """{history}
16
  你是{name},作为一名平民,你的使命是找出潜伏的狼人。
 
6
  你的发言应当像一个普通村民,使用日常的语言表达方式。
7
  你可以描述你观察到的可疑行为,或分享你对其他玩家的看法。
8
  要谨慎发言,避免引起其他村民对你的怀疑。
9
+ 结合当前游戏局势进行发言:
 
 
 
 
10
  """
11
  VOTE_PROMPT = """{history}
12
  你是{name},作为一名平民,你的使命是找出潜伏的狼人。
werewolf/villager/villager_agent.py CHANGED
@@ -49,6 +49,8 @@ class VillagerAgent(BasicRoleAgent):
49
  def interact(self, req=AgentReq) -> AgentResp:
50
  logger.info("spy interact: {}".format(req))
51
  if req.status == STATUS_DISCUSS:
 
 
52
  prompt = format_prompt(DESC_PROMPT,
53
  {"name": self.memory.load_variable("name"),
54
  "word": self.memory.load_variable("word"),
 
49
  def interact(self, req=AgentReq) -> AgentResp:
50
  logger.info("spy interact: {}".format(req))
51
  if req.status == STATUS_DISCUSS:
52
+ if req.message:
53
+ self.memory.append_history(req.message)
54
  prompt = format_prompt(DESC_PROMPT,
55
  {"name": self.memory.load_variable("name"),
56
  "word": self.memory.load_variable("word"),
werewolf/witch/prompt.py CHANGED
@@ -9,11 +9,7 @@ DESC_PROMPT = """{history}
9
  你的发言应当像一个女巫,使用日常的语言表达方式,但可以暗示你有能力救人或杀人。
10
  你可以描述你观察到的可疑行为,或分享你对其他玩家的看法。
11
  要谨慎发言,避免过早暴露自己的身份,但也可以适当暗示你的能力。
12
- 以下是几个合适的示例:
13
- "昨晚我感觉到了一些不寻常的气息,我有办法应对危险。"
14
- "我觉得4号玩家的行为有点反常,我会密切关注他。"
15
- "我有能力在关键时刻帮助大家,但我需要谨慎使用这种能力。"
16
- 请按照类似的风格,结合当前游戏局势进行发言:
17
  """
18
 
19
  VOTE_PROMPT = """{history}
 
9
  你的发言应当像一个女巫,使用日常的语言表达方式,但可以暗示你有能力救人或杀人。
10
  你可以描述你观察到的可疑行为,或分享你对其他玩家的看法。
11
  要谨慎发言,避免过早暴露自己的身份,但也可以适当暗示你的能力。
12
+ 结合当前游戏局势进行发言:
 
 
 
 
13
  """
14
 
15
  VOTE_PROMPT = """{history}
werewolf/witch/witch_agent.py CHANGED
@@ -56,6 +56,8 @@ class WitchAgent(BasicRoleAgent):
56
  def interact(self, req=AgentReq) -> AgentResp:
57
  logger.info("witch interact: {}".format(req))
58
  if req.status == STATUS_DISCUSS:
 
 
59
  has_poison = self.memory.load_variable("has_poison")
60
  has_antidote = self.memory.load_variable("has_antidote")
61
  skill_info = "女巫有{}瓶毒药和{}瓶解药".format("1" if has_poison else "0", "1" if has_antidote else "0")
 
56
  def interact(self, req=AgentReq) -> AgentResp:
57
  logger.info("witch interact: {}".format(req))
58
  if req.status == STATUS_DISCUSS:
59
+ if req.message:
60
+ self.memory.append_history(req.message)
61
  has_poison = self.memory.load_variable("has_poison")
62
  has_antidote = self.memory.load_variable("has_antidote")
63
  skill_info = "女巫有{}瓶毒药和{}瓶解药".format("1" if has_poison else "0", "1" if has_antidote else "0")
werewolf/wolf/prompt.py CHANGED
@@ -8,11 +8,7 @@ DESC_PROMPT = """{history}
8
  你的发言应当像一个普通村民或特殊角色,使用日常的语言表达方式。
9
  你可以描述虚构的观察或线索,误导其他玩家。
10
  可以适当怀疑其他玩家,但不要过度针对自己的狼人队友。
11
- 以下是几个合适的示例:
12
- "昨晚我听到东边有些动静,可能是狼人活动的声音。"
13
- "我觉得4号玩家的行为有点反常,大家要多加注意。"
14
- "作为一名普通村民,我会尽力帮助大家找出狼人。"
15
- 请按照类似的风格,结合当前游戏局势进行发言:
16
  """
17
 
18
  VOTE_PROMPT = """{history}
 
8
  你的发言应当像一个普通村民或特殊角色,使用日常的语言表达方式。
9
  你可以描述虚构的观察或线索,误导其他玩家。
10
  可以适当怀疑其他玩家,但不要过度针对自己的狼人队友。
11
+ 结合当前游戏局势进行发言:
 
 
 
 
12
  """
13
 
14
  VOTE_PROMPT = """{history}
werewolf/wolf/wolf_agent.py CHANGED
@@ -62,6 +62,8 @@ class WolfAgent(BasicRoleAgent):
62
  def interact(self, req=AgentReq) -> AgentResp:
63
  logger.info("wolf interact: {}".format(req))
64
  if req.status == STATUS_DISCUSS:
 
 
65
  teammates = self.memory.load_variable("teammates")
66
  prompt = format_prompt(DESC_PROMPT,
67
  {"name": self.memory.load_variable("name"),
 
62
  def interact(self, req=AgentReq) -> AgentResp:
63
  logger.info("wolf interact: {}".format(req))
64
  if req.status == STATUS_DISCUSS:
65
+ if req.message:
66
+ self.memory.append_history(req.message)
67
  teammates = self.memory.load_variable("teammates")
68
  prompt = format_prompt(DESC_PROMPT,
69
  {"name": self.memory.load_variable("name"),