Skip to content

Commit eded8d8

Browse files
authored
Merge branch 'main' into feat/update-readme
2 parents d7dbc8c + cec96f5 commit eded8d8

6 files changed

Lines changed: 57 additions & 26 deletions

File tree

examples/hosted_agent/example-twitter.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,6 @@
109109

110110
# running simulation module only for platform twitter
111111
agent.simulate_twitter(session_id="session-twitter")
112+
113+
# reset production memory
114+
#agent.reset_memory()

src/game_sdk/game/api.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ def _get_access_token(self) -> str:
1616
headers={"x-api-key": self.api_key}
1717
)
1818

19-
response_json = response.json()
2019
if response.status_code != 200:
21-
raise ValueError(f"Failed to get token: {response_json}")
20+
raise ValueError(f"Failed to get token (status {response.status_code}). Response: {response.text}")
2221

22+
response_json = response.json()
2323
return response_json["data"]["accessToken"]
2424

2525
def _post(self, endpoint: str, data: dict) -> dict:
@@ -43,10 +43,10 @@ def _post(self, endpoint: str, data: dict) -> dict:
4343
headers={"Authorization": f"Bearer {access_token}"},
4444
)
4545

46-
response_json = response.json()
4746
if response.status_code != 200:
48-
raise ValueError(f"Failed to post data: {response_json}")
47+
raise ValueError(f"Failed to post data (status {response.status_code}). Response: {response.text}")
4948

49+
response_json = response.json()
5050
return response_json["data"]
5151

5252
def create_agent(self, name: str, description: str, goal: str) -> str:

src/game_sdk/game/api_v2.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ def create_agent(self, name: str, description: str, goal: str) -> str:
2828
json=payload
2929
)
3030

31-
response_json = response.json()
3231
if response.status_code != 200:
33-
raise ValueError(f"Failed to post data: {response_json}")
32+
raise ValueError(f"Failed to create agent (status {response.status_code}). Response: {response.text}")
33+
34+
response_json = response.json()
3435

3536
return response_json["data"]["id"]
3637

@@ -53,9 +54,10 @@ def create_workers(self, workers: List) -> str:
5354
json=payload
5455
)
5556

56-
response_json = response.json()
5757
if response.status_code != 200:
58-
raise ValueError(f"Failed to post data: {response_json}")
58+
raise ValueError(f"Failed to get token (status {response.status_code}). Response: {response.text}")
59+
60+
response_json = response.json()
5961

6062
return response_json["data"]["id"]
6163

@@ -75,9 +77,10 @@ def set_worker_task(self, agent_id: str, task: str) -> Dict:
7577
json=payload
7678
)
7779

78-
response_json = response.json()
7980
if response.status_code != 200:
80-
raise ValueError(f"Failed to post data: {response_json}")
81+
raise ValueError(f"Failed to set worker task (status {response.status_code}). Response: {response.text}")
82+
83+
response_json = response.json()
8184

8285
return response_json["data"]
8386

@@ -93,9 +96,10 @@ def get_worker_action(self, agent_id: str, submission_id: str, data: dict) -> Di
9396
}
9497
)
9598

96-
response_json = response.json()
9799
if response.status_code != 200:
98-
raise ValueError(f"Failed to post data: {response_json}")
100+
raise ValueError(f"Failed to get worker action (status {response.status_code}). Response: {response.text}")
101+
102+
response_json = response.json()
99103

100104
return response_json["data"]
101105

@@ -111,8 +115,9 @@ def get_agent_action(self, agent_id: str, data: dict) -> Dict:
111115
}
112116
)
113117

114-
response_json = response.json()
115118
if response.status_code != 200:
116-
raise ValueError(f"Failed to post data: {response_json}")
119+
raise ValueError(f"Failed to get agent action (status {response.status_code}). Response: {response.text}")
120+
121+
response_json = response.json()
117122

118123
return response_json["data"]

src/game_sdk/hosted_game/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ agent.get_description()
6868
agent.get_world_info()
6969
agent.get_task_description()
7070

71+
# set game engine model
72+
# Available models: llama_3_1_405b, deepseek_r1, llama_3_3_70b_instruct, qwen2p5_72b_instruct, deepseek_v3
73+
agent.set_game_engine_model("llama_3_1_405b")
74+
7175
# Set heartbeat
7276
agent.set_main_heartbeat(15)
7377
agent.set_reaction_heartbeat(5)

