Skip to content

orchestration worker-start: accept --model (and --effort) for the pi and devin agents #26971

Open

Description

@Gabrielgvl

Summary

orca orchestration worker-start --agent pi --model <id> and --agent devin --model <id> are refused, although both CLIs accept a model at launch. Please add pi and devin entries to the agent session-option catalog, as #24796 did for OMP and #24624 / #24768 did for OpenCode.

Observed (Orca 1.4.221, Linux; pi 1.1.0; devin 3000.11.3)

$ orca orchestration worker-start --agent pi --model openai-codex/gpt-6-luna --effort low --task <task> --worktree new-child ...
Agent pi does not support launch-time model selection. Omit --model to run the model from its own config.

$ orca orchestration worker-start --agent devin --model swe-2-medium --effort low --task <task> --worktree new-child ...
Agent devin does not support launch-time model selection. Omit --model to run the model from its own config.

Without --model, every worker runs the machine-wide default (pi: defaultModel / defaultThinkingLevel in ~/.pi/agent/settings.json; devin: agent.model in ~/.config/devin/config.json), and the receipt reports launch.effective.model = null. Rewriting those global files before each dispatch races with other coordinators on the same machine (the same concern as #19980 and #22896).

Launch flags the agents already accept

  • pi: --model <provider/id> (optional :<thinking> suffix) and --thinking <off|minimal|low|medium|high|xhigh|max>. Model discovery: pi --list-models.
  • devin: --model <id>. Effort is part of the model id (swe-2-medium / swe-2-high / swe-2-max, claude-fable-5-1-low|medium|high, …). Model discovery: devin models list. A model-only entry, like OMP's, would cover it.

Evidence that the agents honour the flags under Orca supervision

On 1.4.221 we started each agent with the flag in an Orca terminal (orca terminal create --command "pi --model openai-codex/gpt-6-luna --thinking medium", and devin --model swe-2-medium), then bound a supervised worker to it with worker-start --terminal. pi ran gpt-6-luna • medium (its default is gpt-6.1-sol • low), and devin ran SWE-2 Medium (its default is Max). Both received the task and sent worker_done.

We would rather not rely on that path: it skips Orca's managed agent-first launch (for example, devin's first-run workspace trust prompt, #15860) and leaves launch.effective null.

Prior art

Expected

  • worker-start --agent pi --model X --effort Y launches pi --model X --thinking Y.
  • worker-start --agent devin --model X launches devin --model X.
  • The receipt's launch.effective reports the applied model and effort.

Activity

  1. AmethystLiang commented on Oct 12, 2026

    @AmethystLiang
    Contributor

    Thanks for reporting. Looking into it

  2. yoyofreeman commented on Oct 13, 2026

    @yoyofreeman

    Independent corroboration on a separate host (Orca 1.4.224, pi 1.1.0, Linux).

    orca-ide orchestration worker-start --agent pi --model <provider/id> ... is still refused in 1.4.224:

    Agent pi does not support launch-time model selection. Omit --model to run the model from its own config.
    

    Our coordinator dispatches each worker on a per-task model (a free gateway group), and the global-config race you describe is real for us too: several pi sessions share one machine, so rewriting ~/.pi/agent/settings.json before each dispatch is not viable.

    Workaround we run today (same shape as the issue): create the terminal with the flag, then bind the supervised worker to it:

    orca-ide terminal create --command "pi --model litellm/<group>"
    orca-ide orchestration worker-start --terminal <handle> ...
    

    It works, but as you note it leaves launch.effective.model null and skips the managed agent-first launch. A model-only catalog entry for pi (like OMP's) would let us drop the workaround.

  3. TomSpoct commented on Oct 23, 2026

    @TomSpoct

    Same refusal on the worktree/agent-launch path, Windows host:

    $ orca --version
    1.4.237 (win32)
    $ pi --version
    1.4.0
    
    $ orca worktree create --repo id:<rid> --name <task> --agent pi \
        --model "openai-codex/gpt-6.1-sol:medium" --prompt "..." --json
      "code": "invalid_argument",
      "message": "Agent pi does not support launch-time model selection. Omit --model to run the model from its own config."
    

    Use case: using Orca as the coordinator for implementation handoffs. Two constraints collide right now:

    1. The pi agent carries the operator's failover machinery (subscription rotation across accounts), but worktree create --agent pi resolves the model from pi's own config, so the coordinator can't pin the model the task needs.
    2. --agent codex --model <id> --effort <level> works and guarantees the model, but drops pi's failover entirely — the worker dies on one account's exhaustion instead of rotating.

    So the practical workaround today forces a choice between "wrong model" and "no failover".

    Since pi's --model already accepts a full reference with an optional thinking suffix (provider/id:medium), the mapping for this agent could be: --model → --model provider/id, --effort → the :level suffix (or pi's --thinking flag, if that's cleaner than suffix parsing in the launcher).

  4. floriandotorg commented on Oct 30, 2026

    @floriandotorg

    Would be so nice to fix this, it blocks using cheap subagents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions