[gpt-oss] Parse output msgs refactor#4
Draft
daniel-salib wants to merge 1 commit into
Draft
Conversation
Signed-off-by: Daniel Salib <danielsalib@meta.com>
018a2e3 to
fe1253e
Compare
qandrew
reviewed
Nov 18, 2025
| ) | ||
|
|
||
|
|
||
| def parse_output_message(message: Message) -> list[ResponseOutputItem]: |
There was a problem hiding this comment.
thanks for putting this together! One thing to keep in mind for the future is that MCP tool calls are constructed from two harmony messages as it's both an reasoning item and tool out right now, when we implement that we can build off of this PR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Refactor
parse_output_messagefunction invllm/entrypoints/harmony_utils.pyto improve codemaintainability and readability. The function was
becoming too complex with multiple nested conditional
branches for handling browser tools, function calls,
MCP calls, and message parsing.
This PR extracts the logic into focused
sub-functions:
_parse_browser_tool_call()- Handles browser toolcalls with JSON parsing
_parse_function_call()- Handles function calls_parse_mcp_call()- Handles MCP calls_parse_reasoning_content()- Handlesreasoning/analysis content
_parse_final_message()- Handles final messageoutput
No functional changes - purely a code organization
improvement.
Test Plan
Run existing tests to ensure no behavioral chang