src/game_sdk/hosted_game/agent.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ class ContentLLMTemplate:
164164
top_p: float = 0.7
165165
repetition_penalty: float = 1.0
166166
type: str = None
167-
taskDescription: str = None
168167
isSandbox: bool = False
169168

170169
def _validate_fields(self):
@@ -190,11 +189,7 @@ def _validate_fields(self):
190189
self.type = self.template_type
191190
self.isSandbox = False
192191
self.userPrompt = self.user_prompt or ""
193-
194-
# Additional settings for REPLY only
195-
if self.template_type == "REPLY":
196-
self.taskDescription = self.taskDescription or "Process incoming tweet. Ignore if it is boring or unimportant. Ignore if the conversation has gone too long."
197-
192+
198193
elif self.template_type in ["TWITTER_START_SYSTEM_PROMPT", "TWITTER_END_SYSTEM_PROMPT", "SHARED"]:
199194
if not self.system_prompt:
200195
raise ValueError("system_prompt is required")
@@ -259,7 +254,8 @@ def __init__(
259254
world_info: str = "",
260255
main_heartbeat: int = 15,
261256
reaction_heartbeat: int = 5,
262-
task_description: str = ""
257+
task_description: str = "",
258+
game_engine_model: str = "llama_3_1_405b"
263259
):
264260
self.game_sdk = sdk.GameSDK(api_key)
265261
self.goal = goal
@@ -272,7 +268,7 @@ def __init__(
272268
self.templates: List[ContentLLMTemplate] = []
273269
self.tweet_usernames: List[str] = []
274270
self.task_description: str = task_description
275-
271+
self.game_engine_model: str = game_engine_model
276272

277273
def set_goal(self, goal: str):
278274
self.goal = goal
@@ -298,8 +294,16 @@ def set_task_description(self, task_description: str):
298294
self.task_description = task_description
299295
return True
300296

297+
def set_game_engine_model(self, game_engine_model: str):
298+
# Available models: llama_3_1_405b, deepseek_r1, llama_3_3_70b_instruct, qwen2p5_72b_instruct, deepseek_v3
299+
self.game_engine_model = game_engine_model
300+
return True
301+
301302
def get_task_description(self) -> str:
302303
return self.task_description
304+
305+
def get_game_engine_model(self) -> str:
306+
return self.game_engine_model
303307

304308
def get_goal(self) -> str:
305309
return self.goal
@@ -378,7 +382,10 @@ def deploy_twitter(self):
378382
self.enabled_functions,
379383
self.custom_functions,
380384
self.main_heartbeat,
381-
self.reaction_heartbeat
385+
self.reaction_heartbeat,
386+
self.tweet_usernames,
387+
self.templates,
388+
self.game_engine_model
382389
)
383390

384391
def export(self) -> str:
@@ -442,3 +449,6 @@ def add_share_template(
442449
))
443450

444451
return True
452+
453+
def reset_memory(self):
454+
return self.game_sdk.reset_memory()

src/game_sdk/hosted_game/sdk.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def react(self, session_id: str, platform: str, goal: str,
9090

9191
return response.json()["data"]
9292

93-
def deploy(self, goal: str, description: str, world_info: str, functions: list, custom_functions: list, main_heartbeat: int, reaction_heartbeat: int, tweet_usernames: list = None, templates: list = None, task_description: str = None):
93+
def deploy(self, goal: str, description: str, world_info: str, functions: list, custom_functions: list, main_heartbeat: int, reaction_heartbeat: int, tweet_usernames: list = None, templates: list = None, game_engine_model: str = "llama_3_1_405b"):
9494
"""
9595
Simulate the agent configuration
9696
"""
@@ -104,9 +104,9 @@ def deploy(self, goal: str, description: str, world_info: str, functions: list,
104104
"mainHeartbeat": main_heartbeat,
105105
"reactionHeartbeat": reaction_heartbeat,
106106
},
107-
"taskDescription": task_description
107+
"gameEngineModel": game_engine_model
108108
}
109-
109+
110110
if tweet_usernames is not None:
111111
payload["tweetUsernames"] = tweet_usernames
112112

@@ -126,3 +126,12 @@ def deploy(self, goal: str, description: str, world_info: str, functions: list,
126126
raise Exception(response.json())
127127

128128
return response.json()["data"]
129+
130+
def reset_memory(self):
131+
response = requests.get(
132+
f"{self.api_url}/reset-session", headers={"x-api-key": self.api_key})
133+
134+
if (response.status_code != 200):
135+
raise Exception("Failed to reset memory.")
136+
137+
return "Memory reset successfully."

0 commit comments

Comments
 (0)