Documentation

API Reference#

Packages#

kagent.dev/v1alpha2#

Package v1alpha1 contains API Schema definitions for the agent v1alpha1 API group.

Resource Types#

A2AConfig#

Appears in:

FieldDescriptionDefaultValidation
skills AgentSkill arrayMinItems: 1

Agent#

Agent is the Schema for the agents API.

FieldDescriptionDefaultValidation
apiVersion stringkagent.dev/v1alpha2
kind stringAgent
kind stringKind 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
apiVersion stringAPIVersion 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
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec AgentSpec
status AgentStatus

AgentHarness#

AgentHarness is a generic remote execution environment provisioned by a backend (e.g. OpenShell) and addressable by exec/SSH.

FieldDescriptionDefaultValidation
apiVersion stringkagent.dev/v1alpha2
kind stringAgentHarness
kind stringKind 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
apiVersion stringAPIVersion 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
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec AgentHarnessSpec
status AgentHarnessStatus

AgentHarnessBackendType#

Underlying type: string

AgentHarnessBackendType selects which sandbox control plane provisions the environment. Additional backends may be added in the future.

Validation:

  • Enum: [openclaw nemoclaw]

Appears in:

FieldDescription
openclaw
nemoclaw

AgentHarnessChannel#

AgentHarnessChannel declares one messenger binding inside an OpenClaw/NemoClaw harness VM.

Appears in:

FieldDescriptionDefaultValidation
name stringName is a stable id for this binding (OpenClaw channels.*.accounts key).MinLength: 1
type AgentHarnessChannelTypeEnum: [telegram slack]
telegram AgentHarnessTelegramChannelSpec
slack AgentHarnessSlackChannelSpec

AgentHarnessChannelAccess#

Underlying type: string

AgentHarnessChannelAccess controls whether the bot listens broadly or only on an allowlist.

Validation:

  • Enum: [allowlist open disabled]

Appears in:

FieldDescription
allowlist
open
disabled

AgentHarnessChannelCredential#

AgentHarnessChannelCredential supplies a token from an inline value or a Secret/ConfigMap key.

Appears in:

FieldDescriptionDefaultValidation
value stringMaxLength: 8192
valueFrom ValueSource

AgentHarnessChannelType#

Underlying type: string

AgentHarnessChannelType selects a messenger integration for OpenClaw harness VMs.

Validation:

  • Enum: [telegram slack]

Appears in:

FieldDescription
telegram
slack

AgentHarnessConnection#

AgentHarnessConnection describes how clients reach the provisioned harness VM.

Appears in:

FieldDescriptionDefaultValidation
endpoint stringEndpoint is the backend-specific address (gRPC target, SSH host:port,
...) clients should use to reach the harness.

AgentHarnessNetwork#

AgentHarnessNetwork captures the minimal network-policy knobs exposed to users.

Appears in:

FieldDescriptionDefaultValidation
allowedDomains string arrayAllowedDomains is a list of DNS names the harness may reach.

AgentHarnessSlackChannelSpec#

AgentHarnessSlackChannelSpec configures Slack when AgentHarnessChannel.type is Slack.

Appears in:

FieldDescriptionDefaultValidation
botToken AgentHarnessChannelCredential
appToken AgentHarnessChannelCredential
channelAccess AgentHarnessChannelAccessEnum: [allowlist open disabled]
allowlistChannels string array
interactiveReplies booleantrue

AgentHarnessSpec#

AgentHarnessSpec describes a generic remote execution environment that agents (or human operators) can attach to via exec or SSH.

An AgentHarness is distinct from a SandboxAgent: it has no agent runtime baked in. The backend is responsible for provisioning an environment that stays ready to accept incoming commands.

Appears in:

FieldDescriptionDefaultValidation
backend AgentHarnessBackendTypeBackend selects the control plane to use. Required.Enum: [openclaw nemoclaw]
description stringDescription is a short human-readable summary shown in the UI (e.g. agents list).
image stringImage is the container image to run in the harness VM, if the backend
supports per-resource images. Backends openclaw and nemoclaw pin the image
to the NemoClaw sandbox base when this field is empty.
env EnvVar arrayEnv is a list of environment variables injected into the harness workload.
Values use the Kubernetes EnvVar shape; ValueFrom references are
resolved server-side where supported.
network AgentHarnessNetworkNetwork controls outbound access from the harness. When unset,
backend defaults apply.
modelConfigRef stringModelConfigRef is the reference to the ModelConfig used to configure the harness.
The controller registers the gateway provider and, after the harness is Ready,
writes OpenClaw config inside the VM (~/.openclaw/openclaw.json) and starts the gateway.
channels AgentHarnessChannel arrayChannels configures Telegram and Slack integrations for OpenClaw inside the harness VM.

AgentHarnessStatus#

AgentHarnessStatus is the observed state of an AgentHarness.

Appears in:

FieldDescriptionDefaultValidation
observedGeneration integer
conditions Condition array
backendRef AgentHarnessStatusRefBackendRef points at the harness instance on the backend control
plane, once Ensure has succeeded at least once.
connection AgentHarnessConnectionConnection is populated by the controller when the harness is ready.

AgentHarnessStatusRef#

AgentHarnessStatusRef identifies a harness instance on an external control plane.

Appears in:

FieldDescriptionDefaultValidation
backend AgentHarnessBackendTypeEnum: [openclaw nemoclaw]
id string

AgentHarnessTelegramChannelSpec#

AgentHarnessTelegramChannelSpec configures Telegram when AgentHarnessChannel.type is Telegram.

Appears in:

FieldDescriptionDefaultValidation
botToken AgentHarnessChannelCredential
allowedUserIDs string array
allowedUserIDsFrom ValueSource

AgentSkill#

Underlying type: AgentSkill

Appears in:

FieldDescriptionDefaultValidation
id stringID is the unique identifier for the skill.
name stringName is the human-readable name of the skill.
description stringDescription is an optional detailed description of the skill.
tags string arrayTags are optional tags for categorization.
examples string arrayExamples are optional usage examples.
inputModes string arrayInputModes are the supported input data modes/types.
outputModes string arrayOutputModes are the supported output data modes/types.

AgentSpec#

AgentSpec defines the desired state of Agent.

Appears in:

FieldDescriptionDefaultValidation
type AgentTypeDeclarativeEnum: [Declarative BYO]
byo BYOAgentSpec
declarative DeclarativeAgentSpec
description string
skills SkillForAgentSkills to load into the agent. They will be pulled from the specified container images.
and made available to the agent under the /skills folder.
sandbox SandboxConfigSandbox configures sandboxed execution behavior shared across runtimes.
This is intended for sandboxed declarative execution today, and can also
be consumed by BYO agents.
allowedNamespaces AllowedNamespacesAllowedNamespaces defines which namespaces are allowed to reference this Agent as a tool.
This follows the Gateway API pattern for cross-namespace route attachments.
If not specified, only Agents in the same namespace can reference this Agent as a tool.
This field only applies when this Agent is used as a tool by another Agent.
See: https://gateway-api.sigs.k8s.io/guides/multiple-ns/#cross-namespace-routing

AgentStatus#

AgentStatus defines the observed state of Agent.

Appears in:

FieldDescriptionDefaultValidation
observedGeneration integer
conditions Condition array

AgentType#

Underlying type: string

AgentType represents the agent type

Validation:

  • Enum: [Declarative BYO]

Appears in:

FieldDescription
Declarative
BYO

AllowedNamespaces#

AllowedNamespaces defines which namespaces are allowed to reference this resource. This mechanism provides a bidirectional handshake for cross-namespace references, following the pattern used by Gateway API for cross-namespace route attachments.

By default (when not specified), only references from the same namespace are allowed.

Appears in:

FieldDescriptionDefaultValidation
from FromNamespacesFrom indicates where references to this resource can originate.
Possible values are:
* All: References from all namespaces are allowed.
* Same: Only references from the same namespace are allowed (default).
* Selector: References from namespaces matching the selector are allowed.
SameEnum: [All Same Selector]
selector LabelSelectorSelector is a label selector for namespaces that are allowed to reference this resource.
Only used when From is set to "Selector".

AnthropicConfig#

AnthropicConfig contains Anthropic-specific configuration options

Appears in:

FieldDescriptionDefaultValidation
baseUrl stringBase URL for the Anthropic API (overrides default)
maxTokens integerMaximum tokens to generate
temperature stringTemperature for sampling
topP stringTop-p sampling parameter
topK integerTop-k sampling parameter

AnthropicVertexAIConfig#

Appears in:

