fix(acp): support agent-client-protocol v0.9.0 schema changes - #2700
Merged
Mason Daugherty (mdrxy) merged 6 commits intoApr 17, 2026
Merged
Conversation
agent-client-protocol v0.9.0 upgraded to ACP schema v0.11.2 which removed the SessionConfigOption wrapper type. Config options are now bare SessionConfigOptionSelect/SessionConfigOptionBoolean instances. Use a conditional import to support both >=0.8.0 (with wrapper) and >=0.9.0 (without wrapper) so existing installs keep working while new installs resolve correctly. Fixes langchain-ai#2678
ethan (ethan6188)
requested a review
from Jacob Lee (jacoblee93)
as a code owner
April 13, 2026 05:02
Contributor
|
Oof, thank you for this! |
Jacob Lee (jacoblee93)
approved these changes
Apr 13, 2026
Contributor
|
Doing this until we fix our CI restrictions: |
Contributor
Author
|
fine~ |
james8814
pushed a commit
to james8814/deepagents
that referenced
this pull request
May 1, 2026
…chain-ai#2700) Fixes langchain-ai#2678 `agent-client-protocol` v0.9.0 upgraded the ACP schema from v0.10.8 to v0.11.2 ([agentclientprotocol/python-sdk#80](agentclientprotocol/python-sdk#80)), which removed the `SessionConfigOption` wrapper type. Config options are now bare `SessionConfigOptionSelect` / `SessionConfigOptionBoolean` instances. Since `deepagents-acp` pins `agent-client-protocol>=0.8.0` with no upper bound, new installs resolve to v0.9.0 and hit `ImportError: cannot import name 'SessionConfigOption' from 'acp.schema'` at startup. Uses a conditional import to support both v0.8.x (with `SessionConfigOption` wrapper) and v0.9.0+ (without wrapper). When the wrapper is available, config options are constructed as `SessionConfigOption(root=SessionConfigOptionSelect(...))`; when absent, they are bare `SessionConfigOptionSelect(...)` instances. All 76 existing ACP tests pass. ``` $ pytest tests/ -v ======================== 76 passed, 1 warning in 3.31s ========================= ``` > This contribution was developed with AI assistance (Cursor). --------- Co-authored-by: shengyi <shengyi.tang@shopee.com> Co-authored-by: Jacob Lee <jacoblee93@gmail.com> Co-authored-by: Vivek Trivedy <vivek.trivedy@langchain.dev>
james8814
pushed a commit
to james8814/deepagents
that referenced
this pull request
May 1, 2026
…-ai#2813) Restore test coverage for the ACP config-option wrapper compat added in langchain-ai#2700. When langchain-ai#2811 unbound `agent-client-protocol` to v0.9.0 (which dropped the `SessionConfigOption` wrapper), every `.root.<attr>` assertion in `test_model_switching.py` started raising `AttributeError` on `main`.
Marcelo5444
pushed a commit
to Marcelo5444/deepagents
that referenced
this pull request
Jul 30, 2026
…chain-ai#2700) Fixes langchain-ai#2678 `agent-client-protocol` v0.9.0 upgraded the ACP schema from v0.10.8 to v0.11.2 ([agentclientprotocol/python-sdk#80](agentclientprotocol/python-sdk#80)), which removed the `SessionConfigOption` wrapper type. Config options are now bare `SessionConfigOptionSelect` / `SessionConfigOptionBoolean` instances. Since `deepagents-acp` pins `agent-client-protocol>=0.8.0` with no upper bound, new installs resolve to v0.9.0 and hit `ImportError: cannot import name 'SessionConfigOption' from 'acp.schema'` at startup. Uses a conditional import to support both v0.8.x (with `SessionConfigOption` wrapper) and v0.9.0+ (without wrapper). When the wrapper is available, config options are constructed as `SessionConfigOption(root=SessionConfigOptionSelect(...))`; when absent, they are bare `SessionConfigOptionSelect(...)` instances. All 76 existing ACP tests pass. ``` $ pytest tests/ -v ======================== 76 passed, 1 warning in 3.31s ========================= ``` > This contribution was developed with AI assistance (Cursor). --------- Co-authored-by: shengyi <shengyi.tang@shopee.com> Co-authored-by: Jacob Lee <jacoblee93@gmail.com> Co-authored-by: Vivek Trivedy <vivek.trivedy@langchain.dev>
Marcelo5444
pushed a commit
to Marcelo5444/deepagents
that referenced
this pull request
Jul 30, 2026
…-ai#2813) Restore test coverage for the ACP config-option wrapper compat added in langchain-ai#2700. When langchain-ai#2811 unbound `agent-client-protocol` to v0.9.0 (which dropped the `SessionConfigOption` wrapper), every `.root.<attr>` assertion in `test_model_switching.py` started raising `AttributeError` on `main`.
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.
Fixes #2678
agent-client-protocolv0.9.0 upgraded the ACP schema from v0.10.8 to v0.11.2 (agentclientprotocol/python-sdk#80), which removed theSessionConfigOptionwrapper type. Config options are now bareSessionConfigOptionSelect/SessionConfigOptionBooleaninstances. Sincedeepagents-acppinsagent-client-protocol>=0.8.0with no upper bound, new installs resolve to v0.9.0 and hitImportError: cannot import name 'SessionConfigOption' from 'acp.schema'at startup.Uses a conditional import to support both v0.8.x (with
SessionConfigOptionwrapper) and v0.9.0+ (without wrapper). When the wrapper is available, config options are constructed asSessionConfigOption(root=SessionConfigOptionSelect(...)); when absent, they are bareSessionConfigOptionSelect(...)instances.All 76 existing ACP tests pass.