- Which coding agents work with genmux?
- Anything that talks to an OpenAI-compatible chat completions endpoint: OpenCode, Aider, Cline, Roo Code and Continue are configured and tested above, and plain OpenAI SDK loops work the same way. Claude Code and Codex CLI use different APIs (Anthropic Messages and OpenAI Responses) that are not served yet — coming soon.
- Which models support tool calling?
- The text models flagged tools: true in GET /v1/models — the live table above lists the current set, with qwen3.8-max and the Doubao Seed 2 models among them. A tools request to any other model returns 400 tools_unsupported instead of silently dropping the tools.
- Is tool calling native or emulated?
- Emulated by genmux. The upstream gateway drops the tools field, so the API renders your tool definitions into the system prompt and parses the model's reply back into standard OpenAI tool_calls — incrementally for streams. To your client it looks exactly like OpenAI: the same request fields, the same response shape, finish_reason tool_calls.
- How reliable is it in practice?
- On our 20-task agent benchmark, the currently-listed models score between 18/20 and 20/20 — Doubao Seed 2 Pro 19/20 and Doubao Seed 2 Code 18/20 in the last run. The failures were the model ignoring a forced tool_choice or writing pseudo-XML once, never a parsing error. We re-run the set before every release and a model keeps its tools flag only above 90 %.
- How much does an agent session cost?
- Per million tokens at the model's input and output rates — the table above shows both, live from the catalogue. Agents resend the whole conversation with every step, so the input side dominates; the rendered tool definitions add about 40 prompt tokens per tool plus the size of the schema (OpenCode's ~20 tools are roughly 1.5K tokens per request). The usage block of every response carries the exact cost.
- Which model should I start with?
- qwen3.8-max: capable, tool-ready and a good default for most agent work. Move to Doubao Seed 2 Code for code-heavy sessions, or try another model in the table above when a task needs more reasoning. Switching is one field in the config; the key and the balance stay the same.
- Do streaming tool calls work?
- Yes. With stream: true the tool call arrives as delta.tool_calls chunks — id and name first, then the arguments in fragments — and the final chunk has finish_reason tool_calls, exactly the shape the OpenAI SDKs and the agents assemble. The usage chunk with the cost follows as usual.
- What happens when my agent sends max_tokens: 32000?
- The value is clamped to the model's max_output_tokens instead of being rejected — most agents send a large number for every model. The reservation is made for min(max_tokens, default_max_tokens) output tokens, 8192 on the tool models, and settled to the actual usage.
- Can I get structured JSON instead of tool calls?
- Yes. response_format with json_object or json_schema ({name, schema}) instructs the model and validates the non-streamed reply against the schema (JSON Schema 2020-12). A failed validation triggers one automatic retry with the error fed back; a second failure is 502 json_invalid and both attempts are billed. Streams are not validated, and response_format cannot be combined with tools.
- Are errors in the OpenAI format?
- On the chat route, yes: {"error": {"message", "type", "code", "param", "request_id"}} with the OpenAI types (invalid_request_error, authentication_error, rate_limit_error, insufficient_quota, server_error, …), so the retry and back-off logic built into the SDKs and the agents behaves as it does against OpenAI. The other routes keep RFC 7807 problem+json.
- Do you store the code my agent sends?
- No. The generation record keeps a preview of the last user message (up to 200 characters), a hash, the message count, the token counts and the cost. Tool definitions, tool arguments and tool results are never stored and tool names are not logged.
- Does the same key also generate images?
- Yes — it is one key and one balance for the whole catalogue. Chat and tool calling go through /v1/chat/completions; images through /v1/generations, or from inside an assistant through the genmux MCP server.