FieldDescriptionDefaultValidation
projectID stringThe project ID
location stringThe project location
temperature stringTemperature
topP stringTop-p sampling parameter
topK stringTop-k sampling parameter
stopSequences string arrayStop sequences
maxTokens integerMaximum tokens to generate

AzureOpenAIConfig#

AzureOpenAIConfig contains Azure OpenAI-specific configuration options

Appears in:

FieldDescriptionDefaultValidation
azureEndpoint stringEndpoint for the Azure OpenAI API
apiVersion stringAPI version for the Azure OpenAI API
azureDeployment stringDeployment name for the Azure OpenAI API
azureAdToken stringAzure AD token for authentication
temperature stringTemperature for sampling
maxTokens integerMaximum tokens to generate
topP stringTop-p sampling parameter

BYOAgentSpec#

Appears in:

FieldDescriptionDefaultValidation
deployment ByoDeploymentSpecTrust relationship to the agent.

BaseVertexAIConfig#

Appears in:

FieldDescriptionDefaultValidation
projectID stringThe project ID
location stringThe project location
temperature stringTemperature
topP stringTop-p sampling parameter
topK stringTop-k sampling parameter
stopSequences string arrayStop sequences

BedrockConfig#

BedrockConfig contains AWS Bedrock-specific configuration options.

Appears in:

FieldDescriptionDefaultValidation
region stringAWS region where the Bedrock model is available (e.g., us-east-1, us-west-2)
additionalModelRequestFields JSONAdditionalModelRequestFields 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}}

ByoDeploymentSpec#

Appears in:

FieldDescriptionDefaultValidation
image stringMinLength: 1
cmd string
args string array
replicas integer
imagePullSecrets LocalObjectReference array
volumes Volume array
volumeMounts VolumeMount array
labels object (keys:string, values:string)
annotations object (keys:string, values:string)
env EnvVar array
imagePullPolicy PullPolicy
resources ResourceRequirements
tolerations Toleration array
affinity Affinity
nodeSelector object (keys:string, values:string)
securityContext SecurityContext
podSecurityContext PodSecurityContext
serviceAccountName stringServiceAccountName specifies the name of an existing ServiceAccount to use.
If this field is set, the Agent controller will not create a ServiceAccount for the agent.
This field is mutually exclusive with ServiceAccountConfig.
serviceAccountConfig ServiceAccountConfigServiceAccountConfig configures the ServiceAccount created by the Agent controller.
This field can only be used when ServiceAccountName is not set.
If ServiceAccountName is not set, a default ServiceAccount (named after the agent)
is created, and this config will be applied to it.
extraContainers Container arrayExtraContainers is a list of additional containers to run alongside the main agent container.
Useful for sidecars such as token proxies, log shippers, or security agents.

ContextCompressionConfig#

ContextCompressionConfig configures event history compaction/compression.

Appears in:

FieldDescriptionDefaultValidation
compactionInterval integerThe number of new user-initiated invocations that, once fully represented in the session's events, will trigger a compaction.5Minimum: 1
overlapSize integerThe number of preceding invocations to include from the end of the last compacted range. This creates an overlap between consecutive compacted summaries, maintaining context.2Minimum: 0
summarizer ContextSummarizerConfigSummarizer configures an LLM-based summarizer for event compaction.
If not specified, compacted events are dropped from the context without summarization.
tokenThreshold integerPost-invocation token threshold trigger. If set, ADK will attempt a post-invocation compaction when the most recently
observed prompt token count meets or exceeds this threshold.
eventRetentionSize integerEventRetentionSize is the number of most recent events to always retain.

ContextConfig#

ContextConfig configures context management for an agent.

Appears in:

FieldDescriptionDefaultValidation
compaction ContextCompressionConfigCompaction configures event history compaction.
When enabled, older events in the conversation are compacted (compressed/summarized)
to reduce context size while preserving key information.

ContextSummarizerConfig#

ContextSummarizerConfig configures the LLM-based event summarizer.

Appears in:

FieldDescriptionDefaultValidation
modelConfig stringModelConfig is the name of a ModelConfig resource to use for summarization.
Must be in the same namespace as the Agent.
If not specified, uses the agent's own model.
promptTemplate stringPromptTemplate is a custom prompt template for the summarizer.
See the ADK LlmEventSummarizer for template details:
https://github.com/google/adk-python/blob/main/src/google/adk/apps/llm_event_summarizer.py

DeclarativeAgentSpec#

Appears in:

