Skip to content

Commit e09ccda

Browse files
committed
fix: wrap ConfigResolver reads in try/except for graceful fallback
ConfigResolver.get_bool/get_int raise SettingNotFoundError if keys are absent. Wrap both calls so _prepare_context falls back to defaults (trimming_enabled=True, tokens_override=None) instead of crashing the agent run.
1 parent ee38234 commit e09ccda

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

src/synthorg/engine/agent_engine.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -865,16 +865,23 @@ async def _prepare_context( # noqa: PLR0913
865865
trimming_enabled = True
866866
tokens_override: int | None = None
867867
if self._config_resolver is not None:
868-
trimming_enabled = await self._config_resolver.get_bool(
869-
"engine",
870-
"personality_trimming_enabled",
871-
)
872-
raw_override = await self._config_resolver.get_int(
873-
"engine",
874-
"personality_max_tokens_override",
875-
)
876-
if raw_override > 0:
877-
tokens_override = raw_override
868+
try:
869+
trimming_enabled = await self._config_resolver.get_bool(
870+
"engine",
871+
"personality_trimming_enabled",
872+
)
873+
raw_override = await self._config_resolver.get_int(
874+
"engine",
875+
"personality_max_tokens_override",
876+
)
877+
if raw_override > 0:
878+
tokens_override = raw_override
879+
except Exception:
880+
logger.warning(
881+
PROMPT_PERSONALITY_TRIMMED,
882+
msg="failed to read ENGINE settings, using defaults",
883+
exc_info=True,
884+
)
878885
system_prompt = build_system_prompt(
879886
agent=identity,
880887
task=task,

0 commit comments

Comments
 (0)