Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 60 additions & 6 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -83,20 +83,59 @@
** xref:reference:rpk/index.adoc[rpk Command Reference]
*** xref:reference:rpk/rpk-ai/rpk-ai.adoc[rpk ai]
**** xref:reference:rpk/rpk-ai/rpk-ai-agent.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a-card.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a-send.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a-task.adoc[]
******* xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a-task-cancel.adoc[]
******* xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a-task-get.adoc[]
******* xref:reference:rpk/rpk-ai/rpk-ai-agent-a2a-task-watch.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-apply.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-create.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-credential.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-credential-create.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-credential-delete.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-credential-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-diff.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-start.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-stop.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-transcript.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-transcript-get.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-agent-transcript-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-agent-update.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-auth.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-auth-login.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-auth-logout.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-auth-status.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-auth-token.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-connection.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-connection-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-connection-revoke.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-env.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-env-add.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-env-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-env-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-env-rename.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-env-show.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-env-use.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-install.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-llm.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-apply.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-check.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-create.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-diff.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-llm-update.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-mcp.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-apply.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-create.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-diff.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-mcp-tools.adoc[]
Expand All @@ -107,17 +146,32 @@
**** xref:reference:rpk/rpk-ai/rpk-ai-model.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-model-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-model-list.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-oauth.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-create.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-update.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-apply.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-create.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr-get.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr-iat.adoc[]
******* xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr-iat-list.adoc[]
******* xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr-iat-mint.adoc[]
******* xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr-iat-revoke.adoc[]
****** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-dcr-update.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-diff.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-client-revoke-tokens.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-apply.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-create.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-delete.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-diff.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-get.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-list.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider-update.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-run.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-run-claude.adoc[]
***** xref:reference:rpk/rpk-ai/rpk-ai-run-codex.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-uninstall.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-upgrade.adoc[]
**** xref:reference:rpk/rpk-ai/rpk-ai-version.adoc[]
Expand Down
4 changes: 2 additions & 2 deletions modules/cli/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ Each Agentic Data Plane resource has its own command group, and each group suppo
|MCP servers and their tools
|xref:reference:rpk/rpk-ai/rpk-ai-mcp.adoc[`rpk ai mcp`]

|rpk ai oauth
|rpk ai oauth-provider
|OAuth providers for user-delegated MCP connections
|xref:reference:rpk/rpk-ai/rpk-ai-oauth.adoc[`rpk ai oauth`]
|xref:reference:rpk/rpk-ai/rpk-ai-oauth-provider.adoc[`rpk ai oauth-provider`]

|rpk ai oauth-client
|OAuth clients that external tools use to reach an MCP server
Expand Down
40 changes: 40 additions & 0 deletions modules/reference/pages/rpk/rpk-ai/rpk-ai-agent-a2a-card.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
= rpk ai agent a2a card
:description: rpk ai agent a2a card
:page-beta: true

Fetch the A2A agent card — the JSON discovery document describing the
agent's identity, skills, supported transports and capabilities.

Use -o json to feed the raw card to other tools.

== Usage

[,bash]
----
rpk ai agent a2a card <agent|url> [flags]
----

== Flags

[cols="1m,1a,2a"]
|===
|*Value* |*Type* |*Description*

|-h, --help |- |help for card.

|--timeout |duration |abort the call after this long (0 to wait forever) (default 5m0s).

|-o, --format |string |output format: table{vbar}wide{vbar}json{vbar}yaml{vbar}markdown (env: RPAI_FORMAT) (default "table").

|--no-color |- |disable colored output (env: NO_COLOR).

|-c, --rpai-config |string |path to rpai config (env: RPAI_CONFIG) (default "/var/lib/redpanda/.rpai/config").

|-s, --rpai-endpoint |string |override the selected environment's AI Gateway URL for this invocation.

|-p, --rpai-profile |string |rpai profile name (env: RPAI_PROFILE).

|-v, --rpai-verbose |- |verbose debug logging to stderr (env: RPAI_VERBOSE).

|--token |string |static bearer token override (ambient RPAI_TOKEN is ignored under rpk ai).
|===
91 changes: 91 additions & 0 deletions modules/reference/pages/rpk/rpk-ai/rpk-ai-agent-a2a-send.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
= rpk ai agent a2a send
:description: rpk ai agent a2a send
:page-beta: true

Send a text message to an agent over A2A and print the reply.

The message comes from the positional argument, or from stdin when the
argument is omitted or "-" (so you can pipe a prompt in).

By default the call blocks until the agent replies. Replies that spawn a
long-running task print the task id so you can follow up with
`rpk ai agent a2a task get|watch|cancel`. For work that may outlive
--timeout (default 5m), prefer --stream or --no-block so the task id is
in hand from the start.

Conversation state: every reply prints a context-id (stderr in the
default format, part of the JSON in -o json). Pass it back via
--context-id to continue the same conversation. When a task ends in
state input-required, answer it by sending again with both --task-id
and --context-id from the reply.

Output: the agent's reply text goes to stdout; ids and state go to
stderr as `key: value` lines so pipes stay clean. Use -o json for the
full A2A response (message or task object). With --stream, json and
yaml both emit one JSON event per line (JSONL).