FieldDescriptionDefaultValidation
runtime DeclarativeRuntimeRuntime specifies which ADK implementation to use for this agent.
- "python": Uses the Python ADK (default, slower startup, full feature set)
- "go": Uses the Go ADK (faster startup, most features supported)
The runtime determines both the container image and readiness probe configuration.
pythonEnum: [python go]
systemMessage stringSystemMessage is a string specifying the system message for the agent.
When PromptTemplate is set, this field is treated as a Go text/template
with access to an include("source/key") function and agent context variables
such as .AgentName, .AgentNamespace, .Description, .ToolNames, and .SkillNames.
systemMessageFrom ValueSourceSystemMessageFrom is a reference to a ConfigMap or Secret containing the system message.
When PromptTemplate is set, the resolved value is treated as a Go text/template.
promptTemplate PromptTemplateSpecPromptTemplate enables Go text/template processing on the systemMessage field.
When set, systemMessage is treated as a Go template with access to the include function
and agent context variables.
modelConfig stringThe name of the model config to use.
If not specified, the default value is "default-model-config".
Must be in the same namespace as the Agent.
stream booleanWhether to stream the response from the model.
If not specified, the default value is false.
tools Tool arrayMaxItems: 20
a2aConfig A2AConfigA2AConfig instantiates an A2A server for this agent,
served on the HTTP port of the kagent kubernetes
controller (default 8083).
The A2A server URL will be served at
<kagent-controller-ip>:8083/api/a2a/<agent-namespace>/<agent-name>
Read more about the A2A protocol here: https://github.com/google/A2A
deployment DeclarativeDeploymentSpec
executeCodeBlocks booleanAllow code execution for python code blocks with this agent.
If true, the agent will automatically execute python code blocks in the LLM responses.
Code will be executed in a sandboxed environment.
due to a bug in adk (https://github.com/google/adk-python/issues/3921), this field is ignored for now.
memory MemorySpecMemory configuration for the agent.
context ContextConfigContext configures context management for this agent.
This includes event compaction (compression) and context caching.

DeclarativeDeploymentSpec#

Appears in:

FieldDescriptionDefaultValidation
imageRegistry string
replicas integer
imagePullSecrets LocalObjectReference array
volumes Volume array
volumeMounts VolumeMount array
labels object (keys:string, values:string)
annotations object (keys:string, values:string)
env EnvVar array
imagePullPolicy PullPolicy
resources ResourceRequirements
tolerations Toleration array
affinity Affinity
nodeSelector object (keys:string, values:string)
securityContext SecurityContext
podSecurityContext PodSecurityContext
serviceAccountName stringServiceAccountName specifies the name of an existing ServiceAccount to use.
If this field is set, the Agent controller will not create a ServiceAccount for the agent.
This field is mutually exclusive with ServiceAccountConfig.
serviceAccountConfig ServiceAccountConfigServiceAccountConfig configures the ServiceAccount created by the Agent controller.
This field can only be used when ServiceAccountName is not set.
If ServiceAccountName is not set, a default ServiceAccount (named after the agent)
is created, and this config will be applied to it.
extraContainers Container arrayExtraContainers is a list of additional containers to run alongside the main agent container.
Useful for sidecars such as token proxies, log shippers, or security agents.

DeclarativeRuntime#

Underlying type: string

DeclarativeRuntime represents the runtime implementation for declarative agents

Validation:

  • Enum: [python go]

Appears in:

FieldDescription
python
go

FromNamespaces#

Underlying type: string

FromNamespaces specifies namespace from which references to this resource are allowed. This follows the same pattern as Gateway API's cross-namespace route attachment. See: https://gateway-api.sigs.k8s.io/guides/multiple-ns/#cross-namespace-routing

Validation:

  • Enum: [All Same Selector]

Appears in:

FieldDescription
AllNamespacesFromAll allows references from all namespaces.
SameNamespacesFromSame only allows references from the same namespace as the target resource (default).
SelectorNamespacesFromSelector allows references from namespaces matching the selector.

GDCHServiceAccountConfig#

GDCHServiceAccountConfig holds GDCH-specific token exchange parameters.

Appears in:

FieldDescriptionDefaultValidation
audience stringAudience is the token exchange audience URL (the GDC inference gateway base URL)

GeminiConfig#

Appears in:

GeminiVertexAIConfig#

GeminiVertexAIConfig contains Gemini Vertex AI-specific configuration options

Appears in:

FieldDescriptionDefaultValidation
projectID stringThe project ID
location stringThe project location
temperature stringTemperature
topP stringTop-p sampling parameter
topK stringTop-k sampling parameter
stopSequences string arrayStop sequences
maxOutputTokens integerMaximum output tokens
candidateCount integerCandidate count
responseMimeType stringResponse mime type

GitRepo#

GitRepo specifies a single Git repository to fetch skills from.

Appears in:

FieldDescriptionDefaultValidation
url stringURL of the git repository (HTTPS or SSH).
ref stringGit reference: branch name, tag, or commit SHA.main
path stringSubdirectory within the repo to use as the skill root.
name stringName for the skill directory under /skills. If omitted, defaults to the last
segment of Path when Path is set; otherwise defaults to the repo name (last
URL path segment, without .git).

MCPTool#

Appears in:

FieldDescriptionDefaultValidation
name string
description string

McpServerTool#

Appears in:

FieldDescriptionDefaultValidation
kind string
apiGroup string
name string
namespace string
toolNames string arrayThe names of the tools to be provided by the ToolServer
For a list of all the tools provided by the server,
the client can query the status of the ToolServer object after it has been created
MaxItems: 50
requireApproval string arrayRequireApproval lists tool names that require human approval before
execution. Each name must also appear in ToolNames. When a tool in
this list is invoked by the agent, execution pauses and the user is
prompted to approve or reject the call.
MaxItems: 50
allowedHeaders string arrayAllowedHeaders specifies which headers from the A2A request should be
propagated to MCP tool calls. Header names are case-insensitive.

Authorization header behavior:
- Authorization headers CAN be propagated if explicitly listed in allowedHeaders
- When STS token propagation is enabled, STS-generated Authorization headers
will take precedence and replace any Authorization header from the A2A request
- This is a security measure to prevent request headers from overwriting
authentication tokens generated by the STS integration

Example: ["x-user-email", "x-tenant-id"]

MemorySpec#

MemorySpec enables long-term memory for an agent.

Appears in:

FieldDescriptionDefaultValidation
modelConfig stringModelConfig is the name of the ModelConfig object whose embedding
provider will be used to generate memory vectors.
ttlDays integerTTLDays controls how many days a stored memory entry remains valid before
it is eligible for pruning. Defaults to 15 days when unset or zero.
Minimum: 1

ModelConfig#

ModelConfig is the Schema for the modelconfigs API.

FieldDescriptionDefaultValidation
apiVersion stringkagent.dev/v1alpha2
kind stringModelConfig
kind stringKind 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
apiVersion stringAPIVersion 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
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ModelConfigSpec
status ModelConfigStatus

ModelConfigSpec#

ModelConfigSpec defines the desired state of ModelConfig.

Appears in:

FieldDescriptionDefaultValidation
model string
apiKeySecret stringThe 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 stringThe 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).
apiKeyPassthrough booleanAPIKeyPassthrough 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.
defaultHeaders object (keys:string, values:string)
provider ModelProviderThe provider of the modelOpenAIEnum: [Anthropic OpenAI AzureOpenAI Ollama Gemini GeminiVertexAI AnthropicVertexAI Bedrock SAPAICore]
openAI OpenAIConfigOpenAI-specific configuration
anthropic AnthropicConfigAnthropic-specific configuration
azureOpenAI AzureOpenAIConfigAzure OpenAI-specific configuration
ollama OllamaConfigOllama-specific configuration
gemini GeminiConfigGemini-specific configuration
geminiVertexAI GeminiVertexAIConfigGemini Vertex AI-specific configuration
anthropicVertexAI AnthropicVertexAIConfigAnthropic-specific configuration
bedrock BedrockConfigAWS Bedrock-specific configuration
sapAICore SAPAICoreConfigSAP AI Core-specific configuration
tls TLSConfigTLS configuration for provider connections.
Enables agents to connect to internal LiteLLM gateways or other providers
that use self-signed certificates or custom certificate authorities.

