Skip to content

[Feature]: Auggie ACP mode should implement Session Config Options for model selection (protocol compliance) #153

Description

@Balburdia

What would you like to be added?

Support for exposing model selection via Session Config Options in ACP mode. Currently, Auggie uses the deprecated models field in session/new responses, which modern ACP clients no longer recognize.

Auggie should return configOptions with category: "model" in session/new responses:

{
  "sessionId": "...",
  "configOptions": [
    {
      "id": "model",
      "name": "Model",
      "category": "model",
      "type": "select",
      "currentValue": "claude-sonnet-4-5",
      "options": [
        {"value": "claude-haiku-4-5", "name": "Haiku 4.5", "description": "Fast and efficient responses"},
        {"value": "claude-sonnet-4-5", "name": "Sonnet 4.5", "description": "Great for everyday tasks"},
        {"value": "claude-opus-4-7", "name": "Opus 4.7", "description": "Great for complex, multi-step agentic tasks"},
        {"value": "gpt-5-4", "name": "GPT-5.4", "description": "Token efficient for complex tasks"},
        ...
      ]
    }
  ]
}

Why is this needed?

The ACP protocol stabilized Session Config Options on February 4, 2026 (https://agentclientprotocol.com/announcements/session-config-options-stabilized) as the standard way for agents to expose session-level configuration like models, modes, and reasoning levels.

The reference TypeScript SDK removed legacy model selectors on June 2, 2026 (agentclientprotocol/typescript-sdk@fa6e302) with the message: "The model selectors have been replaced by session config options."

Impact:

  • ACP clients built on SDK v0.28.1+ (released June 2026) don't recognize the legacy models field
  • Users of modern ACP clients cannot see or select Auggie models
  • Auggie is currently out of compliance with the stable ACP protocol specification

Per the official ACP spec (https://agentclientprotocol.com/protocol/v1/session-config-options):

"Session Config Options are the preferred way to expose session-level configuration. If an Agent provides configOptions, Clients SHOULD use them instead of the modes field. Modes will be removed in a future version of the protocol."

(The same deprecation applies to the legacy models field)

Possible solution or alternatives

Recommended approach: Support both formats during a transition period for backward compatibility:

{
  "sessionId": "...",
  "modes": {
    "currentModeId": "default",
    "availableModes": [...]
  },
  "models": {
    "availableModels": [...],
    "currentModelId": ""
  },
  "configOptions": [
    {
      "id": "mode",
      "category": "mode",
      "type": "select",
      "currentValue": "default",
      "options": [...]
    },
    {
      "id": "model",
      "category": "model",
      "type": "select",
      "currentValue": "claude-sonnet-4-5",
      "options": [...]
    }
  ]
}

This allows:

  • Modern clients (SDK 0.28.1+) use configOptions
  • Older clients (SDK < 0.28) still work with legacy modes/models fields
  • Graceful migration path - legacy fields can be removed once ecosystem has caught up

Alternative workaround (current): Users can work around this by creating multiple agent configurations with hardcoded --model arguments, but this is cumbersome and defeats the purpose of dynamic model selection.

Additional context

Affected clients:

  • Any ACP client built on @agentclientprotocol/sdk v0.28.1 or later
  • Future ACP clients will increasingly expect the standard configOptions format

References:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions