mirror of
https://github.com/netbirdio/docs.git
synced 2026-10-09 15:19:04 +02:00
Add Kimi (Moonshot AI) integration docs and Claude Code section (#878)
This commit is contained in:
BIN
Binary file not shown.
|
After Width: | Height: | Size: 248 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 155 KiB |
@@ -535,6 +535,10 @@ export const docsNavigation = [
|
|||||||
href: '/agent-network/integrations/vertex-ai',
|
href: '/agent-network/integrations/vertex-ai',
|
||||||
},
|
},
|
||||||
{ title: 'AWS Bedrock', href: '/agent-network/integrations/bedrock' },
|
{ title: 'AWS Bedrock', href: '/agent-network/integrations/bedrock' },
|
||||||
|
{
|
||||||
|
title: 'Kimi (Moonshot AI)',
|
||||||
|
href: '/agent-network/integrations/kimi',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -159,3 +159,46 @@ Then add the following to `~/.claude/settings.json`:
|
|||||||
`eu.anthropic.claude-sonnet-4-5-20250929-v1:0`). Some models may not be available in all
|
`eu.anthropic.claude-sonnet-4-5-20250929-v1:0`). Some models may not be available in all
|
||||||
regions — if the model above doesn't work, switch to one in your provider's allowed list,
|
regions — if the model above doesn't work, switch to one in your provider's allowed list,
|
||||||
or change it in Claude Code with `/model <model-id>`.
|
or change it in Claude Code with `/model <model-id>`.
|
||||||
|
|
||||||
|
## Use Kimi (Moonshot AI)
|
||||||
|
|
||||||
|
If you reach Claude through **Moonshot AI** instead of the Anthropic API, point Claude Code's
|
||||||
|
Anthropic backend at your agent network endpoint. Moonshot serves the Anthropic Messages API
|
||||||
|
under the `/anthropic` path, so Claude Code talks to the Kimi models through the same
|
||||||
|
interface it uses for Claude. NetBird holds the Moonshot API key server-side and injects it,
|
||||||
|
so the client stays keyless.
|
||||||
|
|
||||||
|
First connect a [Kimi (Moonshot AI) provider](/agent-network/integrations/kimi) in NetBird,
|
||||||
|
keeping the default upstream URL `https://api.moonshot.ai`. Then add the following to
|
||||||
|
`~/.claude/settings.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"apiKeyHelper": "echo '-'",
|
||||||
|
"env": {
|
||||||
|
"ANTHROPIC_BASE_URL": "https://<your-endpoint>/anthropic",
|
||||||
|
"ANTHROPIC_MODEL": "kimi-k3",
|
||||||
|
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k3",
|
||||||
|
"ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k3",
|
||||||
|
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k3",
|
||||||
|
"CLAUDE_CODE_SUBAGENT_MODEL": "kimi-k3",
|
||||||
|
"ENABLE_TOOL_SEARCH": "false"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `ANTHROPIC_BASE_URL` is your agent network endpoint with the `/anthropic` suffix. That is
|
||||||
|
the path Moonshot serves the Anthropic Messages API under, and NetBird rides it through to
|
||||||
|
the bare `https://api.moonshot.ai` upstream.
|
||||||
|
- The `ANTHROPIC_DEFAULT_*` and `CLAUDE_CODE_SUBAGENT_MODEL` variables pin every model tier
|
||||||
|
(opus, sonnet, haiku, and subagents) to `kimi-k3`, so no Claude model names leak into
|
||||||
|
requests Moonshot can't serve.
|
||||||
|
- `ENABLE_TOOL_SEARCH=false` turns off tool search, whose `tool_reference` blocks Moonshot
|
||||||
|
rejects.
|
||||||
|
|
||||||
|
In the **Configure Your Agent** modal, pick **Kimi (Moonshot AI)** on the **Claude Code** tab
|
||||||
|
to copy this configuration with your endpoint filled in:
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<img src="/docs-static/img/agent-network/integrations/agent-network-configure-agent-claude-code-kimi.png" alt="NetBird Configure Your Agent modal showing the Claude Code settings.json configuration for Kimi (Moonshot AI)" className="imagewrapper" />
|
||||||
|
</p>
|
||||||
|
|||||||
@@ -23,3 +23,5 @@ Replace `<your-endpoint>` in the snippets below with the endpoint shown on the
|
|||||||
Vertex AI with a Google Cloud service account.
|
Vertex AI with a Google Cloud service account.
|
||||||
- [AWS Bedrock](/agent-network/integrations/bedrock) — connect Claude, Llama, and Nova on
|
- [AWS Bedrock](/agent-network/integrations/bedrock) — connect Claude, Llama, and Nova on
|
||||||
Bedrock with a Bedrock API key.
|
Bedrock with a Bedrock API key.
|
||||||
|
- [Kimi (Moonshot AI)](/agent-network/integrations/kimi) — connect Moonshot's Kimi models and
|
||||||
|
point Kimi CLI or Claude Code at the endpoint.
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
import { Note } from '@/components/mdx'
|
||||||
|
|
||||||
|
export const description =
|
||||||
|
'Connect Moonshot AI (Kimi) to NetBird Agent Network with a single API key, then point Kimi CLI or Claude Code at your keyless agent network endpoint.'
|
||||||
|
|
||||||
|
# Kimi (Moonshot AI)
|
||||||
|
|
||||||
|
[Moonshot AI](https://www.moonshot.ai/) serves the **Kimi** models from its cloud platform.
|
||||||
|
Connecting it behind NetBird gives your agents keyless access over the tunnel: NetBird holds
|
||||||
|
the Moonshot API key server-side, ties every request to a real identity from your IdP, and
|
||||||
|
applies your policies, limits, and audit on the way to Moonshot.
|
||||||
|
|
||||||
|
One Moonshot API key serves both API shapes, the native **Anthropic Messages API** and the
|
||||||
|
**OpenAI-compatible API**, so a single Kimi provider covers every client. The path a client
|
||||||
|
calls picks the shape, and NetBird forwards that path through to Moonshot unchanged:
|
||||||
|
|
||||||
|
- Clients that speak the Anthropic Messages API (Claude Code, Kimi CLI's `anthropic` provider
|
||||||
|
type) call the `/anthropic` path.
|
||||||
|
- OpenAI-shaped clients (the OpenAI SDK, cURL) call the `/v1` path.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- A **Moonshot AI** account on the [international platform](https://platform.moonshot.ai/)
|
||||||
|
with an API key. Accounts on the mainland-China platform
|
||||||
|
([platform.moonshot.cn](https://platform.moonshot.cn/)) use a different host. See the note
|
||||||
|
under [Connect the Provider](#connect-the-provider).
|
||||||
|
|
||||||
|
## Connect the Provider
|
||||||
|
|
||||||
|
1. Go to **Agent Network → Providers** and click **Connect Provider**.
|
||||||
|
2. Select **Kimi (Moonshot AI) API**. Keep the default **Upstream URL** `https://api.moonshot.ai`, the bare
|
||||||
|
international host. Don't add a path suffix: the client picks the API shape with the path
|
||||||
|
it calls (`/anthropic` or `/v1`), and NetBird rides that path through to Moonshot.
|
||||||
|
3. Paste the **Moonshot API key**. NetBird stores it encrypted server-side, injects it as
|
||||||
|
`Authorization: Bearer …` on each request, and never returns it to callers.
|
||||||
|
4. _(Optional)_ Restrict the **allowed models**, for example `kimi-k3`. Leaving the list
|
||||||
|
empty allows any catalog model.
|
||||||
|
5. Save the provider. The key is now held server-side. The next step authorizes who can use
|
||||||
|
it.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<img src="/docs-static/img/agent-network/integrations/agent-network-connect-kimi.png" alt="Connect the Kimi (Moonshot AI) provider in NetBird Agent Network" className="imagewrapper" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<Note>
|
||||||
|
Mainland-China accounts use the `https://api.moonshot.cn` host instead. Set that as the
|
||||||
|
**Upstream URL** if your API key was issued on `platform.moonshot.cn`.
|
||||||
|
</Note>
|
||||||
|
|
||||||
|
See [Providers](/agent-network/providers) for details.
|
||||||
|
|
||||||
|
## Create a Policy
|
||||||
|
|
||||||
|
By default nothing is allowed. A policy must connect a source group to the Kimi provider
|
||||||
|
before anyone can route through it.
|
||||||
|
|
||||||
|
1. Go to **Agent Network → Policies** and add a policy.
|
||||||
|
2. Set the **Source** to the users or agents who should be able to reach Kimi (for example
|
||||||
|
your `Engineering` group from your IdP).
|
||||||
|
3. Set the **Provider** to the Kimi provider you just connected.
|
||||||
|
4. Optionally attach per-user or per-group [token and budget limits](/agent-network/policies/limits)
|
||||||
|
and [guardrails](/agent-network/policies/guardrails) such as a model allowlist.
|
||||||
|
|
||||||
|
See [Policies](/agent-network/policies) for details.
|
||||||
|
|
||||||
|
## Use with Kimi CLI
|
||||||
|
|
||||||
|
[Kimi CLI](https://www.kimi.com/) reads providers from `~/.kimi/config.toml`. Point it at your
|
||||||
|
agent network endpoint with the `anthropic` provider type and no `/anthropic` prefix in
|
||||||
|
`base_url`; NetBird forwards the path Kimi CLI calls through to Moonshot. The `api_key` is a
|
||||||
|
placeholder because NetBird injects the real key server-side.
|
||||||
|
|
||||||
|
Add the following to `~/.kimi/config.toml`:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
default_model = "kimi-k3"
|
||||||
|
|
||||||
|
[providers.netbird]
|
||||||
|
type = "anthropic"
|
||||||
|
base_url = "https://<your-endpoint>"
|
||||||
|
api_key = "-"
|
||||||
|
|
||||||
|
[models.kimi-k3]
|
||||||
|
provider = "netbird"
|
||||||
|
model = "kimi-k3"
|
||||||
|
max_context_size = 1000000
|
||||||
|
```
|
||||||
|
|
||||||
|
For the OpenAI shape instead, set `type = "openai_legacy"` and
|
||||||
|
`base_url = "https://<your-endpoint>/v1"`.
|
||||||
|
|
||||||
|
## Use with Claude Code
|
||||||
|
|
||||||
|
Claude Code speaks the Anthropic Messages API, which Moonshot serves under the `/anthropic`
|
||||||
|
path, so you can route Claude Code through this Kimi provider instead of the Anthropic API.
|
||||||
|
See [Use Kimi (Moonshot AI)](/agent-network/integrations/claude-code#use-kimi-moonshot-ai)
|
||||||
|
on the Claude Code integration page for the configuration.
|
||||||
|
|
||||||
|
## Result
|
||||||
|
|
||||||
|
Agents point at the NetBird endpoint with no key and call Kimi models by name. NetBird
|
||||||
|
enforces your policies, limits, and guardrails, then forwards the request to Moonshot. Every
|
||||||
|
call is recorded in [Usage & Logs](/agent-network/usage-and-logs) with the caller's identity,
|
||||||
|
auth group, model, tokens, cost, and status.
|
||||||
|
|
||||||
|
<Note>
|
||||||
|
Rotating the key is a single server-side change in NetBird: generate a new Moonshot API key,
|
||||||
|
update the provider's credential, then revoke the old key.
|
||||||
|
</Note>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
export const description =
|
export const description =
|
||||||
'Connect AI providers and gateways — OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Google Vertex AI, Mistral, LiteLLM, Portkey, Bifrost, Cloudflare, Vercel, OpenRouter, or any OpenAI-compatible endpoint — to NetBird Agent Network and expose a single keyless endpoint.'
|
'Connect AI providers and gateways — OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Google Vertex AI, Mistral, Kimi (Moonshot AI), LiteLLM, Portkey, Bifrost, Cloudflare, Vercel, OpenRouter, or any OpenAI-compatible endpoint — to NetBird Agent Network and expose a single keyless endpoint.'
|
||||||
|
|
||||||
# Providers
|
# Providers
|
||||||
|
|
||||||
@@ -27,6 +27,7 @@ First-party vendor APIs:
|
|||||||
- AWS Bedrock
|
- AWS Bedrock
|
||||||
- Google Vertex AI
|
- Google Vertex AI
|
||||||
- Mistral
|
- Mistral
|
||||||
|
- Kimi (Moonshot AI)
|
||||||
|
|
||||||
### AI Gateways
|
### AI Gateways
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user