ModelConfigStatus#

ModelConfigStatus defines the observed state of ModelConfig.

Appears in:

FieldDescriptionDefaultValidation
conditions Condition array
observedGeneration integer
secretHash stringThe 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.

ModelProvider#

Underlying type: string

ModelProvider represents the model provider type

Validation:

  • Enum: [Anthropic OpenAI AzureOpenAI Ollama Gemini GeminiVertexAI AnthropicVertexAI Bedrock SAPAICore]

Appears in:

FieldDescription
Anthropic
AzureOpenAI
OpenAI
Ollama
Gemini
GeminiVertexAI
AnthropicVertexAI
Bedrock
SAPAICore

ModelProviderConfig#

ModelProviderConfig is the Schema for the modelproviderconfigs API. It represents a model provider configuration with automatic model discovery.

FieldDescriptionDefaultValidation
apiVersion stringkagent.dev/v1alpha2
kind stringModelProviderConfig
kind stringKind 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
apiVersion stringAPIVersion 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
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ModelProviderConfigSpec
status ModelProviderConfigStatus

ModelProviderConfigSpec#

ModelProviderConfigSpec defines the desired state of ModelProviderConfig.

Appears in:

FieldDescriptionDefaultValidation
type ModelProviderType is the model provider type (OpenAI, Anthropic, etc.)Enum: [Anthropic OpenAI AzureOpenAI Ollama Gemini GeminiVertexAI AnthropicVertexAI Bedrock SAPAICore]
endpoint stringEndpoint is the API endpoint URL for the provider.
If not specified, the default endpoint for the provider type will be used.
Pattern: ^https?://.*
secretRef SecretReferenceSecretRef references the Kubernetes Secret containing the API key.
Optional for providers that don't require authentication (e.g., local Ollama).

