Files
Peter SteinbergerandGitHub c7e7ac2728 refactor: remove expired plugin compatibility surfaces (#111451)
* docs(secrets): remove retired web credential paths

* refactor(web): remove retired provider compatibility paths

* refactor(providers): delete retired compatibility routes

* refactor(secrets): remove retired credential aliases

* refactor(plugin-sdk): delete retired compatibility surfaces

* docs(plugin-sdk): remove retired migration guidance

* chore(plugin-sdk): refresh rebased surface budgets

* chore(plugin-sdk): refresh API removal baseline

* refactor(compat): migrate retired internal callers

* chore(plugin-sdk): refresh current-main baselines

* test(config): migrate plugin-owned secret assertions

* test(gateway): narrow plugin secret refs

* fix(plugin-sdk): preserve private boundary type identity

* chore(compat): remove stale sweep references

* chore(lint): lower max-lines budget

* refactor(secrets): remove unused web helper

* build(plugin-sdk): drop removed compat entries

* chore(plugin-sdk): refresh rebased API baseline

* chore(plugin-sdk): use Linux API baseline hash

* fix(plugin-sdk): preserve private bundled build entries

* fix(plugin-sdk): package private runtime facades

* fix(plugins): preserve external credential contracts
2026-07-19 11:04:48 -07:00

4.0 KiB

summary, read_when, title
summary read_when title
Kimi web search via Moonshot web search
You want to use Kimi for web_search
You need a KIMI_API_KEY or MOONSHOT_API_KEY
Kimi search

Kimi is a web_search provider backed by Moonshot's native web search. Moonshot synthesizes one answer with inline citations, similar to Gemini and Grok's grounded-response providers, rather than returning a ranked result list.

Setup

Get an API key from [Moonshot AI](https://platform.moonshot.cn/). Set `KIMI_API_KEY` or `MOONSHOT_API_KEY` in the Gateway environment (for a gateway install, add it to `~/.openclaw/.env`), or configure via:
```bash
openclaw configure --section web
```

Choosing Kimi during openclaw onboard or openclaw configure --section web also prompts for:

  • the Moonshot API region: https://api.moonshot.ai/v1 or https://api.moonshot.cn/v1
  • the web-search model (defaults to kimi-k2.6)

Config

{
  plugins: {
    entries: {
      moonshot: {
        config: {
          webSearch: {
            apiKey: "sk-...", // optional if KIMI_API_KEY or MOONSHOT_API_KEY is set
            baseUrl: "https://api.moonshot.ai/v1",
            model: "kimi-k2.6",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "kimi",
      },
    },
  },
}

tools.web.search.provider is auto-detected from available API keys when omitted; set it to kimi explicitly if multiple search credentials are configured.

Configure Kimi-specific apiKey, baseUrl, and model values under plugins.entries.moonshot.config.webSearch.

Defaults: baseUrl defaults to https://api.moonshot.ai/v1 when omitted, model defaults to kimi-k2.6.

If chat traffic uses the China host (models.providers.moonshot.baseUrl: https://api.moonshot.cn/v1), Kimi web_search reuses that host automatically when its own baseUrl is unset, so .cn keys do not accidentally hit the international endpoint (which returns HTTP 401 for those keys). Set an explicit Kimi baseUrl to override this inheritance.

Grounding requirement

OpenClaw only returns a Kimi web_search result after Moonshot's response includes native web-search grounding evidence, such as a $web_search tool-call replay, search_results, or citation URLs. If Kimi answers directly with no grounding (for example "I cannot browse the internet"), OpenClaw returns a kimi_web_search_ungrounded error instead of treating that text as a search result. Retry the query, switch to a structured provider such as Brave, or use web_fetch / the browser tool when you already have a target URL.

Tool parameters

Parameter Supported
query Yes
count Accepted for cross-provider compatibility, but ignored: Kimi always returns one synthesized answer, not an N-result list
country, language, freshness, date_after, date_before No