ModelConfig
kagent.dev / v1alpha2
apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
name: example
apiVersion
string
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
object
spec object
ModelConfigSpec defines the desired state of ModelConfig.
anthropic object
Anthropic-specific configuration
baseUrl
string
Base URL for the Anthropic API (overrides default)
maxTokens
integer
Maximum tokens to generate
temperature
string
Temperature for sampling
topK
integer
Top-k sampling parameter
topP
string
Top-p sampling parameter
anthropicVertexAI object
Anthropic-specific configuration
location
string required
The project location
maxTokens
integer
Maximum tokens to generate
projectID
string required
The project ID
stopSequences
[]string
Stop sequences
temperature
string
Temperature
topK
string
Top-k sampling parameter
topP
string
Top-p sampling parameter
apiKeyPassthrough
boolean
APIKeyPassthrough enables forwarding the Bearer token from incoming A2A requests
directly to the LLM provider as the API key. This is useful for organizations
with federated identity that want to avoid separate secret management.
Mutually exclusive with apiKeySecret.
apiKeySecret
string
The name of the secret that contains the API key. Must be a reference to the name of a secret in the same namespace as the referencing ModelConfig.
For the SAPAICore provider, the secret must contain two keys: "client_id" and "client_secret"
(the OAuth2 client credentials for SAP AI Core). The apiKeySecretKey field is not used for SAPAICore.
apiKeySecretKey
string
The key in the secret that contains the API key.
Not used for the SAPAICore provider (which always reads "client_id" and "client_secret" from the secret).
azureOpenAI object
Azure OpenAI-specific configuration
apiVersion
string required
API version for the Azure OpenAI API
azureAdToken
string
Azure AD token for authentication
azureDeployment
string
Deployment name for the Azure OpenAI API
azureEndpoint
string required
Endpoint for the Azure OpenAI API
maxTokens
integer
Maximum tokens to generate
temperature
string
Temperature for sampling
topP
string
Top-p sampling parameter
bedrock object
AWS Bedrock-specific configuration
additionalModelRequestFields
object
AdditionalModelRequestFields passes model-specific parameters to Bedrock's
additionalModelRequestFields in the Converse API. Use this for provider-specific
options that are not part of the standard InferenceConfiguration block, such as
Claude extended thinking or top_k. Values are forwarded as-is to the API.
Example: {"top_k": 5, "thinking": {"type": "enabled", "budget_tokens": 16000}}
cacheTTL
string
CacheTTL controls how long Bedrock retains a cached prefix when
PromptCaching is enabled. Only meaningful when PromptCaching is true.
- "5m" (default): Bedrock's standard 5-minute sliding cache. Each cache
hit refreshes the window. Supported by all prompt-caching models.
- "1h": extended-TTL caching, useful for tasks whose Converse calls are
spaced more than 5 minutes apart.
NOTE: "1h" is NOT strictly better than "5m". Extended-TTL cache writes are
billed at a higher per-token rate than 5-minute writes, and 1h is supported
on a narrower set of models. Only choose "1h" when calls are spaced far
enough apart that a 5-minute cache would expire between them; otherwise the
higher write cost is wasted. See the AWS prompt-caching docs above.
enum:
5m, 1h
promptCaching
boolean
PromptCaching enables Bedrock prompt caching by appending a CachePoint
block at the end of the Converse request's `system` content array and
the end of the `toolConfig.tools` array. Bedrock will cache the prefix up to and
including those cache points across requests in the same region for
roughly 5 minutes after first use, billing the cached portion at a
reduced rate on cache hits.
Recommended for tool-using agents that make many Converse calls per
task with a stable system prompt and tool set — the per-call input
token count can drop by 70-90% on hit. Has no effect on models that
don't support caching; the marker is ignored by Bedrock for those.
See https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html
for the current list of supported models and minimum prefix sizes.
region
string required
AWS region where the Bedrock model is available (e.g., us-east-1, us-west-2)
defaultHeaders
object
gemini
object
Gemini-specific configuration
geminiVertexAI object
Gemini Vertex AI-specific configuration
candidateCount
integer
Candidate count
location
string required
The project location
maxOutputTokens
integer
Maximum output tokens
projectID
string required
The project ID
responseMimeType
string
Response mime type
stopSequences
[]string
Stop sequences
temperature
string
Temperature
topK
string
Top-k sampling parameter
topP
string
Top-p sampling parameter
model
string required
ollama object
Ollama-specific configuration
host
string
Host for the Ollama API
options
object
Options for the Ollama API
openAI object
OpenAI-specific configuration
baseUrl
string
Base URL for the OpenAI API (overrides default)
frequencyPenalty
string
Frequency penalty
maxTokens
integer
Maximum tokens to generate
n
integer
N value
organization
string
Organization ID for the OpenAI API
presencePenalty
string
Presence penalty
reasoningEffort
string
Reasoning effort
enum:
minimal, low, medium, high
seed
integer
Seed value
temperature
string
Temperature for sampling
timeout
integer
Timeout
tokenExchange object
TokenExchange configures dynamic bearer token acquisition via credential exchange.
Requires apiKeySecret (used as the service account secret) and is mutually exclusive with apiKeyPassthrough.
gdchServiceAccount object
GDCHServiceAccountConfig holds GDCH-specific token exchange parameters.
audience
string required
Audience is the token exchange audience URL (the GDC inference gateway base URL)
type
string required
TokenExchangeType identifies the token exchange mechanism
enum:
GDCHServiceAccount
topP
string
Top-p sampling parameter
provider
string
The provider of the model
enum:
Anthropic, OpenAI, AzureOpenAI, Ollama, Gemini, GeminiVertexAI, AnthropicVertexAI, Bedrock, SAPAICoresapAICore object
SAP AI Core-specific configuration
authUrl
string
OAuth2 token endpoint URL (e.g., https://tenant.authentication.eu10.hana.ondemand.com)
baseUrl
string required
Base URL for the SAP AI Core API (e.g., https://api.ai.prod.eu-central-1.aws.ml.hana.ondemand.com)
resourceGroup
string
Resource group in SAP AI Core
tls object
TLS configuration for provider connections.
Enables agents to connect to internal LiteLLM gateways or other providers
that use self-signed certificates or custom certificate authorities.
caCertSecretKey
string
CACertSecretKey is the key within the Secret that contains the
CA certificate data (PEM-encoded). Required when CACertSecretRef
is set — admission rejects ref-without-key regardless of
DisableVerify (see the TLSConfig-level XValidation rules).
caCertSecretRef
string
CACertSecretRef is a reference to a Kubernetes Secret containing
CA certificate(s) in PEM format. The Secret must be in the same
namespace as the resource referencing it (ModelConfig,
RemoteMCPServer, or any future consumer of TLSConfig).
When set, the certificate will be used to verify the upstream's
SSL certificate.
disableSystemCAs
boolean
DisableSystemCAs disables the use of system CA certificates.
When false (default), system CA certificates are used for verification (safe behavior).
When true, only the custom CA from CACertSecretRef is trusted.
This allows strict security policies where only corporate CAs should be trusted.
disableVerify
boolean
DisableVerify disables SSL certificate verification entirely.
When false (default), SSL certificates are verified.
When true, SSL certificate verification is disabled.
WARNING: This should ONLY be used in development/testing environments.
Production deployments MUST use proper certificates.
status object
ModelConfigStatus defines the observed state of ModelConfig.
conditions []object
lastTransitionTime
string required
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format:
date-time
message
string required
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength:
32768
observedGeneration
integer
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format:
int64minimum:
0
reason
string required
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$minLength:
1maxLength:
1024
status
string required
status of the condition, one of True, False, Unknown.
enum:
True, False, Unknown
type
string required
type of condition in CamelCase or in foo.example.com/CamelCase.
pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$maxLength:
316
observedGeneration
integer
format:
int64
secretHash
string
The secret hash stores a hash of any secrets required by the model config (i.e. api key, tls cert) to ensure agents referencing this model config detect changes to these secrets and restart if necessary.
No matches. Try .spec.anthropic for an exact path