Conversation
📝 WalkthroughWalkthrough세 개의 파일에서 LLM 스트리밍 동작을 수정했습니다. 두 내부 노드(Problem Splitter, Review)에 Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
src/agents/workflows/review_logic.py (1)
228-230: 디버그logger호출로 교체하는 것이 권장됩니다.Lines 228–230(
run_review)과 Lines 270–272(run_suggestion)의 rawprint()는 로그 레벨 제어 및 구조화 로깅을 우회합니다. 주석의 "로그 찍어보기기" 오타(기기)도 개발용 임시 코드임을 보여줍니다.♻️ 제안하는 변경
- `#모델` 호출 로그 찍어보기기 - print( - f"---REVIEW: MODEL={MODEL_NAME} openrouter_key_set={bool(settings.OPENROUTER_API_KEY)}---" - ) + logger.debug( + "REVIEW: MODEL=%s openrouter_key_set=%s", MODEL_NAME, bool(settings.OPENROUTER_API_KEY) + )
run_suggestion상단의 동일한 패턴도 같은 방식으로 교체하면 됩니다.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/agents/workflows/review_logic.py` around lines 228 - 230, Replace the raw print statements in run_review and run_suggestion with structured logger calls: instead of print(f"---REVIEW: MODEL={MODEL_NAME} openrouter_key_set={bool(settings.OPENROUTER_API_KEY)}---") use the module/class logger (e.g., logger.info or logger.debug) to emit the same message and remove the "로그 찍어보기기" typo; reference MODEL_NAME and settings.OPENROUTER_API_KEY in the log message and ensure message level is appropriate for debug output so logging configuration can control it.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/agents/workflows/problem_splitter.py`:
- Line 120: Update the model instantiation inside the simple_response function
to include the skip_stream tag: locate the
get_model(OpenRouterModelName.GPT_5_MINI) call in simple_response (in
maingraph.py) and chain .with_config(tags=["skip_stream"]) so the internal
routing node disables streaming the same way as problem_splitter's model
variable.
---
Nitpick comments:
In `@src/agents/workflows/review_logic.py`:
- Around line 228-230: Replace the raw print statements in run_review and
run_suggestion with structured logger calls: instead of print(f"---REVIEW:
MODEL={MODEL_NAME} openrouter_key_set={bool(settings.OPENROUTER_API_KEY)}---")
use the module/class logger (e.g., logger.info or logger.debug) to emit the same
message and remove the "로그 찍어보기기" typo; reference MODEL_NAME and
settings.OPENROUTER_API_KEY in the log message and ensure message level is
appropriate for debug output so logging configuration can control it.
|
|
||
| try: | ||
| model = get_model(OpenRouterModelName.GPT_5_MINI) | ||
| model = get_model(OpenRouterModelName.GPT_5_MINI).with_config(tags=["skip_stream"]) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's examine the file structure and the specific line mentioned
wc -l src/agents/workflows/problem_splitter.pyRepository: Team-Proovy/Proovy-ai
Length of output: 109
🏁 Script executed:
# View the context around line 120
sed -n '110,130p' src/agents/workflows/problem_splitter.pyRepository: Team-Proovy/Proovy-ai
Length of output: 729
🏁 Script executed:
# Run the verification script to find all get_model calls and their skip_stream status
rg -n "get_model\b" --type py -A 3Repository: Team-Proovy/Proovy-ai
Length of output: 5848
🏁 Script executed:
# View context around maingraph.py:244 to understand the function and determine if skip_stream is needed
sed -n '235,260p' src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 1093
🏁 Script executed:
# Also check the function name and purpose to confirm if this is an internal node
sed -n '220,250p' src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 1219
🏁 Script executed:
# Find the function definition that contains the get_model call at line 244
sed -n '200,245p' src/agents/workflows/maingraph.py | grep -n "def "Repository: Team-Proovy/Proovy-ai
Length of output: 47
🏁 Script executed:
# Get a clearer view of the function definition
sed -n '200,220p' src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 736
🏁 Script executed:
# Find the function that contains line 244
sed -n '180,245p' src/agents/workflows/maingraph.py | head -40Repository: Team-Proovy/Proovy-ai
Length of output: 1352
🏁 Script executed:
# Let's also look for all function definitions in maingraph.py to identify the function at line 244
rg -n "^def " src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 687
🏁 Script executed:
# Check the final_response function to understand the node type better
rg -n "def final_response" src/agents/workflows/maingraph.py -A 20Repository: Team-Proovy/Proovy-ai
Length of output: 47
🏁 Script executed:
# Also check what nodes are marked as public-facing by examining the graph structure
rg -n "add_node\|add_edge" src/agents/workflows/maingraph.py | head -20Repository: Team-Proovy/Proovy-ai
Length of output: 47
🏁 Script executed:
# Let's look at the entire maingraph.py file structure to find graph definition and node additions
rg -n "graph\." src/agents/workflows/maingraph.py | head -30Repository: Team-Proovy/Proovy-ai
Length of output: 111
🏁 Script executed:
# Also check the imports to see where final_response is imported from
head -50 src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 1507
🏁 Script executed:
# Check if simple_response is added to the graph and what nodes are in the graph
rg -n "simple_response\|add_node.*simple" src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 47
🏁 Script executed:
# Look at the end of maingraph.py to see the graph structure and which nodes are public-facing
tail -100 src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 2662
🏁 Script executed:
# Confirm simple_response is an internal workflow node by checking complete function
sed -n '198,261p' src/agents/workflows/maingraph.pyRepository: Team-Proovy/Proovy-ai
Length of output: 2253
문제_분할기의 skip_stream 태그는 올바르게 추가되었으나, 메인그래프의 simple_response 함수에서 누락되었습니다.
이슈 #112에 따라 skip_stream이 누락된 모든 내부 노드를 업데이트해야 합니다. 현재 PR의 문제_분할기 변경은 정확하지만, 다음 위치에서 누락이 발견되었습니다:
- src/agents/workflows/maingraph.py, 244줄:
simple_response함수의get_model(OpenRouterModelName.GPT_5_MINI)호출에skip_stream태그가 없습니다. 이 함수는 내부 라우팅 노드이므로 스트리밍을 비활성화해야 합니다.
model = get_model(OpenRouterModelName.GPT_5_MINI).with_config(tags=["skip_stream"])로 수정하세요.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/agents/workflows/problem_splitter.py` at line 120, Update the model
instantiation inside the simple_response function to include the skip_stream
tag: locate the get_model(OpenRouterModelName.GPT_5_MINI) call in
simple_response (in maingraph.py) and chain .with_config(tags=["skip_stream"])
so the internal routing node disables streaming the same way as
problem_splitter's model variable.
📌 관련 이슈
🏷️ PR 타입
📝 작업 내용
skip_stream설정 추가📸 스크린샷
이 문제를 해결했습니다 ㅇㅇ
✅ 체크리스트
📎 기타 참고사항
Summary by CodeRabbit
릴리스 노트