Repository navigation
Changed (BREAKING)
-
The connector no longer depends on any particular backend. It works with any
OpenAI-compatible gateway or provider (9router, LiteLLM, OpenRouter, OpenAI, Ollama, …).
WHY: preparing the open-source release. 9router was only the author's own setup, and other
users should be able to bring whatever backend they already run. -
Every environment variable now uses the
OAC_prefix, and the vendor-specific roles were
replaced by plain model-id lists:Old (≤ 0.3.0) New (0.4.0) NINEROUTER_BASE_URLOAC_BASE_URL(now required, no default)NINEROUTER_API_KEYOAC_API_KEYANTIGRAVITY_TEXT_MODEL,CODEX_TEXT_MODEL,AUTO_ORDEROAC_TEXT_MODELS(ordered list = failover order)CODEX_IMAGE_MODELS,ANTIGRAVITY_IMAGE_MODELOAC_IMAGE_MODELSJUDGE_MODELOAC_JUDGE_MODELSEARCH_PROVIDERS(defaultantigravity,searxng)OAC_SEARCH_PROVIDERS(default empty) +OAC_SEARCH_PATHCodex Responses web_search(implicit)OAC_SEARCH_MODEL(opt-in)FETCH_PROVIDERSOAC_FETCH_PROVIDERS+OAC_FETCH_PATHIMAGE_OUT_DIR,MAX_RESULT_CHARS,MAX_INLINE_IMAGE_BYTES,TEXT_TIMEOUT_MS,IMAGE_TIMEOUT_MSsame names with the OAC_prefixWHY: generic names such as
IMAGE_OUT_DIRcan clash with other tools in a shared shell, and a
fixed codex/antigravity pair cannot describe "any number of models from any vendor".
The old variables are not read any more. A silent fallback would hide a half-migrated setup. -
Tool parameters were renamed:
ask_agent.agent(auto|codex|antigravity|both) is nowask_agent.model(auto|all|<model id>).generate_images.providers/n_per_providerare nowmodels/n_per_model.
WHY: the parameters now refer to whatever the user configured, not to two hard-coded vendors.
-
OAC_BASE_URLhas no default. If it is unset, the error message explains how to set it.
WHY: the old defaultlocalhost:12121was the author's personal 9router port and wrong for
everyone else. Failing loudly beats calling the wrong host. -
Native search and fetch endpoints are now opt-in.
web_searchwith no live route configured
returns an answer labelledNOT A LIVE SEARCHthat says no route is configured.
WHY:/searchand/web/fetchare 9router extensions, not part of the OpenAI API. -
Image parameters
quality,backgroundandoutput_formatare sent based on the model name
(gpt-image,gpt-…-image,dall-e), andresponse_formatis no longer sent togpt-image-*.
WHY: the previous "Codex only" switch only made sense for one gateway. OpenAI documents
response_formatas unsupported for gpt-image models. -
Text-model auto-discovery now uses one generic heuristic: the first id from
/modelsthat is
not an image, audio or embedding model. It replaces the per-vendor regex tables.
WHY: gateways name models arbitrarily, and explicitOAC_TEXT_MODELSis the recommended setup. -
doctoruses vendor-neutral probes (a Node.js LTS question and example.com) and exits with
code 1 when a probe fails.
WHY: it can now be scripted, and its probes no longer assume 9router.
Added
- The README,
docs/SETUP.md,examples/and the server instructions were rewritten in English
for open source, with backend examples. AddedCONTRIBUTING.md,SECURITY.md, a GitHub
Actions test matrix (Node 18/20/22), and package metadata (repository,keywords,files).
WHY: user asked for standard open-source documentation. - Tests for model auto-pick, a chat-only backend, a missing base URL and image-parameter
filtering (21 total, all against the mock gateway).
Migration
Rename your variables using the table above, list your models explicitly, then run
npx -y github:HTB95/open-agent-connector init again in each project to refresh .mcp.json and
the CLAUDE.md policy. For example, the previous 9router setup becomes:
OAC_BASE_URL=http://localhost:12121/v1, OAC_TEXT_MODELS=ag/gemini-3.5-flash-medium,cx/gpt-5.5,
OAC_IMAGE_MODELS=cx/gpt-image-2.5,ag/gemini-3.1-flash-image, OAC_SEARCH_PROVIDERS=antigravity,
OAC_SEARCH_MODEL=cx/gpt-5.5.
Verified
npm test: 21/21 pass against the mock gateway. Nothing in this release was run against a real
backend. Usedoctorto check yours.