fix(catalog): default openai to gpt-5.5 (matches bundle's extended_thinking=true)#20
Merged
Merged
Conversation
…inking=true) The bundle defaults extended_thinking: true on every turn, which triggers the provider to inject reasoning.effort: 'high' on the OpenAI request. The old catalog default (gpt-4o) doesn't support reasoning, causing an OpenAI 400 error immediately on every chat turn. This fix aligns the catalog's model selection with the bundle's expectations: gpt-5.5 is reasoning-capable and matches the extended_thinking parameter the bundle requests. Consumers can override via bundle config if needed. Note: The architecturally correct long-term fix belongs in the OpenAI provider (gate the extended_thinking → reasoning.effort injection on model capability). This PR is the immediate unblock for amplifier-agent users while that fix propagates. Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
3fe1fb4 to
e738c74
Compare
manojp99
pushed a commit
to manojp99/amplifier-app-nanoclaw
that referenced
this pull request
May 28, 2026
…3.0 (protocol 0.2.0) Adopt the engine + wrapper coordinated fix from amplifier-agent PR #17 (protocol 0.2.0, path-based MCP config delivery) and the catalog fix from PR #20 (openai default_model gpt-5.5 to match the bundle's extended_thinking=true default). Engine pin: AMPLIFIER_AGENT_REF=engine-v0.3.0 in container/Dockerfile. The tag was moved to PR #20's merge commit so a rebuild pulls the catalog fix without needing a separate engine version bump. Layer-cache busting during rebuild required --no-cache (or BuildKit --no-cache-filter). A persistent CACHEBUST arg for the Dockerfile is a separate follow-up. Wrapper bump: amplifier-agent-ts 0.3.1 -> 0.4.0 (published with provenance via OIDC trusted publishing on the wrapper-v0.4.0 tag). Host + agent-runner code: drops the workarounds we'd been carrying for the engine's MCP plumbing bugs. The engine now handles --mcp-config-path end-to-end (validates the path, sets AMPLIFIER_MCP_CONFIG, lets the tool-mcp module discover via its documented config priority). The host-side bridge no longer needs to compensate. Verified end-to-end inside the rebuilt container: - amplifier-agent run --provider openai -y "..." returns a real reply through gpt-5.5 with extended_thinking=true flowing cleanly through loop-streaming -> provider-openai -> OpenAI API. - Engine envelope parseable on stdout, protocolVersion=0.2.0, metadata block present. Refs: - microsoft/amplifier-agent#17 (engine + wrapper Path D) - microsoft/amplifier-agent#18 (smoke test fix) - microsoft/amplifier-agent#19 (vitest timeout fix) - microsoft/amplifier-agent#20 (catalog gpt-5.5 default) - engine tag: engine-v0.3.0 -> commit 2bd951f - wrapper tag: wrapper-v0.4.0 -> commit 53f99bb Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
manojp99
added a commit
that referenced
this pull request
May 28, 2026
… wrappers (#21) * docs(readme): align with Mode A pivot, protocol 0.2.0, and shipped L3 wrappers This README was significantly out of date with recent changes: - PR #8 (Mode A pivot): Replaced stdio JSON-RPC wire protocol with subprocess driver model (argv in / JSON envelope out). README still documented Mode B (--stdio flag, agent/initialize JSON-RPC methods) as primary interface. - PR #17: Bumped protocol version 0.1.0 → 0.2.0, changed --mcp-servers (inline JSON) to --mcp-config-path (file path) for MCP config delivery. Neither reflected in README. - PR #20: Changed OpenAI default from gpt-4 to gpt-5.5 (matches extended_thinking=true in bundle). README used outdated default. - PR #7: TypeScript wrapper shipped at 0.4.0 on npm, Python wrapper shipped in wrappers/python/. README claimed L3 wrappers were 'designed, implementation next'. Applied 10 targeted corrections across README: 1. 'What it is' section — removed Mode B bullet, fixed lifecycle 2. 'Why' section — removed JSON-RPC-mirrors-MCP claim 3. 'Quick start' — removed --stdio example, pointed at wrapper SDKs 4. 'Modes' table — collapsed to Mode A only, added historical design-doc note 5. 'Admin commands' — added missing 'prepare' and 'verify' commands 6. 'Approval flow' — removed unimplemented 'c' response, removed stdio paragraph 7. 'Embedding in Python' — replaced broken classmethod example with correct constructor and instance method usage 8. 'Architecture diagram' — updated arrow label to reflect Mode A transport 9. 'Wire protocol' section — replaced Mode B docs with Mode A (0.2.0 argv flags, JSON envelope schema, stdout/stderr split) 10. 'Status' — updated from 'Phase 1, L3 next' to shipped state (0.3.0 engine, 0.4.0 TS wrapper, Python wrapper, 0.2.0 protocol, conformance suite, path-based MCP) with next steps (L2 host adapters, container packaging). Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> * docs(readme): add TypeScript SDK section and fix git+URL install command - Added "TypeScript / Node.js SDK" section documenting the shipped npm package (amplifier-agent-ts@0.4.0) with install command, quick-start example, Node ≥ 20 requirement, and pointers to full README and type definitions. - Fixed broken Python install commands: replaced bare PyPI references (uv tool install / pipx install) with git+URL form pinned to engine-v0.3.0. Package is not yet published to PyPI; this fixes the broken install path demonstrated by user feedback. Added explanatory note about separate engine vs wrapper version tagging (engine-v0.3.0 vs wrapper-v0.4.0). Both gaps were identified during PR #21 review: TypeScript SDK was effectively undocumented for consumers despite npm publication, and Python install was impossible without the git+URL form. Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> * docs(readme): replace registry install with from-source instructions The Python engine hasn't been published to any registry. Removed all registry-style install commands (uv tool install amplifier-agent, pipx install amplifier-agent, and git+URL forms with PEP 508 specs) as they were misleading. From-source install via git clone + uv tool install -e . is now the only documented path. Added note that engine and wrapper releases are tagged separately (engine-v0.3.0 vs wrapper-v0.4.0) so users can git checkout <tag> before installing if they want a pinned version. This does not affect the TypeScript section — amplifier-agent-ts is published to npm and npm install amplifier-agent-ts is correct. 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> * docs(readme): use uv tool install with bare git+URL (no registry needed) uv tool install works fine with a raw git+https://... argument; no PEP 508 name @ url wrapper, no registry, no separate clone+sync step. Pinning supported via @<tag>. From-source editable install retained as a contributor note. Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> --------- Co-authored-by: Manoj Prabhakar Paidiparthy <mpaidiparthy@microsoft.com> Co-authored-by: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
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.
Why
amplifier-agentships with a self-contradiction in its own defaults:src/amplifier_agent_lib/bundle/bundle.md:26extended_thinking: trueon every turnsrc/amplifier_agent_cli/provider_sources.py:63openai→default_model: "gpt-4o"amplifier-module-loop-streaming:423-424extended_thinkingas a provider kwarg verbatimamplifier-module-provider-openai:1243-1252reasoning.effort: "high"on any request carryingextended_thinking=True, with zero model-capability gateResult with a fresh
amplifier-agent run --provider openai:OpenAI 400 on every turn out of the box. The bundle asks for reasoning, the catalog picks a non-reasoning model.
Fix
Switch the catalog's OpenAI
default_modelfromgpt-4o(non-reasoning) togpt-5.5(reasoning-capable). amplifier-agent's defaults are now internally consistent — the bundle requestsextended_thinking, the catalog ships a model that supports the resultingreasoning.effortparameter.The fix is one line in
src/amplifier_agent_cli/provider_sources.py:63, plus an inline comment explaining why this specific model was chosen.Why gpt-5.5 specifically
reasoning.effortparameter the bundle'sextended_thinking: trueultimately triggers/v1/modelslisting confirms presence on enterprise keys)gpt-5.5family (seeamplifier-module-provider-openai:118-148forgpt-5.5-provalidator), so behavior is known and testedgpt-5.5-profor the common case while still reasoning-capableConsumers who want a different OpenAI model can override via bundle config — this is a default, not a constraint.
What this is NOT
This is not the architecturally correct long-term fix. That belongs in
amplifier-module-provider-openai:1243-1252— gate theextended_thinking → reasoning.effortinjection on_model_may_reason(model_name), mirroring the discipline already present at lines 1239-1242. That fix closes the bug for every consumer (amplifier-agent, amplifier-app-cli, openclaw, anything else using the provider) regardless of which model they default to. It will be filed against that repo as a separate PR.This PR is the immediate-unblock so amplifier-agent users get a working OpenAI default now, without waiting for the provider fix to merge + propagate.
What needs to rebuild downstream
amplifier-agent-ts(wrapper)pyproject.tomlengine versionengine-v0.3.0; the tag will be moved to this merge commitbundle.md)bundle.versionDockerfileAMPLIFIER_AGENT_REFengine-v0.3.0); image rebuild picks up the moved tag's new SHAVerification
Build + manual
amplifier-agent run --provider openai -y "hi"in the rebuilt nanoclaw container will exercise the new default. Expected: bundle sendsextended_thinking=true, provider injectsreasoning.effort: "high", OpenAI accepts the request againstgpt-5.5, model returns a reply.