Exit codes: 0 success or input-required, 4 task failed/canceled/
rejected, 1 anything else.

== Usage

[,bash]
----
rpk ai agent a2a send <agent|url> [message] [flags]
----

== Examples

[,bash]
----
# Ask and wait for the answer
rpk ai agent a2a send financial-advisor "What moved the S&P 500 today?"

# Continue the conversation from a previous reply's context-id
rpk ai agent a2a send financial-advisor --context-id CTX "Why?"

# Answer a task that ended in input-required
rpk ai agent a2a send financial-advisor --task-id TASK --context-id CTX "Account A-17"

# Pipe the prompt from a file, get the full JSON reply
cat prompt.txt | rpk ai agent a2a send financial-advisor -o json

# Stream events as they happen
rpk ai agent a2a send financial-advisor --stream "Give me a market summary"

# Fire-and-forget: submit, then poll with `task get`
rpk ai agent a2a send financial-advisor --no-block "Deep analysis please"
----

== Flags

[cols="1m,1a,2a"]
|===
|*Value* |*Type* |*Description*

|--context-id |string |continue an existing conversation (printed by a previous send).

|-h, --help |- |help for send.

|--no-block |- |return immediately with the submitted task instead of waiting for completion.

|--stream |- |stream the reply as A2A events (message/stream) instead of waiting for the final result.

|--task-id |string |continue an existing task (e.g. answer an input-required task).

|--timeout |duration |abort the call after this long (0 to wait forever) (default 5m0s).

|-o, --format |string |output format: table{vbar}wide{vbar}json{vbar}yaml{vbar}markdown (env: RPAI_FORMAT) (default "table").

|--no-color |- |disable colored output (env: NO_COLOR).

|-c, --rpai-config |string |path to rpai config (env: RPAI_CONFIG) (default "/var/lib/redpanda/.rpai/config").

|-s, --rpai-endpoint |string |override the selected environment's AI Gateway URL for this invocation.

|-p, --rpai-profile |string |rpai profile name (env: RPAI_PROFILE).

|-v, --rpai-verbose |- |verbose debug logging to stderr (env: RPAI_VERBOSE).

|--token |string |static bearer token override (ambient RPAI_TOKEN is ignored under rpk ai).
|===
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
= rpk ai agent a2a task cancel
:description: rpk ai agent a2a task cancel
:page-beta: true

Ask the agent to cancel a running task and print the task's resulting
state. Cancellation is cooperative — the agent may already have
finished, in which case the terminal state is returned unchanged.

== Usage

[,bash]
----
rpk ai agent a2a task cancel <agent|url> <task-id> [flags]
----

== Examples

[,bash]
----
rpk ai agent a2a task cancel financial-advisor TASK_ID
----

== Flags

[cols="1m,1a,2a"]
|===
|*Value* |*Type* |*Description*

|-h, --help |- |help for cancel.

|--timeout |duration |abort the call after this long (0 to wait forever) (default 5m0s).

|-o, --format |string |output format: table{vbar}wide{vbar}json{vbar}yaml{vbar}markdown (env: RPAI_FORMAT) (default "table").

|--no-color |- |disable colored output (env: NO_COLOR).

|-c, --rpai-config |string |path to rpai config (env: RPAI_CONFIG) (default "/var/lib/redpanda/.rpai/config").

|-s, --rpai-endpoint |string |override the selected environment's AI Gateway URL for this invocation.

|-p, --rpai-profile |string |rpai profile name (env: RPAI_PROFILE).

|-v, --rpai-verbose |- |verbose debug logging to stderr (env: RPAI_VERBOSE).

|--token |string |static bearer token override (ambient RPAI_TOKEN is ignored under rpk ai).
|===
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
= rpk ai agent a2a task get
:description: rpk ai agent a2a task get
:page-beta: true

Fetch a task's current state, status message, artifacts and (optionally
truncated) message history. Use -o json for the full task object.

== Usage

[,bash]
----
rpk ai agent a2a task get <agent|url> <task-id> [flags]
----

== Examples

[,bash]
----
rpk ai agent a2a task get financial-advisor TASK_ID
rpk ai agent a2a task get financial-advisor TASK_ID --history 10 -o json
----

== Flags

[cols="1m,1a,2a"]
|===
|*Value* |*Type* |*Description*

|-h, --help |- |help for get.

|--history |int |number of most recent history messages to include.

|--timeout |duration |abort the call after this long (0 to wait forever) (default 5m0s).

|-o, --format |string |output format: table{vbar}wide{vbar}json{vbar}yaml{vbar}markdown (env: RPAI_FORMAT) (default "table").

|--no-color |- |disable colored output (env: NO_COLOR).

|-c, --rpai-config |string |path to rpai config (env: RPAI_CONFIG) (default "/var/lib/redpanda/.rpai/config").

|-s, --rpai-endpoint |string |override the selected environment's AI Gateway URL for this invocation.

|-p, --rpai-profile |string |rpai profile name (env: RPAI_PROFILE).

|-v, --rpai-verbose |- |verbose debug logging to stderr (env: RPAI_VERBOSE).

|--token |string |static bearer token override (ambient RPAI_TOKEN is ignored under rpk ai).
|===
Loading