fix: parse_response가 planner 응답 버려서 플레이북 생성 실패 #245

Closed
opened 2026-02-25 01:31:20 +09:00 by agentson · 0 comments
Collaborator

문제

pre_market_planner.generate_playbook()gemini_client.decide(prompt_override=...)로 Gemini를 호출한다.

Gemini는 플레이북 JSON(market_outlook, stocks 등)을 반환하지만, parse_response()가 이를 TradeDecision으로 파싱하려다 action/confidence/rationale 키가 없으면 rationale="Missing required fields"를 반환한다.

플래너는 decision.rationale을 플레이북 JSON으로 파싱하려다 JSONDecodeError 발생 → 폴백으로 기본 RSI 시나리오 생성 → RSI 없는 해외 데이터와 매칭 실패 → 전부 HOLD.

수정

parse_response에서 키가 없을 때 rationale=raw(원본 Gemini 응답 텍스트)로 설정하면:

  • 플래너는 실제 플레이북 JSON을 decision.rationale에서 받아 파싱 성공
  • 일반 거래 결정 코드에서도 디버깅 정보가 더 풍부해짐
## 문제 `pre_market_planner.generate_playbook()`는 `gemini_client.decide(prompt_override=...)`로 Gemini를 호출한다. Gemini는 플레이북 JSON(market_outlook, stocks 등)을 반환하지만, `parse_response()`가 이를 TradeDecision으로 파싱하려다 `action`/`confidence`/`rationale` 키가 없으면 `rationale="Missing required fields"`를 반환한다. 플래너는 `decision.rationale`을 플레이북 JSON으로 파싱하려다 JSONDecodeError 발생 → 폴백으로 기본 RSI 시나리오 생성 → RSI 없는 해외 데이터와 매칭 실패 → 전부 HOLD. ## 수정 `parse_response`에서 키가 없을 때 `rationale=raw`(원본 Gemini 응답 텍스트)로 설정하면: - 플래너는 실제 플레이북 JSON을 `decision.rationale`에서 받아 파싱 성공 - 일반 거래 결정 코드에서도 디버깅 정보가 더 풍부해짐
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#245