Release Notes#
The kagent documentation shows information only for the latest release. If you run an older version, review the release notes to understand the main changes from version to version.
v0.6#
Review the main changes from kagent version 0.5 to v0.6, then continue reading for more detailed information.
- The
apiVersion
field in the kagent CRDs is nowkagent.dev/v1alpha2
. - A new Helm chart for kmcp CRDs is available.
- API string references to resources in other namespaces in the format
namespace/name
now fail. Instead, the APIs have a separate field for you to specify the namespace of the resource. - The Tools API moves or eliminates some APIs entirely in favor of new kmcp APIs.
- The Agents APIs now require a top-level
type
field to support the new BYO agent functionality. - The ModelConfig APIs rename the secret name field from
apiKeySecret
toapiKeySecret
. - Memory APIs are not supported in ADK.
Upgraded API version#
The apiVersion
field in the kagent CRDs is now kagent.dev/v1alpha2
.
New! Helm chart for kmcp CRDs#
Previously, the kagent installation included only one CRD Helm chart. As of v0.6.3, the MCPServer CRD is part of a separate kmcp Helm subchart. This kmcp subchart is installed for you when you install the kagent CRD Helm chart.
-
If you installed the separate kmcp CRD Helm in earlier versions of v0.6, uninstall the Helm chart.
helm uninstall kmcp-crds -n kagent -
Install the kagent CRD Helm chart that includes the kmcp subchart.
helm install kagent-crds oci://ghcr.io/kagent-dev/kagent/helm/kagent-crds \--namespace kagent \--create-namespace
General changes#
namespace/name
references: API string references to resources in other namespaces in the format namespace/name
now fail. Instead, the APIs have a separate field for you to specify the namespace of the resource.
Local development buildx
access: The make helm-install
command now creates a local Docker registry to push development images to. As part of the build process, you might need to allow the buildx builder to access your host network. For more information, see the developer docs in the kagent repo.
Tools APIs#
The Tools-related APIs are split up into several different APIs. Some functionality is moved to kmcp, such as the ToolServer API.
ToolServer#
The ToolServer API is completely removed from kagent. Instead, use other resources including some kmcp APIs to create and manage tools.
Stdio ToolServer now in kmcp MCPServer#
Flip through the following tabs to understand the API differences between the old kagent ToolServer and the new method of using kmcp along with a kagent MCPServer and Kubernetes Service for the Stdio transport type.
Old ToolServer example:
- The
stdio
config section includes the Grafana deployment details. - The Grafana details, including the API key, are loaded as environment settings directly in the ToolServer.
apiVersion: kagent.dev/v1alpha2kind: ToolServermetadata:name: mcp-grafananamespace: kagentspec:config:stdio:command: /app/python/bin/mcp-grafanaargs:- -t- stdio- debugreadTimeoutSeconds: 30envFrom:- name: "GRAFANA_URL"value: my-url.com- name: "GRAFANA_API_KEY"valueFrom:type: Secretkey: "grafana"valueRef: kagent-toolserver-secretdescription: ""
kmcp example:
- The kagent MCPServer includes the Grafana deployment details, with
stdio
as the transport type.
apiVersion: kagent.dev/v1alpha1kind: MCPServermetadata:name: grafanaspec:deployment:image: "mcp/grafana:latest"port: 3000cmd: "/app/mcp-grafana"args:- "--transport"- "stdio"env:GRAFANA_URL: my-url.comsecretRefs:- name: grafana-api-keytransportType: "stdio"
- The Grafana API key is stored separately in a Secret, which is more secure.
apiVersion: v1kind: Secretmetadata:name: grafana-api-keytype: Opaquedata:GRAFANA_API_KEY: my-base-64-ikey
HTTP ToolServer moved to RemoteMCPServer#
ToolServer resources that used type: streamableHttp
are now configured as RemoteMCPServer resources. For more detailed information, review the API definitions:
- ToolServer: toolserver_types.go
- RemoteMCPServer: remotemcpserver_types.go
- MCPServer: mcpserver_types.go
Old ToolServer API:
apiVersion: kagent.dev/v1alpha2kind: ToolServermetadata:name: kagent-tool-serverspec:config:type: streamableHttpstreamableHttp:url: "http://kagent-tools.kagent:8084/mcp"timeout: 30ssseReadTimeout: 5m0sdescription: "Official KAgent tool server"
New RemoteMCPServer API:
apiVersion: kagent.dev/v1alpha2kind: RemoteMCPServermetadata:name: kagent-tool-serverspec:url: "http://kagent-tools.kagent:8084/mcp"timeout: 30ssseReadTimeout: 5m0sdescription: "Official KAgent tool server"
Kubernetes Services as HTTP MCP servers#
Now, you can use Kubernetes Services as MCP Servers.
In the old configuration, you created a Service for your MCP Deployment, and then a ToolServer resource that referred to the Service.
apiVersion: v1kind: Servicemetadata:name: kagent-querydocnamespace: kagentspec:ports:- name: httpport: 8080protocol: TCPtargetPort: http---apiVersion: kagent.dev/v1alpha2kind: ToolServermetadata:name: kagent-querydocnamespace: kagentspec:description: Queries a documentation siteconfig:sse:url: http://kagent-querydoc.kagent.svc.cluster.local/sse
In v0.6, you add certain fields to designate the Service as an MCP server.
In the following configuration file, notice the following settings:
kagent.dev/mcp-service: "true"
: Optional: Configure kagent to discover the tools for this Service.appProtocol: mcp
: Required: Configure the port that the controller uses. If not set, and there is a single port, the controller uses that port for the MCP server.
Additional annotations: You can use the following annotations to further configure the your MCP Service.
kagent.dev:mcp-service-path
: Set the path on which the MCP server lives. The default value is/mcp
.kagent.dev/mcp-service-port
: Set the port number to be used. No port is set by default.kagent.dev/mcp-service-port
: Set the protocol to use. Accepted values areSSE
orSTREAMABLE_HTTP
. The default value isSTREAMABLE_HTTP
.
apiVersion: v1kind: Servicemetadata:labels:kagent.dev/mcp-service: "true"annotations:kagent.dev:mcp-service-path: /ssekagent.dev/mcp-service-port: 8080kagent.dev/mcp-service-protocol: SSEname: kagent-querydocnamespace: kagentspec:ports:- appProtocol: mcpname: httpport: 8080protocol: TCPtargetPort: http
Agent APIs#
API to specify the MCP server#
Old API Example:
tools:- type: McpServermcpServer:toolServer: kagent-querydoctoolNames:- query_documentation
New API Example:
tools:- type: McpServermcpServer:name: kagent-querydockind: ServicetoolNames:- query_documentation
Key Changes:
- The
toolServer
field has been removed - Replaced with:
name
,kind
, andapiGroup
fields - This allows specifying 3 different types:
RemoteMCPServer
,Service
, andMCPServer
The toolServer field has been removed, and has been replaced with the following: name kind apiGroup This allows for specifying the 3 different types which may be used. Those are: RemoteMCPServer Service MCPServer Here are the 2 api defs:
Top-level field for Agent APIs#
A new top-level type
field is added to the Agents API. For existing Agents, set the type
to Declarative
, and then nest the previous Agent configuration inline under the declarative
setting.
This change supports the new type for BYO agents.
apiVersion: kagent.dev/v1alpha2kind: Agentmetadata:name: k8s-agentnamespace: {{ include "kagent.namespace" . }}labels:{{- include "kagent.labels" . | nindent 4 }}spec:description: An Kubernetes Expert AI Agent specializing in cluster operations, troubleshooting, and maintenance.systemMessage: |# Kubernetes AI Agent System PromptYou are KubeAssist, an advanced AI agent# ... (truncated for brevity)
v1alpha2 Example: Note that the entire agent configuration is now nested under the inline
setting.
apiVersion: kagent.dev/v1alpha2kind: Agentmetadata:name: k8s-agentnamespace: kagentspec:description: An Kubernetes Expert AI Agent specializing in cluster operations, troubleshooting, and maintenance.type: Declarativedeclarative:systemMessage: |# Kubernetes AI Agent System PromptYou are KubeAssist, an advanced AI agent# ... (truncated for brevity)
Key Changes:
- Added
type: Declarative
field to specify agent type - Agent configuration now under
inline
section - Supports new BYO deployment model
New! BYO agents#
A new agent type has been added to the Agents API so that you can bring your own (BYO) agent. The agent must be written in ADK, with other frameworks under development.
BYO Agent example configuration. For more information, see the BYO Agent guide.
apiVersion: kagent.dev/v1alpha2kind: Agentmetadata:name: basic-agentnamespace: kagentspec:description: This agent can do anything.type: BYObyo:deployment:image: my-byo:latestenv:- name: GOOGLE_API_KEYvalueFrom:secretKeyRef:name: kagent-googlekey: GOOGLE_API_KEY
ModelConfig API#
The secret name field is renamed from apiKeySecret
to apiKeySecret
.
ModelInfo removed#
The modelInfo
setting is removed from the ModelConfig API.
Supported LLM providers are pre-configured by the kagent-dev/autogen project fork for you by default. Trying to override these default settings, such as to enable vision for image recognition, could cause unexpected behavior in models that do not support these settings. Therefore, the modelInfo
field is removed.
Memory API#
The Memory API is not supported in ADK. The agent development kit is required to bring your own agents. As such, the Memory docs are removed.