Skip to content

Workstreams: configured BYOK custom models not selectable for orchestrator/agent model; SpawnAgent lacks model/reasoning params #89

Open

Description

@aveyron1799-tech

Summary

In Factory Workstreams, the orchestrator/agent model pickers in Workstream settings (gear icon) reportedly do not offer models configured locally as BYOK custom models, so a workstream cannot be pinned to them. Additionally, the SpawnAgent tool available to the orchestrating agent exposes no model or reasoning parameters, so there is also no programmatic way to point subagents at a specific model.

I cannot tell whether this is a bug or an intentional limitation, so flagging it for triage rather than asserting either.

User-reported symptom

  • A workstream is intended to run its agents on a locally configured BYOK custom model.
  • In the workstream settings (gear icon), where the docs describe selecting the orchestrator/agent model and reasoning effort (Workstream Settings and Usage), the configured custom model does not show up and cannot be selected (as reported by the workflow user).
  • The same doc's Usage limits section says a workstream can be switched "to a model you bring yourself" (BYOK), which is exactly what we tried to do.
  • The SpawnAgent tool schema has no model/reasoning fields, so the orchestrating agent cannot direct its subagents to the custom model either.

Verified locally (evidence; non-sensitive fields only)

~/.factory/settings.json contains a valid customModels entry. Quoted with safe fields only — credentials (apiKey) and endpoint (baseUrl) values are intentionally omitted:

{
  "id": "custom:magpie/zcode/GLM-5.3-Flash",
  "model": "zcode/GLM-5.3-Flash",
  "displayName": "ZCode 5.3 Flash",
  "provider": "anthropic"
}
  • droid --version: 0.233.0
  • Factory Desktop app: 1.4.1
  • OS: macOS (Darwin 27.2.0, arm64)
  • The same custom model is in active use in regular Droid CLI sessions on this machine, i.e. the entry itself is valid and working outside of Workstreams.

Expected behavior

  • Workstream settings should list configured BYOK custom models in the orchestrator-model and agent-model pickers (labeled by their displayName), so a workstream can run on them — matching the BYOK mention in the Workstreams doc.
  • The reasoning-effort selector should allow setting the effort levels the custom model supports (e.g. the max effort that other parts of the product already expose), instead of limiting the workstream to built-in models/levels.
  • Alternatively (or additionally), the SpawnAgent tool could accept optional model and reasoning parameters so orchestrating agents can pin subagents to a specific model/reasoning combination.

Impact

Workflows that must run on a specific BYOK model cannot be configured to do so: workstreams fall back to the built-in/default model set. For setups where the model choice is a hard requirement (self-hosted/proxied models, cost control, capability reasons), this blocks using Workstreams at all.

Steps to reproduce (as reported)

  1. Add a custom model to customModels in ~/.factory/settings.json per the BYOK docs (example: provider anthropic).
  2. Open Factory Desktop → Workstreams → create/open a workstream.
  3. Open Workstream settings (gear icon) and open the orchestrator-model / agent-model pickers.
  4. Observe that the configured custom model is not offered for selection (reported).
  5. Also inspect the SpawnAgent tool schema available to the orchestrating agent: no model/reasoning parameters are exposed (reported).

Happy to provide more details (exact picker behavior, screenshots) if useful. Thanks!

Activity

  1. aveyron1799-tech commented on Nov 5, 2026

    @aveyron1799-tech
    Author

    Additional verified data point (non-sensitive fields only): a second configured BYOK entry in the same settings.json is affected in the same way.

    {
      "id": "custom:magpie/devin/swe-2",
      "model": "devin/swe-2",
      "displayName": "SWE-2",
      "provider": "generic-chat-completion-api"
    }

    This model was verified callable through the Droid CLI with reasoning effort max (i.e. the customModels configuration itself is valid and usable outside Workstreams), but it likewise does not appear in the workstream orchestrator/agent model pickers (user-reported).

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

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