ModelProviderConfigStatus#

ModelProviderConfigStatus defines the observed state of ModelProviderConfig.

Appears in:

FieldDescriptionDefaultValidation
observedGeneration integerObservedGeneration reflects the generation of the most recently observed ModelProviderConfig spec
conditions Condition arrayConditions represent the latest available observations of the ModelProviderConfig's state
discoveredModels string arrayDiscoveredModels is the cached list of model IDs available from this model provider
modelCount integerModelCount is the number of discovered models (for kubectl display)
lastDiscoveryTime TimeLastDiscoveryTime is the timestamp of the last successful model discovery
secretHash stringSecretHash is a hash of the referenced secret data, used to detect secret changes

NetworkConfig#

NetworkConfig configures outbound network access for sandboxed execution paths.

Appears in:

FieldDescriptionDefaultValidation
allowedDomains string arrayAllowedDomains lists the domains that sandboxed execution may contact.
Wildcards such as *.example.com are supported by the sandbox runtime.

OllamaConfig#

OllamaConfig contains Ollama-specific configuration options

Appears in:

FieldDescriptionDefaultValidation
host stringHost for the Ollama API
options object (keys:string, values:string)Options for the Ollama API

OpenAIConfig#

OpenAIConfig contains OpenAI-specific configuration options

Appears in:

FieldDescriptionDefaultValidation
baseUrl stringBase URL for the OpenAI API (overrides default)
organization stringOrganization ID for the OpenAI API
temperature stringTemperature for sampling
maxTokens integerMaximum tokens to generate
topP stringTop-p sampling parameter
frequencyPenalty stringFrequency penalty
presencePenalty stringPresence penalty
seed integerSeed value
n integerN value
timeout integerTimeout
reasoningEffort OpenAIReasoningEffortReasoning effortEnum: [minimal low medium high]
tokenExchange TokenExchangeConfigTokenExchange configures dynamic bearer token acquisition via credential exchange.
Requires apiKeySecret (used as the service account secret) and is mutually exclusive with apiKeyPassthrough.

OpenAIReasoningEffort#

Underlying type: string

OpenAIReasoningEffort represents how many reasoning tokens the model generates before producing a response.

Validation:

  • Enum: [minimal low medium high]

Appears in:

PromptSource#

PromptSource references a ConfigMap whose keys are available as prompt fragments. In systemMessage templates, use include("alias/key") (or include("name/key") if no alias is set) to insert the value of a specific key from this source.

Appears in:

FieldDescriptionDefaultValidation
kind string
apiGroup string
name string
alias stringAlias is an optional short identifier for use in include directives.
If set, use include("alias/key") instead of include("name/key").

PromptTemplateSpec#

PromptTemplateSpec configures prompt template processing for an agent's system message.

Appears in:

FieldDescriptionDefaultValidation
dataSources PromptSource arrayDataSources defines the ConfigMaps whose keys can be included in the systemMessage
using Go template syntax, e.g. include("alias/key") or include("name/key").
MaxItems: 20

RemoteMCPServer#

RemoteMCPServer is the Schema for the RemoteMCPServers API.

FieldDescriptionDefaultValidation
apiVersion stringkagent.dev/v1alpha2
kind stringRemoteMCPServer
kind stringKind 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
apiVersion stringAPIVersion 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
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec RemoteMCPServerSpec
status RemoteMCPServerStatus

RemoteMCPServerProtocol#

Underlying type: string

Validation:

  • Enum: [SSE STREAMABLE_HTTP]

Appears in:

FieldDescription
SSE
STREAMABLE_HTTP

RemoteMCPServerSpec#

RemoteMCPServerSpec defines the desired state of RemoteMCPServer.

Appears in:

FieldDescriptionDefaultValidation
description string
protocol RemoteMCPServerProtocolSTREAMABLE_HTTPEnum: [SSE STREAMABLE_HTTP]
url stringMinLength: 1
headersFrom ValueRef array
timeout Duration30s
sseReadTimeout Duration
terminateOnClose booleantrue
allowedNamespaces AllowedNamespacesAllowedNamespaces defines which namespaces are allowed to reference this RemoteMCPServer.
This follows the Gateway API pattern for cross-namespace route attachments.
If not specified, only Agents in the same namespace can reference this RemoteMCPServer.
See: https://gateway-api.sigs.k8s.io/guides/multiple-ns/#cross-namespace-routing

RemoteMCPServerStatus#

RemoteMCPServerStatus defines the observed state of RemoteMCPServer.

Appears in:

FieldDescriptionDefaultValidation
observedGeneration integerINSERT ADDITIONAL STATUS FIELD - define observed state of cluster
Important: Run "make" to regenerate code after modifying this file
conditions Condition array
discoveredTools MCPTool array

SAPAICoreConfig#

SAPAICoreConfig contains SAP AI Core-specific configuration options.

Appears in:

FieldDescriptionDefaultValidation
baseUrl stringBase URL for the SAP AI Core API (e.g., https://api.ai.prod.eu-central-1.aws.ml.hana.ondemand.com)
resourceGroup stringResource group in SAP AI Coredefault
authUrl stringOAuth2 token endpoint URL (e.g., https://tenant.authentication.eu10.hana.ondemand.com)

SandboxAgent#

SandboxAgent declares an agent that runs in an isolated sandbox (agent-sandbox Sandbox CR).

FieldDescriptionDefaultValidation
apiVersion stringkagent.dev/v1alpha2
kind stringSandboxAgent
kind stringKind 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
apiVersion stringAPIVersion 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
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec AgentSpec
status AgentStatus

SandboxConfig#

SandboxConfig configures sandboxed execution behavior.

Appears in:

FieldDescriptionDefaultValidation
network NetworkConfigNetwork configures outbound network access for sandboxed execution paths.
When unset or when allowedDomains is empty, outbound access is denied by default.

SecretReference#

SecretReference references a Kubernetes Secret that must contain exactly one data key holding the API key or credential.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the secret in the same namespace as the ModelProviderConfig.

ServiceAccountConfig#

Appears in:

FieldDescriptionDefaultValidation
labels object (keys:string, values:string)
annotations object (keys:string, values:string)

SharedDeploymentSpec#

Appears in:

FieldDescriptionDefaultValidation
replicas integer
imagePullSecrets LocalObjectReference array
volumes Volume array
volumeMounts VolumeMount array
labels object (keys:string, values:string)
annotations object (keys:string, values:string)
env EnvVar array
imagePullPolicy PullPolicy
resources ResourceRequirements
tolerations Toleration array
affinity Affinity
nodeSelector object (keys:string, values:string)
securityContext SecurityContext
podSecurityContext PodSecurityContext
serviceAccountName stringServiceAccountName specifies the name of an existing ServiceAccount to use.
If this field is set, the Agent controller will not create a ServiceAccount for the agent.
This field is mutually exclusive with ServiceAccountConfig.
serviceAccountConfig ServiceAccountConfigServiceAccountConfig configures the ServiceAccount created by the Agent controller.
This field can only be used when ServiceAccountName is not set.
If ServiceAccountName is not set, a default ServiceAccount (named after the agent)
is created, and this config will be applied to it.
extraContainers Container arrayExtraContainers is a list of additional containers to run alongside the main agent container.
Useful for sidecars such as token proxies, log shippers, or security agents.

SkillForAgent#

Appears in:

FieldDescriptionDefaultValidation
insecureSkipVerify booleanFetch images insecurely from registries (allowing HTTP and skipping TLS verification).
Meant for development and testing purposes only.
refs string arrayThe list of skill images to fetch.MaxItems: 20
MinItems: 1
imagePullSecrets LocalObjectReference arrayImagePullSecrets is a list of references to secrets in the same namespace to use for
pulling skill images from private registries. Each referenced secret must be of type
kubernetes.io/dockerconfigjson. The credentials from all secrets are merged and made
available to the skills-init container at /.kagent/.docker/config.json; krane will
use them automatically when pulling images.
MaxItems: 20
gitAuthSecretRef LocalObjectReferenceReference to a Secret containing git credentials.
Applied to all gitRefs entries.
The secret should contain a token key for HTTPS auth,
or ssh-privatekey for SSH auth.
gitRefs GitRepo arrayGit repositories to fetch skills from.MaxItems: 20
MinItems: 1
initContainer SkillsInitContainerConfiguration for the skills-init init container.

SkillsInitContainer#

SkillsInitContainer configures the skills-init init container.

Appears in:

FieldDescriptionDefaultValidation
resources ResourceRequirementsResource requirements for the skills-init init container.
env EnvVar arrayAdditional environment variables for the skills-init init container.

TLSConfig#

TLSConfig contains TLS/SSL configuration options for model provider connections. This enables agents to connect to internal LiteLLM gateways or other providers that use self-signed certificates or custom certificate authorities.

Appears in:

FieldDescriptionDefaultValidation
disableVerify booleanDisableVerify 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.
false
caCertSecretRef stringCACertSecretRef is a reference to a Kubernetes Secret containing
CA certificate(s) in PEM format. The Secret must be in the same
namespace as the ModelConfig.
When set, the certificate will be used to verify the provider's SSL certificate.
This field follows the same pattern as APIKeySecret.
caCertSecretKey stringCACertSecretKey is the key within the Secret that contains the CA certificate data.
This field follows the same pattern as APIKeySecretKey.
Required when CACertSecretRef is set (unless DisableVerify is true).
disableSystemCAs booleanDisableSystemCAs 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.
false

TokenExchangeConfig#

TokenExchangeConfig configures dynamic bearer token acquisition before model calls.

Appears in:

FieldDescriptionDefaultValidation
type TokenExchangeTypeEnum: [GDCHServiceAccount]
gdchServiceAccount GDCHServiceAccountConfig

TokenExchangeType#

Underlying type: string

TokenExchangeType identifies the token exchange mechanism

Validation:

  • Enum: [GDCHServiceAccount]

Appears in:

FieldDescription
GDCHServiceAccount

Tool#

Appears in:

FieldDescriptionDefaultValidation
type ToolProviderTypeEnum: [McpServer Agent]
mcpServer McpServerTool
agent TypedReference
headersFrom ValueRef arrayHeadersFrom specifies a list of configuration values to be added as
headers to requests sent to the Tool from this agent. The value of
each header is resolved from either a Secret or ConfigMap in the same
namespace as the Agent. Headers specified here will override any
headers of the same name/key specified on the tool.

ToolProviderType#

Underlying type: string

ToolProviderType represents the tool provider type

Validation:

  • Enum: [McpServer Agent]

Appears in:

FieldDescription
McpServer
Agent

TypedLocalReference#

Appears in:

FieldDescriptionDefaultValidation
kind string
apiGroup string
name string

TypedReference#

Appears in:

FieldDescriptionDefaultValidation
kind string
apiGroup string
name string
namespace string

ValueRef#

ValueRef represents a configuration value

Appears in:

FieldDescriptionDefaultValidation
name string
value string
valueFrom ValueSource

ValueSource#

ValueSource defines a source for configuration values from a Secret or ConfigMap

Appears in:

FieldDescriptionDefaultValidation
type ValueSourceTypeEnum: [ConfigMap Secret]
name stringThe name of the ConfigMap or Secret.MaxLength: 253
key stringThe key of the ConfigMap or Secret.MaxLength: 253

ValueSourceType#

Underlying type: string

Appears in:

FieldDescription
ConfigMap
Secret
Kagent Lab: Discover kagent and kmcp
Free, on‑demand lab: build custom AI agents with kagent and integrate tools via kmcp on Kubernetes.