-
Notifications
You must be signed in to change notification settings - Fork 138
[agent-network] Document loading a provider's models from the vendor #945
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -55,7 +55,8 @@ and budgets (see [How It Works](/agent-network/how-it-works#llm-apis-and-ai-gate | |
| 3. Paste the provider's **API key**. It is stored encrypted server-side and never sent to | ||
| callers. | ||
| 4. _(Optional)_ Restrict the **allowed models** and set **per-model pricing** used for cost | ||
| estimates in usage and logs. | ||
| estimates in usage and logs. On supported providers, **Load models from provider** offers | ||
| the vendor's own list — see [Load Models from the Provider](#load-models-from-the-provider). | ||
| 5. _(Optional, gateways)_ Fill any gateway-specific fields (for example a Portkey config | ||
| ID) and the identity headers used for attribution. | ||
| 6. Save the provider. | ||
|
|
@@ -136,6 +137,59 @@ Self-hosters can seed the catalog defaults these fields prefill from with a | |
| pricing file. See | ||
| [`server.agentNetwork.pricingDefaultsFile`](/selfhosted/maintenance/configuration-files#agent-network-settings). | ||
|
|
||
| ### Load Models from the Provider | ||
|
|
||
| NetBird ships a catalog of known models, but it can't see your account: which OpenAI models | ||
| your organization is entitled to, which Bedrock inference profiles exist in your account and | ||
| region, or which Vertex AI models your project has enabled. The catalog also drifts as | ||
| vendors retire models. | ||
|
|
||
| On the **Models** tab, **Load models from provider** asks the vendor which models it offers | ||
| this provider's credential, and adds the answer to the model picker. Nothing is written to | ||
| the form on its own: the models already listed keep the rates you gave them, and you pick | ||
| the ones you want from **Add More**. | ||
|
|
||
| Available for **OpenAI**, **Anthropic**, **Amazon Bedrock** and **Google Vertex AI**. Every | ||
| other entry in the catalog — Azure OpenAI, Mistral, Kimi, the AI gateways and custom | ||
| endpoints — publishes no listing NetBird can ask for, so the button reports that and the | ||
| catalog list is used instead. | ||
|
|
||
| For a provider you are still filling in, the button stays disabled until the **Upstream URL** | ||
| and the credential are both filled in. | ||
|
|
||
| A few details worth knowing: | ||
|
|
||
| - **A model the catalog already prices arrives priced.** Anything else arrives with no input | ||
| or output rate: NetBird outlines the row and asks you to confirm before saving it, rather | ||
| than hiding the model — the vendor listed it, so leaving it out would hide a model you | ||
| really have. Set the rates yourself, or usage against it is costed at $0 and adds nothing | ||
| to the spend side of [token & budget limits](/agent-network/policies/limits). Its tokens | ||
| still count toward the token caps. | ||
| - **Editing a saved provider reuses the stored credential.** The API key (or, on Vertex AI, | ||
| the uploaded service account key) never returns to your browser, so the lookup runs against | ||
| the credential already on the record. Change the provider, the upstream URL, or the masked | ||
| credential and NetBird asks for a credential to use instead — the values on screen are | ||
| then used. | ||
| - **Bedrock ids are registered exactly as AWS issues them**, prefix included | ||
| (`eu.anthropic.claude-sonnet-4-5-20250929-v1:0`), because that is the only form that works | ||
| at invoke time. The prefix is a cross-region geography (`us.`, `eu.`, `apac.`, `global.`, | ||
| and so on) rather than the region you configured, and AWS routinely offers the same model | ||
| under more than one — so expect both an `eu.anthropic.…` and a `global.anthropic.…` entry | ||
| for it. Both are genuine, and both cost the same, since pricing keys on the model and not | ||
| the geography. Only `ACTIVE` inference profiles are offered. The listing comes from the | ||
| Bedrock control plane, which is a different host from the runtime endpoint you configured — | ||
| NetBird derives it from your upstream URL. | ||
|
Comment on lines
+173
to
+181
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Correct the Bedrock pricing statement. Do not state that geography-prefixed and 🤖 Prompt for AI Agents |
||
| - **Vertex AI lists the Anthropic publisher's catalog**, not what your project has enabled, | ||
| so treat it as a suggestion alongside NetBird's catalog rather than a definitive list. Ids | ||
| come back version-pinned, in the `claude-sonnet-4-5@20250929` form Vertex addresses them by. | ||
|
|
||
| <Note> | ||
| The vendor call is made by NetBird's management service using the provider's credential, not | ||
| from your browser and not over your agents' tunnels. It only ever dials public vendor | ||
| endpoints and does not follow redirects. Loading the list spends that credential against the | ||
| vendor, so it needs the same permission as creating a provider. | ||
| </Note> | ||
|
|
||
| ### Adding a Model Not in the Catalog | ||
|
|
||
| If the model you need isn't in the picker, type its model ID directly into the **Model** field | ||
|
|
@@ -159,4 +213,3 @@ first provider and reachable only over the NetBird overlay. | |
| Agents send normal provider requests to the endpoint without an API key; which identities | ||
| may reach which providers is governed by [Policies](/agent-network/policies). | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Clarify how the vendor query uses the provider credential.
The phrase “asks the vendor which models it offers this provider's credential” is incomplete. State that NetBird uses the provider credential to query the vendor.
Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents