diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c4672c0c4..bf4d6784b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -7,6 +7,23 @@ our success.
## Development Setup
+### Agentic Development
+
+For a seamless development experience where an AI coding agent (Claude Code,
+Cursor, etc.) manages the full dev lifecycle — running tests, starting/stopping
+the platform, executing migrations — you'll want to grant it broad permissions
+over Mise tasks. Before doing so, consider running the agent inside a sandbox.
+
+This repo is configured for [locki](https://github.com/JanPokorny/locki) — it
+uses the project's own MicroShift VM image (via `locki.toml`). To start a
+sandboxed Claude Code session:
+
+```sh
+locki claude my-sandbox
+```
+
+Install locki with `mise use -g pipx:locki` or `uv tool install locki`.
+
### Installation
This project uses [Mise-en-place](https://mise.jdx.dev/) as a manager of tool versions (`python`, `uv`, `nodejs`, `pnpm`
diff --git a/apps/adk-cli/src/kagenti_cli/commands/connector.py b/apps/adk-cli/src/kagenti_cli/commands/connector.py
index 40284d77d..53a49011a 100644
--- a/apps/adk-cli/src/kagenti_cli/commands/connector.py
+++ b/apps/adk-cli/src/kagenti_cli/commands/connector.py
@@ -248,7 +248,7 @@ async def disconnect(
] = "",
yes: typing.Annotated[bool, typer.Option("--yes", "-y", help="Skip confirmation prompts.")] = False,
all: typing.Annotated[
- bool, typer.Option("--all", "-a", help="Deisconnect all connectors without selection.")
+ bool, typer.Option("--all", "-a", help="Disconnect all connectors without selection.")
] = False,
) -> None:
"""Disconnect one or more connectors."""
diff --git a/apps/adk-cli/src/kagenti_cli/commands/platform.py b/apps/adk-cli/src/kagenti_cli/commands/platform.py
index 7073a4527..ee3793707 100644
--- a/apps/adk-cli/src/kagenti_cli/commands/platform.py
+++ b/apps/adk-cli/src/kagenti_cli/commands/platform.py
@@ -240,6 +240,7 @@ async def start_cmd(
"--set",
help="Set Helm chart values. Prefix with chart name: --set kagenti:key=val, --set kagenti-deps:key=val. Unprefixed applies to kagenti-adk.",
default_factory=list,
+ show_default=False,
),
],
image_pull_mode: typing.Annotated[
diff --git a/docs/development/agent-integration/env-variables.mdx b/docs/development/agent-integration/env-variables.mdx
index 92beb561e..db8c56a17 100644
--- a/docs/development/agent-integration/env-variables.mdx
+++ b/docs/development/agent-integration/env-variables.mdx
@@ -70,12 +70,8 @@ Import the necessary components from the Kagenti ADK.
Add an `EnvVar` list to the `variables` field in your `AgentDetail` configuration.
-
-Use `kagenti-adk add` command to [deploy your agent in Kagenti ADK](../deploy-agents/deploy-your-agents)
-
-
-
-Configure environment variables for your agent using `kagenti-adk env add "Name or ID of your Agent" KEY=VALUE`.
+
+Pass environment variables when deploying your agent using `kagenti-adk add --env KEY=VALUE` or via an env file with `--env-file .env`. See [Deploy Your Agents](../deploy-agents/deploy-your-agents) for details.
@@ -84,38 +80,26 @@ Use `os.getenv()` to access the environment variables in your agent code.
-## Managing Environment Variables
+## Providing Environment Variables
-Once your agent is deployed to Kagenti ADK, you need to provide the environment variables it requires. You can manage these variables using the `kagenti-adk env` CLI commands.
+When deploying your agent to Kagenti ADK, you supply environment variables at the time of deployment using the `--env` flag on `kagenti-adk add`. You can pass multiple variables and also load them from a file.
-### Adding Environment Variables
+### Adding Environment Variables at Deploy Time
-To provide environment variables to your agent, use the `kagenti-adk env add` command:
+Use one or more `--env KEY=VALUE` flags when adding your agent:
```bash
-kagenti-adk env add "Name or ID of the agent" FIRST_VAR=VALUE SECOND_VAR=VALUE ...
+# Pass individual variables
+kagenti-adk add --env FIRST_VAR=VALUE --env SECOND_VAR=VALUE
+
+# Or use an env file (KEY=VALUE per line)
+kagenti-adk add --env-file path/to/.env
```
-You can add multiple variables at once by including them all in a single command.
+You can combine `--env` and `--env-file`. Individual `--env` entries take precedence over the file.
-### Listing Environment Variables
-
-To view the environment variables configured for an agent:
-
-```bash
-kagenti-adk env list "Name or ID of the agent"
-```
-
-### Removing Environment Variables
-
-To remove an environment variable from an agent:
-
-```bash
-kagenti-adk env remove "Name or ID of the agent" VARIABLE_NAME
-```
-
### Checking Missing Variables
-When a required variable hasn't been provided, you can see this in the agent list. Use `kagenti-adk list` to view all agents - the `INFO` column shows which variables still need to be configured.
+If a required variable is missing, your agent will likely fail to start. Run `kagenti-adk list` — an agent in `error` state will show the error message in the `Info` column, which may indicate the missing variable.
diff --git a/docs/development/agent-integration/observability.mdx b/docs/development/agent-integration/observability.mdx
index 87026beaf..839274051 100644
--- a/docs/development/agent-integration/observability.mdx
+++ b/docs/development/agent-integration/observability.mdx
@@ -3,41 +3,39 @@ title: Monitoring & Observability
description: Monitor traces, logs, and metrics from your agents and platform
---
-Kagenti ADK provides built-in observability through [OpenTelemetry (OTLP)](https://opentelemetry.io/). This allows you to monitor agent health, performance metrics, and execution traces in real-time. By default, the stack integrates with [Arize Phoenix](https://docs.arize.com/phoenix) for local visualization, but it can be routed to any OTLP-compliant backend.
+Kagenti ADK provides built-in observability through [OpenTelemetry (OTLP)](https://opentelemetry.io/). This allows you to monitor agent health, performance metrics, and execution traces in real-time. The stack can integrate with [Arize Phoenix](https://docs.arize.com/phoenix) for local visualization or be routed to any OTLP-compliant backend such as [Langfuse](https://langfuse.com/).
```mermaid
graph LR
%% Sources
- Kagenti ADK[Kagenti ADK Server]
+ Kagenti ADK[Kagenti ADK Server]
Agent[Agent Providers]
-
+
%% Collector
OTLP[OpenTelemetry
Collector
:4318]
-
+
%% Destinations
- Phoenix[Phoenix
:6006
✓ Built-in]
- Langfuse[Langfuse
Cloud
⚙ Config Required]
- Custom[Custom
Backend
⚙ Config Required]
-
+ Phoenix[Phoenix
:6006
⚙ Opt-in]
+ Langfuse[Langfuse
Cloud
⚙ Opt-in]
+ Custom[Custom
Backend
⚙ Opt-in]
+
%% Data flows
Kagenti ADK -->|traces/metrics| OTLP
Agent -->|traces/metrics| OTLP
-
+
OTLP --> Phoenix
OTLP --> Langfuse
OTLP --> Custom
-
+
%% Simple styling
classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px,color:#000
classDef collector fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000
- classDef builtin fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#000
classDef optional fill:#fff3e0,stroke:#f57c00,stroke-width:2px,stroke-dasharray: 5 5,color:#000
-
+
class OTLP collector
- class Phoenix builtin
- class Langfuse,Custom optional
+ class Phoenix,Langfuse,Custom optional
```
For telemetry to flow successfully, it must be enabled at three levels:
@@ -47,17 +45,17 @@ For telemetry to flow successfully, it must be enabled at three levels:
- The server must be configured to export that data by setting `configure_telemetry=True`.
+ The server must be configured to export telemetry data by setting `configure_telemetry=True`.
- The infrastructure must be running a collector and a backend (like Arize Phoenix) to receive and display the data.
+ The infrastructure must be running a collector and a backend (like Arize Phoenix or Langfuse) to receive and display the data. The OTel collector and Phoenix are disabled by default and must be explicitly enabled.
## Agent SDK Configuration
-Before configuring an observability platform, your agent code must be "telemetry-aware." This configuration applies to all implementations, whether you are using local Phoenix or a cloud provider like Langfuse.
+Before configuring an observability platform, your agent code must be "telemetry-aware." This configuration applies to all backends, whether you are using local Phoenix or a cloud provider like Langfuse.
You must initialize instrumentation at the agent logic level and enable the export flag in the Kagenti ADK:
@@ -72,38 +70,22 @@ from kagenti_adk.server import Server
server = Server()
@server.agent()
-async def my_agent():
+async def my_agent():
...
# 2. SDK Level: Enable the bridge to the platform collector
server.run(configure_telemetry=True)
```
+By default, the SDK sends telemetry to `http://otel-collector.localtest.me:8080`. You can override this by setting the `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable.
+
For an enhanced user experience and richer trace detail, consider instrumenting agents using the [OpenInference](https://github.com/Arize-ai/openinference/) standard for custom instrumentation.
-## Simple Monitoring: Agent Logs
-
-The quickest way to see what your agent is doing is by streaming its logs directly to your terminal. This is ideal for debugging container lifecycle events and immediate request errors.
-
-```bash
-kagenti-adk logs
-```
-
-What you'll see:
-- Agent startup and initialization
-- Request processing steps
-- Error messages and stack traces
-- Container lifecycle events
-
-
- Logs are only available for managed (containerized) agents that are currently running on Kagenti ADK.
-
-
## Advanced Observability: Traces & Metrics
-By default, Kagenti ADK integrates with [Arize Phoenix](https://phoenix.arize.com/) for local visualization of agent traces. For cloud-based observability and production monitoring, you can easily integrate [Langfuse](https://langfuse.com/).
+The OTel collector and Phoenix are **disabled by default** in the Kagenti ADK platform. You can enable them to visualize agent traces locally, or route telemetry to a cloud provider like [Langfuse](https://langfuse.com/).
Telemetry details include:
- Platform version and runtime details
@@ -116,43 +98,39 @@ Telemetry details include:
-
+
-Phoenix is included by default as part of the kagenti observability stack (OTel collector + Phoenix). Simply start the platform:
+Start the platform with the OTel collector and Phoenix enabled:
```sh
-kagenti-adk platform start
+kagenti-adk platform start --set kagenti-deps:components.otel.enabled=true
```
-To disable Phoenix and the OTel collector, pass:
+To disable them again later, omit the flag or pass:
```sh
kagenti-adk platform start --set kagenti-deps:components.otel.enabled=false
```
-
-Spinning up the Phoenix container can take a moment, even after the CLI reports success. Go to [http://phoenix.localtest.me:8080](http://phoenix.localtest.me:8080) and check if it's running. If not, please wait a few moments.
+
-
-
-
-
-Execute an agent to generate data:
+Execute an agent to generate telemetry data:
```sh
-kagenti-adk run chat "Hello"
+kagenti-adk run "Hello"
```
-Open [http://localhost:6006](http://localhost:6006) in your browser and navigate to the **default** project to explore the collected traces.
+Open [http://phoenix.localtest.me:8080](http://phoenix.localtest.me:8080) in your browser and navigate to the **default** project to explore the collected traces.
### Enable Langfuse Observability
-To route traces to Langfuse, provide a custom OTLP configuration:
+
+To route traces to [Langfuse](https://langfuse.com/), you need to enable the OTel collector and provide Langfuse-specific configuration via a values file.
@@ -162,25 +140,26 @@ To route traces to Langfuse, provide a custom OTLP configuration:
3. Encode your keys: `echo -n "public_key:secret_key" | base64`
-
+
+Create a `values.yaml` with chart-scoped sections to enable the OTel collector and configure the Langfuse exporter:
+
```yaml
-collector:
- exporters:
- otlphttp/langfuse:
- endpoint: "https://cloud.langfuse.com/api/public/otel" # EU data region
- headers:
- Authorization: "Basic "
- pipelines:
- traces:
- receivers: [ otlp ]
- processors: [ memory_limiter, filter/phoenix, batch ]
- exporters: [ otlphttp/langfuse ]
+kagenti-deps:
+ components:
+ otel:
+ enabled: true
+ # Consult the kagenti-deps chart documentation for available
+ # OTel collector configuration options to route traces to Langfuse.
```
+
+
+ The OTel collector configuration (exporters, processors, pipelines) is managed by the `kagenti-deps` Helm chart. Refer to its documentation for the full list of available configuration options.
+
```bash
-kagenti-adk platform start -f config.yaml
+kagenti-adk platform start -f values.yaml
```
@@ -188,7 +167,7 @@ kagenti-adk platform start -f config.yaml
Execute an agent to generate data:
```sh
-kagenti-adk run chat "Hello"
+kagenti-adk run "Hello"
```
Check your Langfuse project dashboard for incoming traces and metrics.
@@ -200,5 +179,3 @@ Check your Langfuse project dashboard for incoming traces and metrics.
- **OpenTelemetry Docs**: https://opentelemetry.io/docs/
- **Langfuse Docs**: https://langfuse.com/docs
- **Phoenix Docs**: https://docs.arize.com/phoenix
-- **Prometheus Docs**: https://prometheus.io/docs/
-- **Grafana Docs**: https://grafana.com/docs/
diff --git a/docs/development/agent-integration/rag.mdx b/docs/development/agent-integration/rag.mdx
index a27505cc0..337337fd8 100644
--- a/docs/development/agent-integration/rag.mdx
+++ b/docs/development/agent-integration/rag.mdx
@@ -123,7 +123,7 @@ from kagenti_adk.a2a.extensions import (
)
from kagenti_adk.a2a.types import AgentMessage
from kagenti_adk.server.context import RunContext
-from kagenti_adk.util.file import PlatformFileUrl
+from kagenti_adk.platform import PlatformFileUrl
# File formats supported by the text-extraction service (docling)
default_input_modes = [
diff --git a/docs/development/community/contribute.mdx b/docs/development/community/contribute.mdx
index ff0b57af9..2283ea4a0 100644
--- a/docs/development/community/contribute.mdx
+++ b/docs/development/community/contribute.mdx
@@ -35,7 +35,7 @@ You don’t need to be an AI expert to help. Here’s how you can make impact to
Not sure where to begin?
- Start with our [Contributing Guide](https://github.com/kagenti/adk/blob/main/CONTRIBUTING.md)
- Browse [Good first issues](https://github.com/kagenti/adk/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22) to find approachable tasks to get your feet wet
-- Join the conversation on [Discord](https://discord.gg/NradeA6ZNF) - questions, ideas, and curiosity welcome
+- Join the conversation on [Discord](https://discord.gg/aJ92dNDzqB) - questions, ideas, and curiosity welcome
Don't hesitate to reach out - we’re here to help you get started.
@@ -43,4 +43,4 @@ Don't hesitate to reach out - we’re here to help you get started.
We’re grateful for your time, your ideas, and your effort to help make Kagenti ADK better.
-If you get stuck, feel free to [open an issue](https://github.com/kagenti/adk/issues) or reach out to the team on [Discord](https://discord.gg/NradeA6ZNF)!
\ No newline at end of file
+If you get stuck, feel free to [open an issue](https://github.com/kagenti/adk/issues) or reach out to the team on [Discord](https://discord.gg/aJ92dNDzqB)!
\ No newline at end of file
diff --git a/docs/development/custom-ui/a2a-client.mdx b/docs/development/custom-ui/a2a-client.mdx
index ac1b31d65..20c4bf0a0 100644
--- a/docs/development/custom-ui/a2a-client.mdx
+++ b/docs/development/custom-ui/a2a-client.mdx
@@ -11,7 +11,7 @@ If you only need the fast path, start with **[Getting Started](./getting-started
- **Packages installed**: `@kagenti/adk` and `@a2a-js/sdk`
- **Platform base URL** and **provider ID**
-- **CORS enabled on the server** for your frontend origin when running in a browser (or use a same-origin proxy). See **[Cross-Origin Resource Sharing Configuration](../deploy-agent-stack/deployment-guide#cross-origin-resource-sharing-configuration)**.
+- **CORS enabled on the server** for your frontend origin when running in a browser (or use a same-origin proxy). See **[Cross-Origin Resource Sharing Configuration](../deploy-adk/deployment-guide#cross-origin-resource-sharing-configuration)**.
- **User access token** (for platform API calls)
- **Context token** (for A2A requests)
@@ -65,6 +65,12 @@ const agentMetadata = await resolveMetadata(fulfillments);
See **[Agent Requirements](./agent-requirements)** for the available service and UI extension helpers.
+
+ **State value compatibility**
+
+ The Kagenti ADK SDK uses uppercase state constants (e.g., `TASK_STATE_AUTH_REQUIRED`, `TASK_STATE_INPUT_REQUIRED`) internally, while `@a2a-js/sdk` emits lowercase states (e.g., `auth-required`, `input-required`). The `handleTaskStatusUpdate` helper handles this mapping for you, but if you write custom state checks, use the lowercase values from `@a2a-js/sdk` events directly.
+
+
### 2. Send the initial message stream
Start a task by sending the user prompt that triggers the project brief flow.
diff --git a/docs/development/custom-ui/getting-started.mdx b/docs/development/custom-ui/getting-started.mdx
index e909828db..acf5c2d39 100644
--- a/docs/development/custom-ui/getting-started.mdx
+++ b/docs/development/custom-ui/getting-started.mdx
@@ -39,7 +39,7 @@ Use the user access token from your identity provider (OIDC/OAuth) for UI side A
**Browser clients require CORS**
- If your custom UI runs on a different origin than your Kagenti ADK server, enable CORS on the server for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-agent-stack/deployment-guide#cross-origin-resource-sharing-configuration)**.
+ If your custom UI runs on a different origin than your Kagenti ADK server, enable CORS on the server for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-adk/deployment-guide#cross-origin-resource-sharing-configuration)**.
If allowing origins directly is not possible, route calls through a same-origin frontend proxy.
@@ -172,6 +172,7 @@ The SDK is split into focused entrypoints:
2. `@kagenti/adk/api` for platform API client, schemas, and types
3. `@kagenti/adk/core` for extension helpers and A2A interaction utilities
4. `@kagenti/adk/extensions` for A2A extension definitions and types
+5. `@kagenti/adk/experimental/server` for experimental server-side features
## Protocol Types and Schemas
diff --git a/docs/development/custom-ui/platform-api-client.mdx b/docs/development/custom-ui/platform-api-client.mdx
index 504394ef7..cbb35410d 100644
--- a/docs/development/custom-ui/platform-api-client.mdx
+++ b/docs/development/custom-ui/platform-api-client.mdx
@@ -28,7 +28,7 @@ const api = buildApiClient({
**Browser clients require CORS**
- If you call the Kagenti ADK API from a browser app running on a different origin, enable server-side CORS for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-agent-stack/deployment-guide#cross-origin-resource-sharing-configuration)**.
+ If you call the Kagenti ADK API from a browser app running on a different origin, enable server-side CORS for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-adk/deployment-guide#cross-origin-resource-sharing-configuration)**.
If allowing origins directly is not possible, route calls through a same-origin frontend proxy.
@@ -209,48 +209,6 @@ if (result.ok && result.data) {
}
```
-### Provider Builds
-
-- `listProviderBuilds({ query }: ListProviderBuildsRequest): ListProviderBuildsResponse`
-- `createProviderBuild({ location, build_configuration, on_complete }: CreateProviderBuildRequest): CreateProviderBuildResponse`
-- `readProviderBuild({ id }: ReadProviderBuildRequest): ReadProviderBuildResponse`
-- `deleteProviderBuild({ id }: DeleteProviderBuildRequest): DeleteProviderBuildResponse`
-- `readProviderBuildLogs({ id }: ReadProviderBuildLogsRequest): ReadProviderBuildLogsResponse`
-- `previewProviderBuild({ location, build_configuration, on_complete }: PreviewProviderBuildRequest): PreviewProviderBuildResponse`
-
-#### Example: Create a Provider Build
-
-```typescript
-const build = unwrapResult(
- await api.createProviderBuild({
- location: "github.com/org/repo",
- build_configuration: { dockerfile_path: "Dockerfile" },
- on_complete: {
- type: "add_provider",
- auto_stop_timeout_sec: 900,
- variables: {
- OPENAI_API_KEY: "secret",
- },
- },
- }),
-);
-
-console.log(build.status);
-```
-
-#### Example: Streaming Provider Build Logs
-
-`readProviderBuildLogs` returns a `ReadableStream` in `data`:
-
-```typescript
-const result = await api.readProviderBuildLogs({ id: build.id });
-
-if (result.ok && result.data) {
- const reader = result.data.getReader();
- await reader.read();
-}
-```
-
### Model Providers
- `listModelProviders(): ListModelProvidersResponse`
diff --git a/docs/development/deploy-agent-stack/authenticate-cli-to-server.mdx b/docs/development/deploy-adk/authenticate-cli-to-server.mdx
similarity index 100%
rename from docs/development/deploy-agent-stack/authenticate-cli-to-server.mdx
rename to docs/development/deploy-adk/authenticate-cli-to-server.mdx
diff --git a/docs/stable/deploy-agent-stack/deployment-guide.mdx b/docs/development/deploy-adk/deployment-guide.mdx
similarity index 98%
rename from docs/stable/deploy-agent-stack/deployment-guide.mdx
rename to docs/development/deploy-adk/deployment-guide.mdx
index f07912a6b..0c80a5f60 100644
--- a/docs/stable/deploy-agent-stack/deployment-guide.mdx
+++ b/docs/development/deploy-adk/deployment-guide.mdx
@@ -79,7 +79,6 @@ auth:
enabled: true
basic:
enabled: true
- adminPassword: 'my-secret-password'
```
### 3. Install the Chart
@@ -193,7 +192,6 @@ auth:
enabled: true
basic:
enabled: true
- adminPassword: 'my-secret-password'
```
#### Keycloak OIDC (Default)
@@ -303,8 +301,8 @@ Without verified emails, authentication will fail with "Verified email not found
**Roles:**
-- `kagenti-admin`: Full ADK system access.
-- `kagenti-developer`: Access to agent management.
+- `adk-admin`: Full ADK system access.
+- `adk-developer`: Agent management access.
- `kagenti-admin`: Full kagenti platform access.
- `kagenti-operator`: Operational access to kagenti resources.
- `kagenti-viewer`: Read-only access to kagenti resources.
@@ -364,7 +362,9 @@ If the migration fails while installing the vector extension, you can disable au
manually.
```yaml
-initContainers.createVectorDbExtension=false
+server:
+ initContainers:
+ createVectorDbExtension: false
```
Then make sure the following SQL statements were executed in your database:
@@ -391,8 +391,13 @@ seaweedfs:
enabled: false
externalS3:
host:
+ port: 443
accessKeyID:
accessKeySecret:
+ # existingSecret: "" # Use existing secret instead of inline credentials
+ protocol: "https" # "http" or "https"
+ bucket: "adk-files" # S3 bucket name
+ region: "us-east-1" # S3 region
```
### Redis
diff --git a/docs/development/deploy-agents/building-agents.mdx b/docs/development/deploy-agents/building-agents.mdx
index d51b79c92..6a5c362da 100644
--- a/docs/development/deploy-agents/building-agents.mdx
+++ b/docs/development/deploy-agents/building-agents.mdx
@@ -40,7 +40,7 @@ uv run server
**Enable auto-reload during development:** Add `watchfiles` to automatically restart your server when code changes:
- ```bash uv run watchfiles adk_agents.agent.run ```
+ ```bash uv run watchfiles kagenti_adk_agents.agent.run ```
@@ -105,12 +105,12 @@ if __name__ == "__main__":
An agent is essentially an HTTP server. Use `server.run()` to define how your agent listens for requests:
- Host: Defaults to `127.0.0.1` (localhost).
-- Port: Defaults to `8000`. If you run multiple agents on the same machine, ensure each has a unique port.
+- Port: Defaults to `10000`. The starter template overrides this to `8000` via the `PORT` environment variable. If you run multiple agents on the same machine, ensure each has a unique port.
- Add the `@server.agent` decorator to your function so the platform recognizes it as an agent.
+ Add the `@server.agent()` decorator to your function so the platform recognizes it as an agent.
@@ -150,8 +150,6 @@ correctly with the Kagenti ADK platform.
- If you plan to deploy your agent to the platform (rather than just running it locally), your repository must contain
a `Dockerfile`
- Git and Platform Metadata
- - The repository must be accessible to the Kagenti ADK orchestrator if you are using the `kagenti-adk add` command via
- URL.
- Use Git tags (e.g., v1.0.0) if you want to manage stable releases of your agent.
diff --git a/docs/development/deploy-agents/deploy-your-agents.mdx b/docs/development/deploy-agents/deploy-your-agents.mdx
index 8b5fd47d6..6441ccb70 100644
--- a/docs/development/deploy-agents/deploy-your-agents.mdx
+++ b/docs/development/deploy-agents/deploy-your-agents.mdx
@@ -8,25 +8,26 @@ ADK can run it as a managed service.
## Prerequisites
-- Kagenti ADK installed ([Quickstart](/stable/introduction/quickstart))
+- Kagenti ADK installed and platform running ([Quickstart](/stable/introduction/quickstart))
- Agent wrapped with Kagenti ADK ([Wrap Existing Agents](/stable/deploy-agents/wrap-existing-agents) or
[Build New Agent](/stable/deploy-agents/building-agents))
+- A container runtime with `docker` CLI available (e.g. Docker Desktop, Colima, Rancher Desktop)
## Agent Deploy Process
-To deploy your agent to Kagenti ADK, you need to create a github repository with your agent and then deploy from that
-repository to Kagenti ADK.
+Deploying an agent involves three steps: creating a repository with a Dockerfile, building a container image, and registering it with the platform.
-### 1. Create an Agent github repository
+### 1. Create an Agent Repository
-You can quickly create an agent repository by using the Kagenti ADK starter template. The
-[adk-starter template](https://github.com/kagenti/adk-starter) includes everything you need:
+Your agent needs a `Dockerfile` so it can be built as a container image. The easiest way to get started is the
+Kagenti ADK starter template. The [adk-starter template](https://github.com/kagenti/adk-starter) includes everything
+you need:
- Production-ready Dockerfile
- GitHub Actions for automated builds
- Kagenti ADK deployment configuration
-Clone it and modify it for your agent as follows:
+Clone it and modify it for your agent:
```bash
git clone https://github.com/kagenti/adk-starter my-agent
@@ -34,12 +35,11 @@ cd my-agent
# Replace the example agent with your code
```
-Alternatively, if you want to start from scratch, you can create your own github repository. You will need to include a
-`Dockerfile` with the following information:
+Alternatively, add the following `Dockerfile` to your own project:
```dockerfile
-FROM python:3.13-alpine3.23
-COPY --from=ghcr.io/astral-sh/uv:0.10.4 /uv /bin/
+FROM python:3.14-alpine3.23
+COPY --from=ghcr.io/astral-sh/uv:0.10.9 /uv /bin/
WORKDIR /app
ADD . .
RUN HOME=/tmp uv sync --no-cache --locked --link-mode copy
@@ -47,66 +47,72 @@ ENV PRODUCTION_MODE=true
CMD ["/app/.venv/bin/server"]
```
-### 2. Deploy your Agent to Kagenti ADK
+### 2. Build the Agent Image
-To deploy from your my-agent github repo, run the following with your organization name substituted for myorg:
+Use `kagenti-adk build` to build your container image and push it to the platform's internal registry.
+The command accepts any Docker build context:
```bash
-kagenti-adk add https://github.com/myorg/my-agent
-```
+# Build from current directory (most common)
+kagenti-adk build .
-This command automatically:
+# Build from a specific path
+kagenti-adk build ./path/to/agent
-1. ✓ Builds your Docker image from github using the provided Dockerfile in the github root directory
-2. ✓ Copies the image into Kagenti ADK's VM
-3. ✓ Registers it as an available agent
+# Build from a GitHub repository URL
+kagenti-adk build https://github.com/myorg/my-agent.git
-As a specific example, to deploy the adk-starter example agent without modification, you can issue the following
-command:
+# Build from a specific branch or tag
+kagenti-adk build "https://github.com/myorg/my-agent.git#mybranch"
-```bash
-kagenti-adk add https://github.com/kagenti/adk-starter
+# Build from a subfolder within a repository
+kagenti-adk build "https://github.com/myorg/my-agent.git#:path/to/agent"
+
+# Use a custom Dockerfile
+kagenti-adk build . -f Dockerfile.prod
+
+# Set a custom image tag
+kagenti-adk build . -t my-agent
```
+On success, the command prints the exact `kagenti-adk add` command to use in the next step.
+
- **Why "copy into VM"?** Kagenti ADK runs in an isolated VM (Lima on Mac/Linux, WSL on Windows). Even though Docker
- Desktop builds your image, Kagenti ADK needs it copied into its VM to run it. The `add` command handles this
- automatically.
+ **Why "push to platform registry"?** Kagenti ADK runs in an isolated VM (Lima on Mac/Linux, WSL on Windows). The
+ `build` command builds the image locally with Docker and imports it into the VM's registry so Kagenti ADK can run it.
-## Github Deploy Options
+### 3. Register the Agent
-The `kagenti-adk add` command supports various URL formats to specify the repository, version, and location of your
-agent's code.
+Run the `kagenti-adk add` command printed by the build step, e.g.:
-The supported formats include:
+```bash
+kagenti-adk add registry.cr-system.svc.cluster.local:5000/my-agent:latest
+```
-- **Basic URL**: `https://github.com/myorg/myrepo`
-- **Git Protocol URL**: `git+https://github.com/myorg/myrepo`
-- **URL with .git suffix**: `https://github.com/myorg/myrepo.git`
-- **URL with Version Tag**: `https://github.com/myorg/myrepo@v1.0.0`
-- **URL with Branch Name**: `https://github.com/myorg/myrepo@my-branch`
-- **URL with Subfolder Path**: `https://github.com/myorg/myrepo#path=/path/to/agent`
-- **Combined Formats**: `https://github.com/myorg/myrepo.git@v1.0.0#path=/path/to/agent`
-- **Enterprise GitHub**: `https://github.mycompany.com/myorg/myrepo`
+This deploys your agent as a managed service inside the Kagenti ADK platform and waits for it to become healthy.
-#### Example
+## Using Pre-built Images
-To deploy an agent from a specific branch and subfolder, you would run:
+If you already have a container image published to a registry (e.g., via GitHub Actions), you can add it directly
+without running `kagenti-adk build`:
```bash
-kagenti-adk add "https://github.com/my-org/my-awesome-agents@main#path=/my-agent"
+kagenti-adk add ghcr.io/myorg/my-agent:latest
```
-This command tells Kagenti ADK to:
+This also supports environment variables and an env file:
-1. Fetch the `main` branch of the `my-awesome-agents` repository.
-2. Look for the agent's `Dockerfile` and source code in the `/my-agent` directory.
-3. Build the Docker image and register it with the platform.
+```bash
+kagenti-adk add ghcr.io/myorg/my-agent:latest \
+ --name my-agent \
+ -e API_KEY=abc123 \
+ --env-file .env
+```
-### Verify Deployment
+## Verify Deployment
-You can check that your agent is registered by running:
+Check that your agent is registered:
```bash
kagenti-adk list
@@ -130,20 +136,6 @@ kagenti-adk ui
Your agent will be available at `http://adk.localtest.me:8080`
-## Advanced Options
-
-### Two-step build process
-
-If you need more control over the build:
-
-```bash
-# Step 1: Build and copy to Kagenti ADK VM
-kagenti-adk build https://github.com/myorg/myrepo
-
-# Step 2: Register the agent
-kagenti-adk add adk.local/my-agent-abc123:latest
-```
-
## Next Steps
Now that your agent is deployed, enhance it with extensions:
@@ -154,7 +146,7 @@ Change your agent's LLM at runtime and manage model connections dynamically
- Visualize your agent’s decision-making and interactions over time in the UI
+ Visualize your agent's decision-making and interactions over time in the UI
diff --git a/docs/development/deploy-agents/wrap-existing-agents.mdx b/docs/development/deploy-agents/wrap-existing-agents.mdx
index e1b402c7d..d3deb2ae9 100644
--- a/docs/development/deploy-agents/wrap-existing-agents.mdx
+++ b/docs/development/deploy-agents/wrap-existing-agents.mdx
@@ -92,7 +92,7 @@ Your agent will automatically register with Kagenti ADK!
**Enable auto-reload during development:** Add `watchfiles` to automatically restart your server when code changes:
```bash
-uv run watchfiles adk_agents.agent.run
+uv run watchfiles kagenti_adk_agents.agent.run
```
@@ -120,13 +120,13 @@ Access previous messages in the conversation:
@server.agent()
async def contextual_agent(input: Message, context: RunContext):
# Get conversation history
- previous_messages = context.history
-
+ previous_messages = [msg async for msg in context.load_history()]
+
# Your agent can use this context
result = await my_agent_with_context(
current_message=get_message_text(input),
history=previous_messages
)
-
+
yield AgentMessage(text=result)
```
\ No newline at end of file
diff --git a/docs/development/experimental/connectors.mdx b/docs/development/experimental/connectors.mdx
index d780d29c9..4aac21de1 100644
--- a/docs/development/experimental/connectors.mdx
+++ b/docs/development/experimental/connectors.mdx
@@ -192,7 +192,7 @@ connector = await Connector.create(
#### Delete a Connector
```python
await connector.delete()
-await connecrtor.wait_for_deletion(). # Wait until the connector is deleted from the platform
+await connector.wait_for_deletion() # Wait until the connector is deleted from the platform
```
#### List Connectors
diff --git a/docs/development/introduction/quickstart.mdx b/docs/development/introduction/quickstart.mdx
index 9b6bc5b4a..84792750e 100644
--- a/docs/development/introduction/quickstart.mdx
+++ b/docs/development/introduction/quickstart.mdx
@@ -49,7 +49,7 @@ On Linux, Lima requires QEMU. Install it via these ([instructions](https://www.q
Open a new terminal and run:
```bash
-uv python install --quiet --python-preference=only-managed --no-bin 3.13 && uv tool install --refresh --force --python-preference=only-managed --python=3.13 kagenti-adk && kagenti-adk self install
+uv python install --quiet --python-preference=only-managed --no-bin 3.14 && uv tool install --refresh --force --python-preference=only-managed --python=3.14 --with kagenti-adk kagenti-cli && kagenti-adk self install
```
Follow the interactive prompts to finish setup and optionally start the VM.
@@ -161,7 +161,7 @@ This will make local agents accessible over the local network, which is needed f
Run in PowerShell:
```bash
-uv python install --quiet --python-preference=only-managed --no-bin 3.13; uv tool install --refresh --force --python-preference=only-managed --python=3.13 kagenti-adk; kagenti-adk self install
+uv python install --quiet --python-preference=only-managed --no-bin 3.14; uv tool install --refresh --force --python-preference=only-managed --python=3.14 --with kagenti-adk kagenti-cli; kagenti-adk self install
```
Follow the interactive prompts to finish the installation and setup.
diff --git a/docs/development/introduction/welcome.mdx b/docs/development/introduction/welcome.mdx
index 3224eac91..f6d4afece 100644
--- a/docs/development/introduction/welcome.mdx
+++ b/docs/development/introduction/welcome.mdx
@@ -38,7 +38,7 @@ ADK gets your agent onto the Kagenti platform:
Explore the Python SDK
-
+
Deploy Kagenti to Kubernetes
diff --git a/docs/development/reference/cli-reference.mdx b/docs/development/reference/cli-reference.mdx
index f9d9a8a13..9e1195221 100644
--- a/docs/development/reference/cli-reference.mdx
+++ b/docs/development/reference/cli-reference.mdx
@@ -23,6 +23,7 @@ $ kagenti-adk [OPTIONS] COMMAND [ARGS]...
**Options**:
* `--help`: Show this message and exit.
+* `--version`: Show CLI version and exit.
* `--install-completion`: Install completion for the current shell.
* `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
@@ -30,21 +31,20 @@ $ kagenti-adk [OPTIONS] COMMAND [ARGS]...
* `version`: Print version of the Kagenti ADK CLI.
* `ui`: Launch the graphical interface.
+* `admin`: Launch the admin console.
* `model`: Manage model providers.
* `agent`: Manage agents.
* `connector`: Manage connectors to external services.
* `platform`: Manage Kagenti ADK platform.
-* `build`: Build an agent image locally and push to platform registry.
* `server`: Manage Kagenti ADK servers and...
* `self`: Manage Kagenti ADK installation.
-* `add`: Add a docker image or GitHub repository.
-* `update`: Upgrade agent to a newer docker image or...
+* `build`: Build an agent image locally and push it...
+* `add`: Add an agent by container image or network...
+* `update`: Update an agent's location.
* `remove | uninstall | rm | delete`: Remove agent.
-* `logs`: Stream agent provider logs.
* `run`: Run an agent.
* `list`: List agents.
* `info`: Show agent details.
-* `env`
* `feedback`: Manage user feedback for your agents
## `kagenti-adk version`
@@ -76,6 +76,20 @@ $ kagenti-adk ui [OPTIONS]
* `--help`: Show this message and exit.
+## `kagenti-adk admin`
+
+Launch the admin console.
+
+**Usage**:
+
+```console
+$ kagenti-adk admin [OPTIONS]
+```
+
+**Options**:
+
+* `--help`: Show this message and exit.
+
## `kagenti-adk model`
Manage model providers. [Admin only]
@@ -312,31 +326,17 @@ $ kagenti-adk agent [OPTIONS] COMMAND [ARGS]...
**Commands**:
-* `add`: Add a docker image or GitHub repository.
-* `update`: Upgrade agent to a newer docker image or...
+* `add`: Add an agent by container image or network...
+* `update`: Update an agent's location.
* `remove | uninstall | rm | delete`: Remove agent.
-* `logs`: Stream agent provider logs.
* `run`: Run an agent.
* `list`: List agents.
* `info`: Show agent details.
-* `env`
* `feedback`: Manage user feedback for your agents
### `kagenti-adk agent add`
-Add a docker image or GitHub repository. [Admin only]
-
-This command supports a variety of GitHub URL formats for deploying agents:
-
-- **Basic URL**: `https://github.com/myorg/myrepo`
-- **Git Protocol URL**: `git+https://github.com/myorg/myrepo`
-- **URL with .git suffix**: `https://github.com/myorg/myrepo.git`
-- **URL with Version Tag**: `https://github.com/myorg/myrepo@v1.0.0`
-- **URL with Branch Name**: `https://github.com/myorg/myrepo@my-branch`
-- **URL with Subfolder Path**: `https://github.com/myorg/myrepo#path=/path/to/agent`
-- **Combined Formats**: `https://github.com/myorg/myrepo.git@v1.0.0#path=/path/to/agent`
-- **Enterprise GitHub**: `https://github.mycompany.com/myorg/myrepo`
-- **With a custom Dockerfile location**: `kagenti-adk add --dockerfile /my-agent/path/to/Dockerfile "https://github.com/my-org/my-awesome-agents@main#path=/my-agent"`
+Add an agent by container image or network URL. [Admin only]
**Usage**:
@@ -346,18 +346,21 @@ $ kagenti-adk agent add [OPTIONS] [LOCATION]
**Arguments**:
-* `[LOCATION]`: Agent location (public docker image or github url)
+* `[LOCATION]`: Agent image or network URL
**Options**:
-* `--dockerfile TEXT`: Use custom dockerfile path
-* `-v, --verbose`: Show verbose output
+* `-n, --name TEXT`: Agent name (default: derived from image)
+* `--namespace TEXT`: Target Kubernetes namespace [default: team1]
+* `--port INTEGER`: Agent service port [default: 8080]
+* `-e, --env TEXT`: Environment variable in KEY=VALUE format (repeatable)
+* `--env-file TEXT`: Path to env file (KEY=VALUE per line)
* `-y, --yes`: Skip confirmation prompts.
* `--help`: Show this message and exit.
### `kagenti-adk agent update`
-Upgrade agent to a newer docker image or build from GitHub repository. [Admin only]
+Update an agent's location. [Admin only]
**Usage**:
@@ -368,12 +371,10 @@ $ kagenti-adk agent update [OPTIONS] [SEARCH_PATH] [LOCATION]
**Arguments**:
* `[SEARCH_PATH]`: Short ID, agent name or part of the provider location of agent to replace
-* `[LOCATION]`: Agent location (public docker image or github url)
+* `[LOCATION]`: New agent location (network URL)
**Options**:
-* `--dockerfile TEXT`: Use custom dockerfile path
-* `-v, --verbose`: Show verbose output
* `-y, --yes`: Skip confirmation prompts.
* `--help`: Show this message and exit.
@@ -397,24 +398,6 @@ $ kagenti-adk agent remove | uninstall | rm | delete [OPTIONS] [SEARCH_PATH]
* `-a, --all`: Remove all agents without selection.
* `--help`: Show this message and exit.
-### `kagenti-adk agent logs`
-
-Stream agent provider logs. [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk agent logs [OPTIONS] SEARCH_PATH
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-
-**Options**:
-
-* `--help`: Show this message and exit.
-
### `kagenti-adk agent run`
Run an agent.
@@ -467,82 +450,6 @@ $ kagenti-adk agent info [OPTIONS] SEARCH_PATH
* `--help`: Show this message and exit.
-### `kagenti-adk agent env`
-
-**Usage**:
-
-```console
-$ kagenti-adk agent env [OPTIONS] COMMAND [ARGS]...
-```
-
-**Options**:
-
-* `--help`: Show this message and exit.
-
-**Commands**:
-
-* `add`: Store environment variables.
-* `list`: List stored environment variables.
-* `remove`: Remove environment variable(s).
-
-#### `kagenti-adk agent env add`
-
-Store environment variables. [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk agent env add [OPTIONS] SEARCH_PATH ENV...
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-* `ENV...`: Environment variables to pass to agent [required]
-
-**Options**:
-
-* `-y, --yes`: Skip confirmation prompts.
-* `--help`: Show this message and exit.
-
-#### `kagenti-adk agent env list`
-
-List stored environment variables. [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk agent env list [OPTIONS] SEARCH_PATH
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-
-**Options**:
-
-* `--help`: Show this message and exit.
-
-#### `kagenti-adk agent env remove`
-
-Remove environment variable(s). [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk agent env remove [OPTIONS] SEARCH_PATH ENV...
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-* `ENV...`: Environment variable(s) to remove [required]
-
-**Options**:
-
-* `-y, --yes`: Skip confirmation prompts.
-* `--help`: Show this message and exit.
-
### `kagenti-adk agent feedback`
Manage user feedback for your agents
@@ -750,7 +657,7 @@ $ kagenti-adk platform [OPTIONS] COMMAND [ARGS]...
* `start`: Start Kagenti ADK platform.
* `stop`: Stop Kagenti ADK platform.
* `delete`: Delete Kagenti ADK platform.
-* `import`: Import a local docker image into the Agent...
+* `import`: Import a local docker image into the...
* `exec`: For debugging -- execute a command inside...
### `kagenti-adk platform start`
@@ -765,12 +672,12 @@ $ kagenti-adk platform start [OPTIONS]
**Options**:
-* `--set TEXT`: Set Helm chart values using <key>=<value> syntax [default: <class 'list'>]
+* `--set TEXT`: Set Helm chart values. Prefix with chart name: --set kagenti:key=val, --set kagenti-deps:key=val. Unprefixed applies to kagenti-adk. [default: <class 'list'>]
* `--image-pull-mode [guest|host|hybrid|skip]`: guest = pull all images inside VM
host = pull unavailable images on host, then import all
hybrid = import available images from host, pull the rest in VM
skip = skip explicit pull step (Kubernetes will attempt to pull missing images) [default: guest]
-* `-f PATH`: Set Helm chart values using yaml values file
+* `-f PATH`: YAML values file with chart-scoped sections: kagenti-adk:, kagenti:, kagenti-deps:
* `--lima-image TEXT`: Local path or URL to Lima image (.qcow2)
* `--wsl-image TEXT`: Local path or URL to WSL distro image (.wsl)
* `-v, --verbose`: Show verbose output
@@ -823,7 +730,6 @@ $ kagenti-adk platform import [OPTIONS] TAG
**Options**:
* `-v, --verbose`: Show verbose output
-* `--mode [daemon|registry]`: [default: daemon]
* `--help`: Show this message and exit.
### `kagenti-adk platform exec`
@@ -845,27 +751,6 @@ $ kagenti-adk platform exec [OPTIONS] [COMMAND]...
* `-v, --verbose`: Show verbose output
* `--help`: Show this message and exit.
-## `kagenti-adk build`
-
-Build an agent image locally and push it to the platform registry. [Local only]
-
-**Usage**:
-
-```console
-$ kagenti-adk build [OPTIONS] [CONTEXT]
-```
-
-**Arguments**:
-
-* `[CONTEXT]`: Docker build context (path or URL) [default: .]
-
-**Options**:
-
-* `-f, --dockerfile TEXT`: Dockerfile path
-* `-t, --tag TEXT`: Image tag (default: auto-generated)
-* `-v, --verbose`: Show verbose output
-* `--help`: Show this message and exit.
-
## `kagenti-adk server`
Manage Kagenti ADK servers and authentication.
@@ -1027,97 +912,89 @@ $ kagenti-adk self uninstall [OPTIONS]
* `-v, --verbose`: Show verbose output
* `--help`: Show this message and exit.
-## `kagenti-adk add`
-
-Add a docker image or GitHub repository. [Admin only]
-
-This command supports a variety of GitHub URL formats for deploying agents:
+## `kagenti-adk build`
-- **Basic URL**: `https://github.com/myorg/myrepo`
-- **Git Protocol URL**: `git+https://github.com/myorg/myrepo`
-- **URL with .git suffix**: `https://github.com/myorg/myrepo.git`
-- **URL with Version Tag**: `https://github.com/myorg/myrepo@v1.0.0`
-- **URL with Branch Name**: `https://github.com/myorg/myrepo@my-branch`
-- **URL with Subfolder Path**: `https://github.com/myorg/myrepo#path=/path/to/agent`
-- **Combined Formats**: `https://github.com/myorg/myrepo.git@v1.0.0#path=/path/to/agent`
-- **Enterprise GitHub**: `https://github.mycompany.com/myorg/myrepo`
-- **With a custom Dockerfile location**: `kagenti-adk add --dockerfile /my-agent/path/to/Dockerfile "https://github.com/my-org/my-awesome-agents@main#path=/my-agent"`
+Build an agent image locally and push it to the platform registry. [Local only]
**Usage**:
```console
-$ kagenti-adk add [OPTIONS] [LOCATION]
+$ kagenti-adk build [OPTIONS] [CONTEXT]
```
**Arguments**:
-* `[LOCATION]`: Agent location (public docker image or github url)
+* `[CONTEXT]`: Docker build context (path or URL) [default: .]
**Options**:
-* `--dockerfile TEXT`: Use custom dockerfile path
+* `-f, --dockerfile TEXT`: Dockerfile path
+* `-t, --tag TEXT`: Image tag (default: auto-generated)
* `-v, --verbose`: Show verbose output
-* `-y, --yes`: Skip confirmation prompts.
* `--help`: Show this message and exit.
-## `kagenti-adk update`
+## `kagenti-adk add`
-Upgrade agent to a newer docker image or build from GitHub repository. [Admin only]
+Add an agent by container image or network URL. [Admin only]
**Usage**:
```console
-$ kagenti-adk update [OPTIONS] [SEARCH_PATH] [LOCATION]
+$ kagenti-adk add [OPTIONS] [LOCATION]
```
**Arguments**:
-* `[SEARCH_PATH]`: Short ID, agent name or part of the provider location of agent to replace
-* `[LOCATION]`: Agent location (public docker image or github url)
+* `[LOCATION]`: Agent image or network URL
**Options**:
-* `--dockerfile TEXT`: Use custom dockerfile path
-* `-v, --verbose`: Show verbose output
+* `-n, --name TEXT`: Agent name (default: derived from image)
+* `--namespace TEXT`: Target Kubernetes namespace [default: team1]
+* `--port INTEGER`: Agent service port [default: 8080]
+* `-e, --env TEXT`: Environment variable in KEY=VALUE format (repeatable)
+* `--env-file TEXT`: Path to env file (KEY=VALUE per line)
* `-y, --yes`: Skip confirmation prompts.
* `--help`: Show this message and exit.
-## `kagenti-adk remove | uninstall | rm | delete`
+## `kagenti-adk update`
-Remove agent. [Admin only]
+Update an agent's location. [Admin only]
**Usage**:
```console
-$ kagenti-adk remove | uninstall | rm | delete [OPTIONS] [SEARCH_PATH]
+$ kagenti-adk update [OPTIONS] [SEARCH_PATH] [LOCATION]
```
**Arguments**:
-* `[SEARCH_PATH]`: Short ID, agent name or part of the provider location
+* `[SEARCH_PATH]`: Short ID, agent name or part of the provider location of agent to replace
+* `[LOCATION]`: New agent location (network URL)
**Options**:
* `-y, --yes`: Skip confirmation prompts.
-* `-a, --all`: Remove all agents without selection.
* `--help`: Show this message and exit.
-## `kagenti-adk logs`
+## `kagenti-adk remove | uninstall | rm | delete`
-Stream agent provider logs. [Admin only]
+Remove agent. [Admin only]
**Usage**:
```console
-$ kagenti-adk logs [OPTIONS] SEARCH_PATH
+$ kagenti-adk remove | uninstall | rm | delete [OPTIONS] [SEARCH_PATH]
```
**Arguments**:
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
+* `[SEARCH_PATH]`: Short ID, agent name or part of the provider location
**Options**:
+* `-y, --yes`: Skip confirmation prompts.
+* `-a, --all`: Remove all agents without selection.
* `--help`: Show this message and exit.
## `kagenti-adk run`
@@ -1172,82 +1049,6 @@ $ kagenti-adk info [OPTIONS] SEARCH_PATH
* `--help`: Show this message and exit.
-## `kagenti-adk env`
-
-**Usage**:
-
-```console
-$ kagenti-adk env [OPTIONS] COMMAND [ARGS]...
-```
-
-**Options**:
-
-* `--help`: Show this message and exit.
-
-**Commands**:
-
-* `add`: Store environment variables.
-* `list`: List stored environment variables.
-* `remove`: Remove environment variable(s).
-
-### `kagenti-adk env add`
-
-Store environment variables. [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk env add [OPTIONS] SEARCH_PATH ENV...
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-* `ENV...`: Environment variables to pass to agent [required]
-
-**Options**:
-
-* `-y, --yes`: Skip confirmation prompts.
-* `--help`: Show this message and exit.
-
-### `kagenti-adk env list`
-
-List stored environment variables. [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk env list [OPTIONS] SEARCH_PATH
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-
-**Options**:
-
-* `--help`: Show this message and exit.
-
-### `kagenti-adk env remove`
-
-Remove environment variable(s). [Admin only]
-
-**Usage**:
-
-```console
-$ kagenti-adk env remove [OPTIONS] SEARCH_PATH ENV...
-```
-
-**Arguments**:
-
-* `SEARCH_PATH`: Short ID, agent name or part of the provider location [required]
-* `ENV...`: Environment variable(s) to remove [required]
-
-**Options**:
-
-* `-y, --yes`: Skip confirmation prompts.
-* `--help`: Show this message and exit.
-
## `kagenti-adk feedback`
Manage user feedback for your agents
diff --git a/docs/docs.json b/docs/docs.json
index 16c79ad5e..0619097f1 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -74,8 +74,8 @@
{
"group": "Deploy Kagenti ADK",
"pages": [
- "stable/deploy-agent-stack/deployment-guide",
- "stable/deploy-agent-stack/authenticate-cli-to-server"
+ "stable/deploy-adk/deployment-guide",
+ "stable/deploy-adk/authenticate-cli-to-server"
]
},
{
@@ -160,8 +160,8 @@
{
"group": "Deploy Kagenti ADK",
"pages": [
- "development/deploy-agent-stack/deployment-guide",
- "development/deploy-agent-stack/authenticate-cli-to-server"
+ "development/deploy-adk/deployment-guide",
+ "development/deploy-adk/authenticate-cli-to-server"
]
},
{
diff --git a/docs/stable/custom-ui/a2a-client.mdx b/docs/stable/custom-ui/a2a-client.mdx
index ac1b31d65..9138b5766 100644
--- a/docs/stable/custom-ui/a2a-client.mdx
+++ b/docs/stable/custom-ui/a2a-client.mdx
@@ -11,7 +11,7 @@ If you only need the fast path, start with **[Getting Started](./getting-started
- **Packages installed**: `@kagenti/adk` and `@a2a-js/sdk`
- **Platform base URL** and **provider ID**
-- **CORS enabled on the server** for your frontend origin when running in a browser (or use a same-origin proxy). See **[Cross-Origin Resource Sharing Configuration](../deploy-agent-stack/deployment-guide#cross-origin-resource-sharing-configuration)**.
+- **CORS enabled on the server** for your frontend origin when running in a browser (or use a same-origin proxy). See **[Cross-Origin Resource Sharing Configuration](../deploy-adk/deployment-guide#cross-origin-resource-sharing-configuration)**.
- **User access token** (for platform API calls)
- **Context token** (for A2A requests)
diff --git a/docs/stable/custom-ui/getting-started.mdx b/docs/stable/custom-ui/getting-started.mdx
index e909828db..fa3151aa2 100644
--- a/docs/stable/custom-ui/getting-started.mdx
+++ b/docs/stable/custom-ui/getting-started.mdx
@@ -39,7 +39,7 @@ Use the user access token from your identity provider (OIDC/OAuth) for UI side A
**Browser clients require CORS**
- If your custom UI runs on a different origin than your Kagenti ADK server, enable CORS on the server for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-agent-stack/deployment-guide#cross-origin-resource-sharing-configuration)**.
+ If your custom UI runs on a different origin than your Kagenti ADK server, enable CORS on the server for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-adk/deployment-guide#cross-origin-resource-sharing-configuration)**.
If allowing origins directly is not possible, route calls through a same-origin frontend proxy.
diff --git a/docs/stable/custom-ui/platform-api-client.mdx b/docs/stable/custom-ui/platform-api-client.mdx
index 504394ef7..73a709221 100644
--- a/docs/stable/custom-ui/platform-api-client.mdx
+++ b/docs/stable/custom-ui/platform-api-client.mdx
@@ -28,7 +28,7 @@ const api = buildApiClient({
**Browser clients require CORS**
- If you call the Kagenti ADK API from a browser app running on a different origin, enable server-side CORS for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-agent-stack/deployment-guide#cross-origin-resource-sharing-configuration)**.
+ If you call the Kagenti ADK API from a browser app running on a different origin, enable server-side CORS for your frontend origin. See **[Cross-Origin Resource Sharing Configuration](../deploy-adk/deployment-guide#cross-origin-resource-sharing-configuration)**.
If allowing origins directly is not possible, route calls through a same-origin frontend proxy.
diff --git a/docs/stable/deploy-agent-stack/authenticate-cli-to-server.mdx b/docs/stable/deploy-adk/authenticate-cli-to-server.mdx
similarity index 100%
rename from docs/stable/deploy-agent-stack/authenticate-cli-to-server.mdx
rename to docs/stable/deploy-adk/authenticate-cli-to-server.mdx
diff --git a/docs/development/deploy-agent-stack/deployment-guide.mdx b/docs/stable/deploy-adk/deployment-guide.mdx
similarity index 100%
rename from docs/development/deploy-agent-stack/deployment-guide.mdx
rename to docs/stable/deploy-adk/deployment-guide.mdx
diff --git a/docs/stable/introduction/welcome.mdx b/docs/stable/introduction/welcome.mdx
index 8fcd1e1fc..b9b29798a 100644
--- a/docs/stable/introduction/welcome.mdx
+++ b/docs/stable/introduction/welcome.mdx
@@ -158,7 +158,7 @@ Kagenti ADK is being actively developed and intended to evolve alongside the age
Build your first agent with the SDK
-
+
Deploy Kagenti ADK to Kubernetes for your team
\ No newline at end of file