Skip to content

RLM child model selection fails for all non-parent models under subscription OAuth; rlm.find_models returns empty #740

Description

@jonaowen

Summary

With a ChatGPT Plus/Pro (Codex Subscription) OAuth login as the only credential, RLM child agents can only inherit the parent session's model. Explicit model= selection fails admission for every model other than the parent's, and rlm.find_models returns [] for all queries — even though prime-agent model list shows the full openai-codex catalog and direct one-shot runs on those same models work fine.

Environment

  • prime-agent 0.7.0 (stable channel), installed via npm tarball
  • Windows 11 (Git Bash present at the documented path), Node v24.13.0
  • Kernel via PRIME_AGENT_KERNEL_PYTHON pointing at a Python 3.11 venv (ipykernel + prime-agent-runtime), bootstrapped per docs
  • Auth: /login → ChatGPT Plus/Pro (Codex Subscription) OAuth only; no API keys in env or auth.json

Repro

  1. prime-agent model list → shows openai-codex/gpt-5.6-sol, gpt-5.6-luna, gpt-5.5, etc.
  2. Direct one-shots work on any of them, e.g. prime-agent -p --no-session --provider openai-codex --model gpt-5.6-luna "Reply OK" → OK.
  3. Inside a session (parent model openai-codex/gpt-5.6-sol), in IPython:
    • await rlm.find_models("gpt", limit=20)[] (same for "", "luna", etc.)
    • await rlm("Reply DONE", name="p1", model="openai-codex/gpt-5.6-sol")succeeds (parent model)
    • await rlm("Reply DONE", name="p2", model="openai-codex/gpt-5.5")RuntimeError: Requested subagent model "openai-codex/gpt-5.5" is unavailable, unauthenticated, or expired
    • await rlm("Reply DONE", name="p3", model="openai-codex/gpt-5.6-luna") → same error

Expected

rlm.find_models surfaces models available under the active subscription credential, and explicit child model= admission succeeds for any model that same credential demonstrably serves (per the working one-shots).

Observed

RLM-side model discovery is empty and admission rejects all non-parent models. Behavior is identical in fresh -p --no-session runs, in long-running daemon sessions, and after a worker stop/resume, so it does not appear to be stale session state. Docs (rlm-runtime.md) say model search is "bounded to active, non-expired credentials" — subscription OAuth credentials appear to be excluded from that bound on the RLM path while working everywhere else.

Impact

Mixed-tier delegation (e.g. cheap gpt-5.6-luna children for mechanical work under a gpt-5.6-sol parent) is impossible for subscription-auth users; children silently only ever run the parent model. Current workaround: shell out to prime-agent -p --provider openai-codex --model gpt-5.6-luna one-shots from the kernel.

Metadata

Metadata

Assignees

No one assigned

    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