Skip to content

fix: translate Vertex Claude structured output - #351

Merged
eshulman2 merged 2 commits into
forge-sdlc:mainfrom
JoshSalomon:codex/aisos-2485-vertex-structured-output
Oct 4, 2026
Merged

eshulman2 merged 2 commits into
forge-sdlc:mainfrom
JoshSalomon:codex/aisos-2485-vertex-structured-output

Conversation

@JoshSalomon

@JoshSalomon JoshSalomon commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Together with PR #352, this PR closes the AISOS-2535 feature.

Vertex Claude task-generation graphs currently fail before an HTTP request because LangChain's provider strategy passes response_format and binding-wide strict to the Anthropic Vertex SDK. This PR translates the native JSON schema to output_config.format while leaving ordinary tools non-strict. Explicit strict tools retain their opt-in only when schema adaptation preserves their accepted argument shapes, including nested union branches.

The adapter rejects truncated or refused responses even if their text happens to be valid JSON. Forge falls back to validated tool output only for an explicit provider error saying native output is unsupported for the model; transient Vertex failures retry the native strategy, while schema, policy, and SDK errors remain visible. The Anthropic dependency floor is raised to 0.77.0, the first locally verified version with the required output_config API.

Validation: 69 focused Vertex/agent tests passed with -W error, including a real LangChain graph over mocked HTTP; Ruff and targeted mypy passed, and the lockfile check passed. In a separate worktree containing this PR plus the independent recursion PR, the complete Python 3.12 host suite passed: 3,657 passed, 25 skipped, zero failures or warnings, with Redis tests against a disposable local Redis Stack container.

Live provider acceptance, deployment, and AISOS-2485 recovery remain separate release gates.

@JoshSalomon
JoshSalomon marked this pull request as ready for review October 1, 2026 13:50
@eshulman2
eshulman2 merged commit b85a367 into forge-sdlc:main Oct 4, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants