Repository navigation
Description
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
SpawnAgenttool schema has nomodel/reasoningfields, 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
maxeffort that other parts of the product already expose), instead of limiting the workstream to built-in models/levels. - Alternatively (or additionally), the
SpawnAgenttool could accept optionalmodelandreasoningparameters 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)
- Add a custom model to
customModelsin~/.factory/settings.jsonper the BYOK docs (example: provideranthropic). - Open Factory Desktop → Workstreams → create/open a workstream.
- Open Workstream settings (gear icon) and open the orchestrator-model / agent-model pickers.
- Observe that the configured custom model is not offered for selection (reported).
- Also inspect the
SpawnAgenttool schema available to the orchestrating agent: nomodel/reasoningparameters are exposed (reported).
Happy to provide more details (exact picker behavior, screenshots) if useful. Thanks!
Activity
aveyron1799-tech commentedon Nov 5, 2026
Additional verified data point (non-sensitive fields only): a second configured BYOK entry in the same
settings.jsonis 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. thecustomModelsconfiguration itself is valid and usable outside Workstreams), but it likewise does not appear in the workstream orchestrator/agent model pickers (user-reported).