Skip to main content

Compute Service Configuration

Compute Service manages AI providers, API keys, model lists, and default mappings. Agents need at least one available model to understand requests, generate responses, call tools, and execute tasks. Image, voice, video, and music services are configured here as well.

Core Concepts​

ConceptDescription
ProviderA platform or protocol configuration such as OpenAI, Anthropic, DeepSeek, Ollama, or OpenRouter
Provider IDThe unique ID of a concrete provider instance
API KeyThe provider credential; its value is kept in the permission-protected local secrets.json while configuration stores a reference
ModelA concrete model used for chat, tool use, image, voice, video, or music services
Default MappingThe default model selected for different task purposes

Opening Compute Settings​

  1. Open Settings -> Compute Service
  2. Or open Explorer -> Compute -> AI Services

Providers​

DesireCore includes templates for many mainstream providers and supports custom OpenAI-compatible services:

TypeExamplesGood For
International providersOpenAI, Anthropic, Google, Mistral, Cohere, xAI, PerplexityGeneral chat, reasoning, code, tool use
China-based providersDeepSeek, Zhipu, Qwen, Moonshot, Volcengine, iFlytekChinese tasks, local network conditions, cost control
AggregatorsOpenRouter, SiliconFlowManaging many models through one entry point
Local modelsOllamaLocal open-source models, device-local data, offline or intranet use
Custom providersPrivate deployments or company gatewaysInternal OpenAI-compatible model services

Providers differ in price, context length, tool calling, media capability, regional availability, and network stability. A common setup is to configure more than one provider: low-cost models for routine work, higher-quality models for difficult reasoning or critical tasks, and Ollama or custom providers for local and intranet scenarios.

You can also add custom providers. Custom providers usually need to be OpenAI API compatible. If media APIs and text APIs use different endpoints, configure a separate media API base URL.

Adding and Verifying Providers​

  1. Select a provider in AI Services
  2. Enter API Key and Base URL
  3. Configure API format, media Base URL, and service types when needed
  4. Verify the key and models
StatusMeaning
AvailableThe model or service verified successfully
ErrorKey lacks permission, URL is wrong, model is unavailable, or provider returned an error
TimeoutNetwork or provider response timeout
CheckingVerification in progress

Model verification uses the appropriate path for each model type. Image, voice, video, and music models use media service routes; mediaBaseUrl is used when the normal Base URL points to a non-OpenAI-compatible endpoint.

Custom Providers​

Use a custom provider when the built-in templates do not include your provider, or when your organization routes models through an internal gateway. Check:

  • Whether the Base URL is OpenAI API compatible
  • Whether the API Key or auth headers match the gateway requirements
  • Whether model names match what the provider actually exposes
  • Whether text and media models need different Base URLs
  • Whether API format or service type needs explicit configuration

If the same protocol has multiple instances, such as two OpenAI-compatible gateways, keep clear instance names and use providerId in agent-specific settings to target the intended instance.

Token Plan Key

Some providers distinguish pay-as-you-go API keys and Token Plan keys. The UI warns when a key appears to be configured in the wrong provider type.

Claude Pro / Max Subscription​

Effective version

v10.0.178+ (Claude subscription integration). Read the authorization conditions below before use.

If Compute Service shows a Claude Subscription provider, follow the on-screen steps to connect your account. Use of this entry must comply with Anthropic's subscription and authorization rules; see the conditions below.

How this differs from Claude Code​

Selecting a Claude subscription model keeps your conversation in DesireCore. The agent continues to use DesireCore's memory, skills, tools, approval settings, and audit records. It does not enable Claude Code's tools, plugins, or slash commands.

If you need the full Claude Code programming workflow, ask a DesireCore Agent to invoke the locally installed Claude Code.

Connecting​

The UI first detects a local Claude Code login. If the panel offers sign-in or a claude setup-token field, follow the instructions shown there. When a credential expires, refresh fails, or the connection is removed, use the re-detect or sign-in action shown in the panel.

Terms, authorization, and account risk​

Eligibility is governed by Anthropic's rules

Claude subscription use must comply with Anthropic's authorization requirements. As of this update, Anthropic's Claude Code legal and compliance guidance directs developers building third-party products to use API-key authentication or a supported cloud provider and says they may not offer Claude.ai login or relay Free, Pro, or Max credentials on users' behalf. Claude subscription access requires applicable authorization and compliance with the terms, region, and account conditions. If this entry is unavailable, use an Anthropic API key or an explicitly supported cloud authentication method.

