Add all messages into context, limit output token count

This commit is contained in:
Dejvino 2026-06-28 14:07:41 +02:00
parent 277c9cfdb2
commit 0733d178d0

View File

@ -237,6 +237,7 @@ class GameEngine:
"api_key": None, "api_key": None,
"api_base": None, "api_base": None,
"temperature": 0.8, "temperature": 0.8,
"max_tokens": 300,
} }
} }
self._save_config() self._save_config()
@ -268,6 +269,10 @@ class GameEngine:
def temperature(self) -> float: def temperature(self) -> float:
return self.config.get("llm", {}).get("temperature", 0.8) return self.config.get("llm", {}).get("temperature", 0.8)
@property
def max_tokens(self) -> int:
return self.config.get("llm", {}).get("max_tokens", 512)
def _set_llm_env(self) -> None: def _set_llm_env(self) -> None:
"""Set provider-specific env vars for litellm.""" """Set provider-specific env vars for litellm."""
prefix = self.model.split("/")[0].upper() prefix = self.model.split("/")[0].upper()
@ -812,7 +817,7 @@ class GameEngine:
temperature=self.temperature, temperature=self.temperature,
stream=False, stream=False,
timeout=60, timeout=60,
max_tokens=512, max_tokens=self.max_tokens,
) )
text = response.choices[0].message.content or "" text = response.choices[0].message.content or ""
self._append_llm_log( self._append_llm_log(
@ -888,7 +893,7 @@ class GameEngine:
on_debug("tool_result", {"round": attempt, "tool": name, "result": result}) on_debug("tool_result", {"round": attempt, "tool": name, "result": result})
round_log.append(" finalize_turn ignored (mixed with get tools)") round_log.append(" finalize_turn ignored (mixed with get tools)")
debug_entries.append("\n".join(round_log)) debug_entries.append("\n".join(round_log))
messages = messages[:2] # messages = messages[:2] # keep full history across rounds so LLM can learn from prior attempts
messages.append({"role": "assistant", "content": text}) messages.append({"role": "assistant", "content": text})
messages.append({ messages.append({
"role": "user", "role": "user",
@ -928,7 +933,7 @@ class GameEngine:
) )
round_log.append(f" finalize_turn validation errors: {', '.join(errs)}") round_log.append(f" finalize_turn validation errors: {', '.join(errs)}")
debug_entries.append("\n".join(round_log)) debug_entries.append("\n".join(round_log))
messages = messages[:2] # messages = messages[:2] # keep full history across rounds so LLM can learn from prior attempts
messages.append({"role": "assistant", "content": text}) messages.append({"role": "assistant", "content": text})
messages.append({ messages.append({
"role": "user", "role": "user",
@ -990,7 +995,7 @@ class GameEngine:
round_log.append(f" {name}: OK") round_log.append(f" {name}: OK")
if on_debug: if on_debug:
on_debug("tool_result", {"round": attempt, "tool": name, "result": result}) on_debug("tool_result", {"round": attempt, "tool": name, "result": result})
messages = messages[:2] # messages = messages[:2] # keep full history across rounds so LLM can learn from prior attempts
messages.append({"role": "assistant", "content": text}) messages.append({"role": "assistant", "content": text})
messages.append({ messages.append({
"role": "user", "role": "user",
@ -1018,7 +1023,7 @@ class GameEngine:
on_debug("thought", {"round": attempt, "text": text.strip()}) on_debug("thought", {"round": attempt, "text": text.strip()})
debug_entries.append("\n".join(round_log)) debug_entries.append("\n".join(round_log))
messages = messages[:2] # messages = messages[:2] # keep full history across rounds so LLM can learn from prior attempts
messages.append({"role": "assistant", "content": text}) messages.append({"role": "assistant", "content": text})
reminder_count += 1 reminder_count += 1
if reminder_count % 3 == 0: if reminder_count % 3 == 0: