Fix: gemini_client.decide() ignores prompt_override from pre_market_planner #143

Closed
opened 2026-02-18 02:00:44 +09:00 by agentson · 0 comments
Collaborator

문제

pre_market_planner.py에서 Playbook 생성 시 market_data["prompt_override"]에 전용 프롬프트를 넣어 gemini.decide()를 호출하지만, decide() 메서드는 이 키를 전혀 확인하지 않고 항상 일반 트레이드 결정 프롬프트를 생성함.

증상

  • Playbook generation 시 JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  • Gemini가 Playbook JSON 대신 일반 트레이드 결정({"action":"HOLD",...})을 반환
  • _parse_response(decision.rationale)에서 rationale 문자열을 JSON으로 파싱하려다 실패
  • 모든 시장에서 defensive playbook으로 폴백

근본 원인

src/brain/gemini_client.py:413-417에서 prompt_override를 확인하지 않음:

if self._enable_optimization:
    prompt = self._optimizer.build_compressed_prompt(market_data)
else:
    prompt = await self.build_prompt(market_data, news_sentiment)

수정

prompt_override가 있으면 해당 프롬프트를 직접 사용하도록 변경.

## 문제 `pre_market_planner.py`에서 Playbook 생성 시 `market_data["prompt_override"]`에 전용 프롬프트를 넣어 `gemini.decide()`를 호출하지만, `decide()` 메서드는 이 키를 전혀 확인하지 않고 항상 일반 트레이드 결정 프롬프트를 생성함. ## 증상 - Playbook generation 시 `JSONDecodeError: Expecting value: line 1 column 1 (char 0)` - Gemini가 Playbook JSON 대신 일반 트레이드 결정(`{"action":"HOLD",...}`)을 반환 - `_parse_response(decision.rationale)`에서 rationale 문자열을 JSON으로 파싱하려다 실패 - 모든 시장에서 defensive playbook으로 폴백 ## 근본 원인 `src/brain/gemini_client.py:413-417`에서 `prompt_override`를 확인하지 않음: ```python if self._enable_optimization: prompt = self._optimizer.build_compressed_prompt(market_data) else: prompt = await self.build_prompt(market_data, news_sentiment) ``` ## 수정 `prompt_override`가 있으면 해당 프롬프트를 직접 사용하도록 변경.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#143