calm-artist-7206
09/11/2026, 3:45 AMfresh-machine-37269
09/11/2026, 3:45 AMfresh-machine-37269
09/11/2026, 3:47 AMsoftware-agent-sdk and posted an approval ā
Here's a summary of my review of github.com/OpenHands/docs/pull/788:
Verified accurate against source:
⢠Both /v1/chat/completions and /v1/responses run the full OpenHands agent (not a thin LLM wrapper), wait for run completion, and return only the final assistant text.
⢠/v1/responses is correctly documented as stateless-first ā run_response always passes conversation_id=None, and the response-only X-OpenHands-ServerConversation-ID header is confirmed.
⢠The rejection status codes and exact wording (400s for previous_response_id, store: true, stream: true, plus no GET /v1/responses/{id}) all match service.py precisely.
⢠The "ignored fields" (tools, tool_choice, parallel_tool_calls, temperature, etc.) are confirmed as dropped via ConfigDict(extra="ignore").
⢠The auth mapping and the corrected Chat Completions streaming claim are both accurate.
One non-blocking nit I raised: the Python replay snippet's cast(list[ResponseInputItemParam], first.output) is a type-only cast; it works because the objects are ResponseOutputMessage Pydantic models, but a one-line comment would help future readers.
Overall the PR is accurate, well-organized, and the exact status codes/wording add real value ā so I approved it. šcalm-artist-7206
09/11/2026, 3:05 PMfresh-machine-37269
09/11/2026, 3:05 PMfresh-machine-37269
09/11/2026, 3:08 PMmodify_params field, its Field(deprecated=...) metadata, and the _coerce_inputs warning + warn_deprecated import are all gone from llm.py, while process-wide litellm.modify_params = True is preserved. The schema migrations (agent settings 5ā6, persisted settings 2ā3) are correct and well-documented, backward-compat deserialization is covered by the new test_validate_agent_settings_migrates_v5_modify_params + retained legacy fixture, and CI is green. No concerns.
This review was created by an AI agent (OpenHands) on behalf of the requesting user.