You are responsible for confirming that your subscription use, account type, region, and automation comply with Anthropic's current terms. Rate limits, feature restrictions, credential invalidation, account suspension, or bans arising from subscription use or provider policy are risks borne by the user; DesireCore cannot control Anthropic's account decisions. For stable commercial or organizational access, prefer an Anthropic API key or an explicitly supported cloud authentication method.

API Key Security​

  • API-key values are centralized in the local ~/.desirecore/config/secrets.json file; provider configuration stores reference names instead of values
  • On platforms with POSIX permissions, DesireCore tightens the file mode to 0600. On Windows, actual protection depends on the current OS account, directory ACLs, device locking, and disk encryption
  • secrets.json is a sensitive path that ordinary Agent file tools cannot read directly. An authorized connection resolves only the required reference at the execution layer and writes an access audit without the plaintext value
  • A key is sent as authentication to its corresponding third-party service only when the user invokes that service. DesireCore official-cloud credentials and external sign-in credentials follow their own authentication flows
A local file is not a hardware-backed credential vault

secrets.json is a permission-protected local credential file, not macOS Keychain, Windows Credential Manager, or a hardware security module. Anyone who controls your OS account, can read the disk, or obtains an inadequately protected backup may still obtain the credentials. Enable disk encryption and do not place this file in Git, cloud-drive sync, or a regular backup.

To change an API key, select the provider instance, enter edit mode, save the new key, and it will replace the old credential. Removing a provider instance removes that configuration; any agent that still references it should be pointed to another provider or default mapping.

Use separate keys for different suppliers or purposes when possible. It makes billing, rate limits, and permission issues easier to trace.

Default Model Mapping​

Default mappings decide which model to use when an agent has no dedicated override. Common purposes include daily chat, reasoning, code, documents, tool use, and media tasks.

When choosing mappings, combine models by role:

  • Low-cost default model: routine chat, summarization, and lightweight tasks
  • High-quality reasoning model: complex analysis, planning, code review, and high-risk decision support
  • Tool-use-stable model: tasks that call files, commands, search, or external services frequently
  • Media model: image understanding, image generation, voice, video, or music tasks

Default mapping is the global fallback. Agent-level configuration takes precedence when present.

Provider Priorities for Smart Routing​

To make Smart routing prefer a provider:

  1. Open the model picker in the conversation and select Provider priority settings.
  2. Enter a priority for each provider. Higher values take precedence.
  3. Select Save. To reset the values, select Restore defaults, then save.
SettingRule
Accepted valuesIntegers from -10000 to 10000
DefaultsOfficial cloud compute: 100; other sources: 0
Selection orderCompare provider priorities within the same model tier; use model ranking when priorities are equal
ScopeAll conversations using Smart routing; fixed models are unaffected

The provider and model must still be usable. Increasing a priority cannot resolve sign-in, credential, or model availability problems.

Agent-Level Model Override​

To use a fixed model, select it in the conversation's model picker.

Advanced configuration: edit agent.json

An individual agent can override global defaults in agent.json:

{
"llm": {
"provider": "anthropic",
"providerId": "provider-anthropic-001",
"model": "claude-sonnet-4-5"
}
}

provider identifies the protocol or provider type. providerId identifies the concrete provider instance. When multiple providers share a protocol or model name, set providerId to avoid using the wrong Base URL or API Key.

Migrated or manually maintained configs may still contain a runtime field. Use llm for agent model configuration. If you edit agent configuration manually, keep llm.provider, llm.providerId, and llm.model aligned.

What if a fixed model is unavailable?​

The interface explains when a model is missing, disabled, or unsuitable for chat. A rejected selection preserves the previous setting.

  1. Read the reason to identify a model, provider configuration, or sign-in problem.
  2. Follow the action offered: select another model, open the Compute Center, or sign in.
  3. Continue the task after resolving the problem.

A fixed model that becomes unavailable during execution also reports an error; it does not switch to Smart routing automatically.

Managing Multiple Providers​

Multiple providers help with redundancy, cost control, capability coverage, and network adaptation. If several providers share the same model name, DesireCore prefers an explicit providerId, then falls back to default mappings and available keys.

When debugging model issues, check in this order:

  1. Whether the API key is in the correct provider and key type
  2. Whether Base URL and media Base URL match the provider API
  3. Whether the model name is still available
  4. Whether verification failed because of permission, provider error, or timeout
  5. Whether default mapping or agent providerId points to the intended provider instance