From cb73c900d24709773e7f94cb7834c66ee1acdb27 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 17:25:27 -0600 Subject: [PATCH 01/18] Flesh out the ADP admin quickstart Replace the byoc-quickstart.adoc stub with a single, opinionated, end-to-end path that gets an admin from "fresh ADP environment" to "first working agent call" in about 20 minutes: 1. Get an Anthropic API key (console.anthropic.com signup and billing) 2. Store the key in ADP's secret store 3. Configure the LLM provider in ADP and run Test Connection 4. Create an MCP server backed by the public Swagger PetStore OpenAPI spec 5. Build a pet-store-assistant agent that combines the provider and MCP 6. Test the agent in the Inspector with three example prompts 7. Verify the calls landed in the governance dashboard and Transcripts The quickstart links out to the existing deep dives (configure-provider, gateway-quickstart, openapi MCP, system-prompts, transcripts) for detail so this page stays short and reads sequentially. Also delete the redundant first-agent.adoc stub and its nav entry; the new quickstart covers the "build your first agent" path. Three TODO comments left in the page for engineering to confirm before publishing: current Anthropic model IDs in the catalog, and whether the Create LLM Provider form supports inline secret creation on adp-production (which would let us collapse steps 2 and 3). Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/ROOT/nav.adoc | 1 - .../get-started/pages/byoc-quickstart.adoc | 302 ++++++++++++++++-- modules/get-started/pages/first-agent.adoc | 4 - 3 files changed, 284 insertions(+), 23 deletions(-) delete mode 100644 modules/get-started/pages/first-agent.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index eec4d60..c4217cd 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -2,7 +2,6 @@ * xref:get-started:index.adoc[Get Started] ** xref:get-started:byoc-prereqs.adoc[Prerequisites] ** xref:get-started:byoc-quickstart.adoc[Quickstart] -** xref:get-started:first-agent.adoc[Build Your First Agent] ** xref:get-started:rpk-install.adoc[Install or Update rpk] * xref:agents:index.adoc[Agents] ** xref:agents:overview.adoc[Overview] diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 5638625..627785d 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -1,35 +1,301 @@ -= ADP BYOC Quickstart -:description: Start with ADP on a Redpanda Cloud BYOC environment on AWS. -:page-topic-type: how-to += ADP Quickstart +:description: Set up Redpanda ADP for your organization in about 20 minutes. Get an Anthropic API key, configure your first LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build a working agent that calls both. +:page-topic-type: quickstart :personas: platform_engineer :page-byoc: true -:learning-objective-1: Check that a BYOC environment meets the ADP prerequisites -:learning-objective-2: Continue from BYOC environment setup into ADP provider, MCP, and agent setup +:learning-objective-1: Configure your first LLM provider in ADP with an Anthropic API key +:learning-objective-2: Create an OpenAPI-backed MCP server using a public Swagger spec +:learning-objective-3: Build an agent that calls both the LLM provider and the MCP server -// Source: `cloudv2` BYOC Terraform and Redpanda Cloud BYOC docs source, verified 2026-05-10. -// TODO: Add click-by-click ADP BYOC setup steps after a UI walkthrough. +// Source: drafted against `adp-production` UI flows for LLM providers, MCP servers, and Agents; verified against `apps/adp-ui/src/routes/_authenticated/` and the provider, MCP, and agent protos on cloudv2 origin/main. +// TODO: replace placeholder model IDs (claude-sonnet-4-6, claude-haiku-4-5) with the catalog's current Anthropic offerings at PR time. +// TODO: confirm the Create LLM Provider form's inline secret-creation flow on adp-production. If supported, fold step 2 into step 3 and remove the standalone Secrets step. -This quickstart helps you start ADP on a Redpanda Cloud BYOC environment on AWS. +Set up Redpanda ADP for your organization in about 20 minutes. You'll create an Anthropic API key, configure that key as an LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build an agent that uses both. -Use this guide to: +After completing this quickstart, you will be able to: * [ ] {learning-objective-1} * [ ] {learning-objective-2} +* [ ] {learning-objective-3} == Prerequisites -Review xref:get-started:byoc-prereqs.adoc[ADP BYOC prerequisites]. +* A Redpanda Cloud BYOC environment on AWS with ADP enabled. See xref:get-started:byoc-prereqs.adoc[ADP BYOC prerequisites]. +* The Writer or Admin xref:governance:permissions-overview.adoc[built-in role] in ADP. The Reader role can list resources but cannot create them. +* An Anthropic account. If you don't have one, the next section walks through signup. +* About 20 minutes. -== Create or select a BYOC environment on AWS +== What you'll build -Use a Redpanda Cloud BYOC environment on AWS. For the general AWS BYOC environment creation flow, see xref:redpanda-cloud:get-started:cluster-types/byoc/aws/create-byoc-cluster-aws.adoc[Create a BYOC environment on AWS]. +Three ADP resources, in order: -Before you configure ADP resources, confirm that ADP is enabled for the cluster. The provisioner switch is `adp_enabled`. +. *Anthropic LLM provider*. Routes Claude API calls through ADP so credentials, usage, and glossterm:transcript[,transcripts] stay on the platform. +. *PetStore glossterm:MCP server[]*. Exposes the public Swagger PetStore API as a set of glossterm:MCP tool[,MCP tools] the agent can call. +. *Pet store assistant glossterm:AI agent[,agent]*. Combines the provider and the MCP server so a natural-language question becomes a real API call against PetStore. -== Continue with ADP setup +After the agent works, you'll see the calls in the governance dashboard and walk through one execution turn-by-turn in the Transcripts view. -After the BYOC environment meets the prerequisites, continue with the ADP setup guides: +All three resources are deletable at the end of the quickstart in less than a minute. -. xref:ai-gateway:configure-provider.adoc[Configure your LLM provider] -. xref:mcp:create-server.adoc[Create an MCP server] -. xref:agents:create-agent.adoc[Create a declarative agent] +== Get an Anthropic API key + +Anthropic requires a payment method before it issues an API key. Add billing first, then create the key. + +. Open https://console.anthropic.com[console.anthropic.com^] and sign in, or create a new account. + +. In the left sidebar, click *Settings* > *Billing*. Add a payment method. (Optional but recommended: add $5 in prepaid credit so the quickstart calls don't fail on a fresh account.) + +. Click *Settings* > *API Keys*. + +. Click *Create Key*. ++ +* *Name*: `adp-quickstart` +* *Workspace*: Default +* *Environment*: Production ++ +Click *Create Key*. + +. Copy the key (it starts with `sk-ant-`). ++ +[IMPORTANT] +==== +Anthropic shows the API key value once. If you close the dialog without copying, you can't recover it. Paste the key into a secure note before continuing. The next section moves the key into ADP's secret store so you don't have to keep it on your local machine. +==== + +. (Optional) On the *API Keys* page, confirm the new key appears with the *Active* status. + +== Store the key in ADP's secret store + +ADP references provider credentials by secret name, not by raw value. Create the secret first so the next step can reference it. + +. Sign in to ADP. + +. Open *Secrets* in the sidebar. + +. Click *Create secret*. ++ +* *Name*: `ANTHROPIC_API_KEY` (use `UPPER_SNAKE_CASE`) +* *Value*: Paste the `sk-ant-` key you copied from Anthropic. ++ +Click *Create*. + +. Confirm the secret appears in the list with the name `ANTHROPIC_API_KEY`. + +TIP: If your ADP version offers a *Create new secret* control on the LLM provider form's *API key* field, you can skip this step and create the secret inline in the next section. Either flow stores the key in the same place. + +== Configure your LLM provider + +Now point ADP at Anthropic. + +. Open *LLM Providers* in the sidebar. + +. Click *Create provider*. + +. Fill in identity: ++ +* *Name*: `anthropic-quickstart` (or accept the auto-suggested name) +* *Display name*: Leave blank to use the *Name*. + +. *Provider type*: Select *Anthropic*. + +. *Base URL*: Leave blank to use the default Anthropic API endpoint. + +. *API key*: Reference `ANTHROPIC_API_KEY` from the previous step. + +. Leave *Auth passthrough* off. This quickstart uses one shared key, not per-user OAuth. + +. *Models*: Pick two from the catalog: ++ +* `claude-haiku-4-5` (fast and inexpensive, good for testing) +* `claude-sonnet-4-6` (higher quality, better tool use, used by the agent in the next sections) + +. Click *Create provider*. + +. On the provider detail page, scroll to *Verify connection*, pick `claude-haiku-4-5` from the dropdown, and click *Test Connection*. The status flips from *Not tested yet* to a green check. + +If the test fails, see the xref:ai-gateway:configure-provider.adoc#troubleshooting[provider troubleshooting table] (most common cause: secret name typo). + +For the full provider field reference (transcript logging, Bedrock IAM, Anthropic auth passthrough, OpenAI-compatible endpoints), see xref:ai-gateway:configure-provider.adoc[Configure an LLM provider]. + +== Create an MCP server with a public OpenAPI spec + +The OpenAPI managed MCP server type takes any OpenAPI 3 (or Swagger 2) spec URL and generates one MCP tool per operation. You'll point it at the public Swagger PetStore, which exposes a small pet-inventory API with no authentication. + +. Open *MCP Servers* > *Create Server*. + +. Pick *OpenAPI* from the marketplace picker. + +. Fill in identity: ++ +* *Name*: `petstore-quickstart` +* *Description*: `Public PetStore API exposed as MCP tools for quickstart testing` + +. Configure the OpenAPI source: ++ +* *Spec source*: URL +* *Spec URL*: `https://petstore3.swagger.io/api/v3/openapi.json` +* *Base URL override*: Leave blank. PetStore's spec includes the right `servers` block. + +. *Authentication*: Select *None*. PetStore is a public API. + +. Click *Create*. + +. Wait for the server status to change from *Starting* to *Running*. This takes a few seconds because Redpanda fetches the spec, parses it, and generates one MCP tool per operation. + +. On the server detail page, confirm the *Tools* list shows several entries, including: ++ +* `findPetsByStatus` +* `getPetById` +* `findPetsByTags` +* `addPet` ++ +The exact tool count depends on the operations defined in the spec at fetch time. + +. (Optional sanity check) Open the *Inspector* tab. Pick `findPetsByStatus`. In the form, set `status` to `available`. Click *Call tool*. You should see a JSON array of pet objects. If you see an error, see xref:mcp:managed/openapi.adoc#troubleshooting[OpenAPI MCP troubleshooting]. + +For the full OpenAPI MCP reference (auth modes, operation filters, base URL overrides), see xref:mcp:managed/openapi.adoc[OpenAPI managed MCP server]. + +== Build your agent + +Combine the Anthropic provider and the PetStore MCP server into an agent. + +. Open *AI Agents* in the sidebar. + +. Click *Create Agent*. + +. Configure basic settings: ++ +* *Display name*: `pet-store-assistant` +* *Description*: `Quickstart agent that answers questions about the PetStore inventory` +* *Resource tier*: *XSmall* + +. Select the gateway and model: ++ +* *AI Gateway*: Select your active gateway. (If you haven't created a gateway yet, follow xref:ai-gateway:gateway-quickstart.adoc[the AI Gateway quickstart] first.) +* *Provider*: `anthropic-quickstart` +* *Model*: `claude-sonnet-4-6` + +. Write the system prompt: ++ +[,text] +---- +You are a pet store inventory assistant. + +You have access to PetStore API tools through MCP. Use them to answer +questions about pets: +- findPetsByStatus: List pets by status (available, pending, sold) +- getPetById: Look up a specific pet by ID +- findPetsByTags: Search by tag + +Rules: +- Always call a tool before answering. Don't make up pet data. +- After each tool call, summarize what the tool returned and cite the + tool name in your response. +- If a tool fails or returns no data, say so and stop. Don't retry + with invented IDs. +---- + +. Add the MCP server: ++ +* Click *Add MCP Server*. +* Select `petstore-quickstart`. +* For this quickstart, enable only the read tools to keep the agent safe: ++ +** `findPetsByStatus` +** `getPetById` +** `findPetsByTags` + +. Set execution parameters: ++ +* *Max iterations*: `15` (more than enough for a multi-step question) + +. Click *Create Agent*. + +. Wait for the agent status to change from *Starting* to *Running*. + +A service account is automatically created so the agent can authenticate against ADP. For details, see xref:agents:concepts.adoc#service-account-authorization[service account authorization]. + +== Test the agent in the Inspector + +. On the agent detail page, open the *Inspector* tab. + +. Send the first prompt: ++ +[,text] +---- +What pets are available right now? +---- ++ +The agent should: ++ +* Call `findPetsByStatus` with `status=available`. +* Return a summary of the pets the tool returned, naming the tool. + +. Send the second prompt: ++ +[,text] +---- +Tell me about pet ID 1. +---- ++ +The agent should call `getPetById` with `petId=1` and return the pet's details. + +. (Optional) Send an open-ended prompt to confirm multi-step reasoning: ++ +[,text] +---- +Find a pet tagged "friendly" and tell me whether it's available. +---- ++ +The agent may call `findPetsByTags` first, then `getPetById` for one of the matches, then summarize. + +If the agent hallucinates data instead of calling a tool, tighten the system prompt's "Always call a tool before answering" rule. See xref:agents:system-prompts.adoc[system prompt best practices] for patterns. + +== Verify in the governance dashboard + +The glossterm:governance dashboard[] rolls up every LLM call and tool invocation across your ADP deployment. Confirm the quickstart calls landed there. + +. Open *Governance* > *Dashboard* in the sidebar. + +. In the *Last 24 hours* view, check three KPIs: ++ +* *Total spend*: A small but non-zero value. +* *Requests*: Reflects the LLM calls from your agent runs (one per turn). +* *Tokens*: Input plus output tokens across the same calls. + +. Open *Transcripts* (sidebar or *Observability* > *Transcripts*). Find the most recent agent run. + +. Walk through the transcript turn-by-turn. You should see: ++ +* The user's prompt. +* The agent's LLM call to Anthropic. +* The agent's tool call to the PetStore MCP server. +* The tool's response. +* The agent's final response to the user. + +For the full governance dashboard tour, see xref:governance:dashboard/overview.adoc[Read the governance overview]. For transcript field reference, see xref:observability:transcripts.adoc[Read a transcript]. + +== Clean up + +If this is a one-off quickstart, delete the resources you created so they don't continue to count against your account. + +. Delete the *agent* (`pet-store-assistant`) first. Open the agent detail page, scroll to the *Delete* section, and click *Delete*. + +. Delete the *MCP server* (`petstore-quickstart`). Same pattern. + +. Delete the *LLM provider* (`anthropic-quickstart`). Same pattern. Note that the underlying secret (`ANTHROPIC_API_KEY`) is not deleted automatically. + +. (Optional) Delete the secret. Open *Secrets*, click `ANTHROPIC_API_KEY`, then *Delete*. + +. (Optional, on the Anthropic side) Revoke the API key. Open https://console.anthropic.com[console.anthropic.com^] > *Settings* > *API Keys*, find `adp-quickstart`, and click *Revoke*. + +If you want to keep the provider but rotate the key, edit the provider and change the *API key* reference to a new secret. + +== Next steps + +Now that you have a working ADP setup, here are the three most useful things to do next: + +* Add more LLM providers (OpenAI, Google AI, AWS Bedrock, OpenAI-compatible): xref:ai-gateway:configure-provider.adoc[Configure an LLM provider] +* Swap the PetStore demo for a real upstream (Slack, Jira, SQL, Kafka, and more): xref:mcp:managed/managed-catalog.adoc[Managed MCP catalog] +* Track spend across teams: xref:governance:budgets.adoc[Token budgets and limits] diff --git a/modules/get-started/pages/first-agent.adoc b/modules/get-started/pages/first-agent.adoc deleted file mode 100644 index 64ae9c8..0000000 --- a/modules/get-started/pages/first-agent.adoc +++ /dev/null @@ -1,4 +0,0 @@ -= Build Your First Agent -:description: Create and deploy your first AI agent with Redpanda ADP. - -// TODO: Add content From 5240049c93b296a65dce9b4240d06765d395f766 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 17:49:42 -0600 Subject: [PATCH 02/18] Remove time estimates and update Anthropic console nav to platform.claude.com Two follow-up fixes from PR review: 1. Strip every concrete time reference from the quickstart. Time estimates ("about 20 minutes", "less than a minute", "a few seconds") date quickly and set up readers for a bad experience if reality runs faster or slower than the page promises. 2. Update the Anthropic key creation steps to match the current platform.claude.com UI. The previous page told readers to go to console.anthropic.com and navigate Settings > Billing and Settings > API Keys, both of which no longer exist. New flow: - URL: platform.claude.com (was console.anthropic.com). - Sidebar: Manage > API keys (was Settings > API Keys). - Workspace caveat: skip the Claude Code workspace, which has a separate "install Claude Code" flow that doesn't apply here. - Create button: + Create key (was Create Key). - Drop the hardcoded Environment: Production form field, which may not exist on the new form; leave the docs writer to verify the live create dialog. Billing instructions hedged to "Add a payment method if you haven't already" since the platform.claude.com sidebar shown in the screenshot doesn't expose a Billing entry. A specific click path can be added once eng confirms where billing now lives. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../get-started/pages/byoc-quickstart.adoc | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 627785d..7919909 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -1,5 +1,5 @@ = ADP Quickstart -:description: Set up Redpanda ADP for your organization in about 20 minutes. Get an Anthropic API key, configure your first LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build a working agent that calls both. +:description: Set up Redpanda ADP for your organization. Get an Anthropic API key, configure your first LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build a working agent that calls both. :page-topic-type: quickstart :personas: platform_engineer :page-byoc: true @@ -11,7 +11,7 @@ // TODO: replace placeholder model IDs (claude-sonnet-4-6, claude-haiku-4-5) with the catalog's current Anthropic offerings at PR time. // TODO: confirm the Create LLM Provider form's inline secret-creation flow on adp-production. If supported, fold step 2 into step 3 and remove the standalone Secrets step. -Set up Redpanda ADP for your organization in about 20 minutes. You'll create an Anthropic API key, configure that key as an LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build an agent that uses both. +Set up Redpanda ADP for your organization. You'll create an Anthropic API key, configure that key as an LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build an agent that uses both. After completing this quickstart, you will be able to: @@ -24,7 +24,6 @@ After completing this quickstart, you will be able to: * A Redpanda Cloud BYOC environment on AWS with ADP enabled. See xref:get-started:byoc-prereqs.adoc[ADP BYOC prerequisites]. * The Writer or Admin xref:governance:permissions-overview.adoc[built-in role] in ADP. The Reader role can list resources but cannot create them. * An Anthropic account. If you don't have one, the next section walks through signup. -* About 20 minutes. == What you'll build @@ -36,25 +35,26 @@ Three ADP resources, in order: After the agent works, you'll see the calls in the governance dashboard and walk through one execution turn-by-turn in the Transcripts view. -All three resources are deletable at the end of the quickstart in less than a minute. +All three resources are deletable at the end of the quickstart. == Get an Anthropic API key Anthropic requires a payment method before it issues an API key. Add billing first, then create the key. -. Open https://console.anthropic.com[console.anthropic.com^] and sign in, or create a new account. +. Open https://platform.claude.com[platform.claude.com^] and sign in, or create a new account. -. In the left sidebar, click *Settings* > *Billing*. Add a payment method. (Optional but recommended: add $5 in prepaid credit so the quickstart calls don't fail on a fresh account.) +. Add a payment method to your account if you haven't already. Anthropic requires a payment method before it issues API keys. (Optional: add a small amount of prepaid credit so the quickstart calls don't fail on a fresh account.) -. Click *Settings* > *API Keys*. +. In the sidebar, select a workspace other than *Claude Code*. The Claude Code workspace uses a separate key-creation flow that doesn't fit this quickstart. -. Click *Create Key*. +. Click *Manage* > *API keys* in the sidebar. + +. Click *+ Create key* in the top right. + * *Name*: `adp-quickstart` -* *Workspace*: Default -* *Environment*: Production +* *Workspace*: Confirm the workspace you selected above. + -Click *Create Key*. +Leave any other fields at their defaults and click *Create*. . Copy the key (it starts with `sk-ant-`). + @@ -141,7 +141,7 @@ The OpenAPI managed MCP server type takes any OpenAPI 3 (or Swagger 2) spec URL . Click *Create*. -. Wait for the server status to change from *Starting* to *Running*. This takes a few seconds because Redpanda fetches the spec, parses it, and generates one MCP tool per operation. +. Wait for the server status to change from *Starting* to *Running*. Redpanda fetches the spec, parses it, and generates one MCP tool per operation. . On the server detail page, confirm the *Tools* list shows several entries, including: + @@ -288,7 +288,7 @@ If this is a one-off quickstart, delete the resources you created so they don't . (Optional) Delete the secret. Open *Secrets*, click `ANTHROPIC_API_KEY`, then *Delete*. -. (Optional, on the Anthropic side) Revoke the API key. Open https://console.anthropic.com[console.anthropic.com^] > *Settings* > *API Keys*, find `adp-quickstart`, and click *Revoke*. +. (Optional, on the Anthropic side) Revoke the API key. Open https://platform.claude.com[platform.claude.com^], navigate to *Manage* > *API keys* in the workspace where you created the key, find `adp-quickstart` in the list, and revoke it from the row's action menu. If you want to keep the provider but rotate the key, edit the provider and change the *API key* reference to a new secret. From d9160a5e2c8cf253ed8bf2fe7da0374ec3572dc6 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 17:56:46 -0600 Subject: [PATCH 03/18] Simplify the Create API key step to match the actual dialog Walked through the platform.claude.com Create API key dialog live. It's simpler than the previous wording implied: the dialog has one text field (Name your key), the workspace is preselected (and not editable from the dialog), and the primary button is Add. Replace the multi-bullet step with one sentence that names the dialog and the button so the reader can recognize the surface and finish in a single click. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 7919909..f167405 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -49,12 +49,7 @@ Anthropic requires a payment method before it issues an API key. Add billing fir . Click *Manage* > *API keys* in the sidebar. -. Click *+ Create key* in the top right. -+ -* *Name*: `adp-quickstart` -* *Workspace*: Confirm the workspace you selected above. -+ -Leave any other fields at their defaults and click *Create*. +. Click *+ Create key* in the top right. In the *Create API key* dialog, name the key `adp-quickstart` and click *Add*. . Copy the key (it starts with `sk-ant-`). + From 8d845d720a63f04f8d225ffb0bce80a36b5afcd5 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 17:58:47 -0600 Subject: [PATCH 04/18] Use actual ADP UI labels: Secrets Store and Create Secret Walked through the ADP Secrets Store page live. The sidebar entry is Secrets Store (not Secrets) and the primary button is Create Secret (capital S in Secret). Update three spots in the quickstart to match: the section heading, the navigate step, and the cleanup step. Also soften the inline-creation TIP since the original referenced a specific button label that may not exist. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index f167405..0a76ba2 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -60,15 +60,15 @@ Anthropic shows the API key value once. If you close the dialog without copying, . (Optional) On the *API Keys* page, confirm the new key appears with the *Active* status. -== Store the key in ADP's secret store +== Store the key in the ADP Secrets Store ADP references provider credentials by secret name, not by raw value. Create the secret first so the next step can reference it. . Sign in to ADP. -. Open *Secrets* in the sidebar. +. Open *Secrets Store* in the sidebar. -. Click *Create secret*. +. Click *Create Secret*. + * *Name*: `ANTHROPIC_API_KEY` (use `UPPER_SNAKE_CASE`) * *Value*: Paste the `sk-ant-` key you copied from Anthropic. @@ -77,7 +77,7 @@ Click *Create*. . Confirm the secret appears in the list with the name `ANTHROPIC_API_KEY`. -TIP: If your ADP version offers a *Create new secret* control on the LLM provider form's *API key* field, you can skip this step and create the secret inline in the next section. Either flow stores the key in the same place. +TIP: If your ADP version offers an inline secret-creation control on the LLM provider form's *API key* field, you can skip this step and create the secret inline in the next section. Either flow stores the key in the same place. == Configure your LLM provider @@ -281,7 +281,7 @@ If this is a one-off quickstart, delete the resources you created so they don't . Delete the *LLM provider* (`anthropic-quickstart`). Same pattern. Note that the underlying secret (`ANTHROPIC_API_KEY`) is not deleted automatically. -. (Optional) Delete the secret. Open *Secrets*, click `ANTHROPIC_API_KEY`, then *Delete*. +. (Optional) Delete the secret. Open *Secrets Store*, click `ANTHROPIC_API_KEY`, then *Delete*. . (Optional, on the Anthropic side) Revoke the API key. Open https://platform.claude.com[platform.claude.com^], navigate to *Manage* > *API keys* in the workspace where you created the key, find `adp-quickstart` in the list, and revoke it from the row's action menu. From 12c9cffac3157842c5e6d83109b42091de9e0bcb Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:00:26 -0600 Subject: [PATCH 05/18] Match the actual Create Secret form fields in ADP Walked through the form. Three corrections: - Field label is ID (not Name), with the help text constraint spelled out (uppercase letters, numbers, underscores, slashes, hyphens only). - Scopes is a required field. Call out that AI Gateway must be in the selection so the LLM provider in the next step can read the secret. Leave other default scopes alone. - Submit button is Create Secret (matches the trigger button), not the generic Create. Also add an IMPORTANT callout that the secret value is encrypted and unrecoverable after save, mirroring the form's own help text. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 0a76ba2..45f0999 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -70,12 +70,18 @@ ADP references provider credentials by secret name, not by raw value. Create the . Click *Create Secret*. + -* *Name*: `ANTHROPIC_API_KEY` (use `UPPER_SNAKE_CASE`) +* *ID*: `ANTHROPIC_API_KEY`. The ID accepts uppercase letters, numbers, underscores, slashes, and hyphens only. * *Value*: Paste the `sk-ant-` key you copied from Anthropic. +* *Scopes*: Make sure *AI Gateway* is selected. The LLM provider you create in the next section reads the secret through this scope. Leave any other default scopes in place. + -Click *Create*. +[IMPORTANT] +==== +The secret value is encrypted and cannot be retrieved after you save the form. If you mistype the key, delete the secret and create a new one. +==== ++ +Click *Create Secret* at the bottom of the form. -. Confirm the secret appears in the list with the name `ANTHROPIC_API_KEY`. +. Confirm the secret appears in the list with the ID `ANTHROPIC_API_KEY`. TIP: If your ADP version offers an inline secret-creation control on the LLM provider form's *API key* field, you can skip this step and create the secret inline in the next section. Either flow stores the key in the same place. From d02c7decdfe2d89e9b2437d7b6c8b2e9feb38f64 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:06:48 -0600 Subject: [PATCH 06/18] Match the actual Create LLM Provider form fields Walked through the form. Three corrections plus one resolved TODO: - Section is API key reference (not API key), with Existing / New tabs. Inline secret creation IS supported via the New tab, which closes the standalone secrets-flow TODO. - Toggle label is Authorization passthrough (not Auth passthrough). - Base URL prefills with the standard Anthropic endpoint, so the instruction is now "leave the default in place" rather than "leave blank." Also tightened the Models step: the form's own intro language ("Models you select here become the catalog... you can change later") matches what readers see, so the page now mirrors it instead of restating in different words. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../get-started/pages/byoc-quickstart.adoc | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 45f0999..262c374 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -8,8 +8,7 @@ :learning-objective-3: Build an agent that calls both the LLM provider and the MCP server // Source: drafted against `adp-production` UI flows for LLM providers, MCP servers, and Agents; verified against `apps/adp-ui/src/routes/_authenticated/` and the provider, MCP, and agent protos on cloudv2 origin/main. -// TODO: replace placeholder model IDs (claude-sonnet-4-6, claude-haiku-4-5) with the catalog's current Anthropic offerings at PR time. -// TODO: confirm the Create LLM Provider form's inline secret-creation flow on adp-production. If supported, fold step 2 into step 3 and remove the standalone Secrets step. +// TODO: verify the model IDs (claude-sonnet-4-6, claude-haiku-4-5) against the catalog at PR time; model identifiers shift. Set up Redpanda ADP for your organization. You'll create an Anthropic API key, configure that key as an LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build an agent that uses both. @@ -93,23 +92,24 @@ Now point ADP at Anthropic. . Click *Create provider*. -. Fill in identity: -+ -* *Name*: `anthropic-quickstart` (or accept the auto-suggested name) -* *Display name*: Leave blank to use the *Name*. +. *Name*: Enter `anthropic-quickstart` or accept the auto-suggested name. . *Provider type*: Select *Anthropic*. -. *Base URL*: Leave blank to use the default Anthropic API endpoint. +. *API key reference*: On the *Existing* tab, pick `ANTHROPIC_API_KEY` from the dropdown. ++ +TIP: If you skipped the *Secrets Store* step earlier, switch to the *New* tab to create the secret inline from this form. Either flow stores the key in the same place. -. *API key*: Reference `ANTHROPIC_API_KEY` from the previous step. +. Leave *Authorization passthrough* off. This quickstart uses one shared key, not per-user OAuth. -. Leave *Auth passthrough* off. This quickstart uses one shared key, not per-user OAuth. +. Leave the default *Base URL* in place. The form prefills the standard Anthropic endpoint. -. *Models*: Pick two from the catalog: +. *Models*: Select two from the catalog: + * `claude-haiku-4-5` (fast and inexpensive, good for testing) * `claude-sonnet-4-6` (higher quality, better tool use, used by the agent in the next sections) ++ +The catalog of available models is maintained by Redpanda. Models you select here become the catalog this provider exposes to agents and applications; you can change the list later from the provider detail page. . Click *Create provider*. From 3fd2ac9d9cd7d29af5c54240934d3e1d50a3afc3 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:10:34 -0600 Subject: [PATCH 07/18] Replace Test Connection step with Active-status + curl smoke test Walked through the provider detail page on adp-production. The Overview tab has Connection details (Type, Status, Proxy URL, Base URL, API key ref) and a Models list, but no Test Connection widget. The Connect tab's "Verify the connection" copy is geared at running Claude Code or one of the language client snippets; there is no in-UI button that pings the upstream. Update the verification step to match what's actually visible: - Required: confirm the Status badge in the Connection card shows Active. The agent built later in the quickstart is the end-to-end exercise of the provider. - Optional TIP: smoke-test by opening the Connect tab, picking the curl client (>_ icon), copying the snippet, and running it from a terminal. A 200 response confirms the wiring. Also close the model-ID TODO since the Overview screenshot confirms both claude-haiku-4-5 and claude-sonnet-4-6 exist in the live catalog. Left a lighter comment in the frontmatter noting they should be re-verified at PR time. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 262c374..52b31fd 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -8,7 +8,7 @@ :learning-objective-3: Build an agent that calls both the LLM provider and the MCP server // Source: drafted against `adp-production` UI flows for LLM providers, MCP servers, and Agents; verified against `apps/adp-ui/src/routes/_authenticated/` and the provider, MCP, and agent protos on cloudv2 origin/main. -// TODO: verify the model IDs (claude-sonnet-4-6, claude-haiku-4-5) against the catalog at PR time; model identifiers shift. +// Model IDs (claude-haiku-4-5, claude-sonnet-4-6) verified against the live catalog on adp-production. Re-verify at PR time; identifiers shift quarterly. Set up Redpanda ADP for your organization. You'll create an Anthropic API key, configure that key as an LLM provider, stand up an MCP server backed by a public OpenAPI spec, and build an agent that uses both. @@ -113,9 +113,11 @@ The catalog of available models is maintained by Redpanda. Models you select her . Click *Create provider*. -. On the provider detail page, scroll to *Verify connection*, pick `claude-haiku-4-5` from the dropdown, and click *Test Connection*. The status flips from *Not tested yet* to a green check. +. On the provider detail page, confirm the *Status* badge in the *Connection* card shows *Active*. The agent you build later in this quickstart will exercise the provider end-to-end. ++ +TIP: To smoke-test the key before moving on, open the *Connect* tab, pick a client (the `>_` option is curl, the fastest path), copy the snippet, and run it from your terminal. A 200 response from Anthropic confirms the provider is wired correctly. -If the test fails, see the xref:ai-gateway:configure-provider.adoc#troubleshooting[provider troubleshooting table] (most common cause: secret name typo). +If the *Status* badge stays in a failure state, or the smoke-test request returns an authentication error, see the xref:ai-gateway:configure-provider.adoc#troubleshooting[provider troubleshooting table]. The most common cause is a typo in the secret reference or a key that wasn't issued in the workspace ADP can read. For the full provider field reference (transcript logging, Bedrock IAM, Anthropic auth passthrough, OpenAI-compatible endpoints), see xref:ai-gateway:configure-provider.adoc[Configure an LLM provider]. From 6aa806dae06cd7e9452e5b57561f68085034a493 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:12:34 -0600 Subject: [PATCH 08/18] Match the Configure OpenAPI MCP Server form Walked through the form. Several corrections: - The post-picker page is titled "Configure OpenAPI MCP Server". Name that surface so readers recognize it. - Name field is plain "Name" with the lowercase/hyphens/numbers constraint spelled out in help text (not "Identity" group). - No "Spec source: URL" radio exists. The form has a "Spec" URL field and a "Spec Content" textarea side by side; you fill in one or the other. - Field is "Base URL" (override behavior is in help text, not the label). Renamed accordingly. - Code Mode toggle is new info. Add a one-line note that the quickstart can leave it at its default. - Filter section (Include/Exclude Tags + Include Operations) is for advanced filtering. Tell readers to skip it. - Authentication section wasn't visible in the form crop; hedge the auth instruction with "if the form prompts." Co-Authored-By: Claude Opus 4.7 (1M context) --- .../get-started/pages/byoc-quickstart.adoc | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 52b31fd..706aaba 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -127,20 +127,21 @@ The OpenAPI managed MCP server type takes any OpenAPI 3 (or Swagger 2) spec URL . Open *MCP Servers* > *Create Server*. -. Pick *OpenAPI* from the marketplace picker. +. Pick *OpenAPI* from the server type picker. The *Configure OpenAPI MCP Server* form opens. -. Fill in identity: -+ -* *Name*: `petstore-quickstart` -* *Description*: `Public PetStore API exposed as MCP tools for quickstart testing` +. *Name*: `petstore-quickstart`. The Name accepts lowercase letters, numbers, and hyphens. -. Configure the OpenAPI source: -+ -* *Spec source*: URL -* *Spec URL*: `https://petstore3.swagger.io/api/v3/openapi.json` -* *Base URL override*: Leave blank. PetStore's spec includes the right `servers` block. +. *Description*: `Public PetStore API exposed as MCP tools for quickstart testing`. Optional, but helps you find the server later. + +. Leave *Code Mode* at its default. Code Mode adds search and execute tools that let agents run sandboxed code against the server's tools; the PetStore catalog is small enough that you don't need it for this quickstart. + +. *Spec*: `https://petstore3.swagger.io/api/v3/openapi.json`. Leave the *Spec Content* textarea empty when you provide a URL. + +. Leave *Base URL* blank. The PetStore spec already declares the right `servers` block, so no override is needed. + +. Skip the *Filter* section. PetStore exposes a small catalog and the quickstart agent can see everything. -. *Authentication*: Select *None*. PetStore is a public API. +. If the form prompts for an *Authentication* mode further down, select *None*. PetStore is a public API. . Click *Create*. From f6bd7d8ffa9b05d5a0e9617aa69fbda6fade7f54 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:15:39 -0600 Subject: [PATCH 09/18] MCP server form: button is Submit and auth label is Auth/No Auth Two corrections from the bottom of the Configure OpenAPI MCP Server form: - Submit button is labeled Submit (not Create). - Auth dropdown is required (red asterisk). The field is labeled Auth and the public-access option is No Auth (not Authentication / None). Drop the "if the form prompts" hedge. Also enrich the Filter skip to enumerate what the section actually contains (tag, operation, path, HTTP-method filters) so readers understand what they're skipping. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 706aaba..f90f20f 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -139,11 +139,11 @@ The OpenAPI managed MCP server type takes any OpenAPI 3 (or Swagger 2) spec URL . Leave *Base URL* blank. The PetStore spec already declares the right `servers` block, so no override is needed. -. Skip the *Filter* section. PetStore exposes a small catalog and the quickstart agent can see everything. +. Skip the *Filter* section. It supports tag, operation, path, and HTTP-method filters for trimming a large catalog; PetStore's catalog is small enough that the quickstart agent can see everything. -. If the form prompts for an *Authentication* mode further down, select *None*. PetStore is a public API. +. *Auth*: Select *No Auth*. PetStore is a public API. -. Click *Create*. +. Click *Submit*. . Wait for the server status to change from *Starting* to *Running*. Redpanda fetches the spec, parses it, and generates one MCP tool per operation. From 11fb5cd322795a87984cb3c83cdf3e72a174632b Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:18:31 -0600 Subject: [PATCH 10/18] Lowercase MCP tool names and rework the Inspector sanity check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The OpenAPI MCP server lowercases tool names when generating them from the spec's operationId values, so the live tools are findpetsbystatus, getpetbyid, findpetsbytags, addpet — not the camelCase versions the OpenAPI spec uses. Sweep all 12 references across the MCP step, the agent system prompt, the agent tool-list, and the test-prompt expectations. Also rework the optional Inspector sanity check. The Inspector tool cards in adp-production aren't interactive parameter forms; you can't pick a tool and run it from there with a status=available argument. What you CAN do is: - Read the STATUS field (Connected, green dot) at the top of the MCP Inspector card. - Click Ping or Refresh to exercise the server. - Count tools in the Tools card. The new step uses those affordances. The real tool exercise comes in the next section when the agent calls findpetsbystatus from a prompt. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../get-started/pages/byoc-quickstart.adoc | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index f90f20f..aa67e0a 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -147,16 +147,14 @@ The OpenAPI managed MCP server type takes any OpenAPI 3 (or Swagger 2) spec URL . Wait for the server status to change from *Starting* to *Running*. Redpanda fetches the spec, parses it, and generates one MCP tool per operation. -. On the server detail page, confirm the *Tools* list shows several entries, including: +. Open the *Inspector* tab. Confirm: + -* `findPetsByStatus` -* `getPetById` -* `findPetsByTags` -* `addPet` +* *STATUS* shows *Connected* with a green dot. +* The *Tools* card lists multiple entries, including `findpetsbystatus`, `getpetbyid`, `findpetsbytags`, and `addpet`. The OpenAPI MCP server lowercases tool names when it generates them from the spec's `operationId` values. + The exact tool count depends on the operations defined in the spec at fetch time. -. (Optional sanity check) Open the *Inspector* tab. Pick `findPetsByStatus`. In the form, set `status` to `available`. Click *Call tool*. You should see a JSON array of pet objects. If you see an error, see xref:mcp:managed/openapi.adoc#troubleshooting[OpenAPI MCP troubleshooting]. +. (Optional) Click *Ping* in the *MCP Inspector* card to confirm the server responds. If the Ping fails or the *STATUS* stays disconnected, see xref:mcp:managed/openapi.adoc#troubleshooting[OpenAPI MCP troubleshooting]. For the full OpenAPI MCP reference (auth modes, operation filters, base URL overrides), see xref:mcp:managed/openapi.adoc[OpenAPI managed MCP server]. @@ -188,9 +186,9 @@ You are a pet store inventory assistant. You have access to PetStore API tools through MCP. Use them to answer questions about pets: -- findPetsByStatus: List pets by status (available, pending, sold) -- getPetById: Look up a specific pet by ID -- findPetsByTags: Search by tag +- findpetsbystatus: List pets by status (available, pending, sold) +- getpetbyid: Look up a specific pet by ID +- findpetsbytags: Search by tag Rules: - Always call a tool before answering. Don't make up pet data. @@ -206,9 +204,9 @@ Rules: * Select `petstore-quickstart`. * For this quickstart, enable only the read tools to keep the agent safe: + -** `findPetsByStatus` -** `getPetById` -** `findPetsByTags` +** `findpetsbystatus` +** `getpetbyid` +** `findpetsbytags` . Set execution parameters: + @@ -233,7 +231,7 @@ What pets are available right now? + The agent should: + -* Call `findPetsByStatus` with `status=available`. +* Call `findpetsbystatus` with `status=available`. * Return a summary of the pets the tool returned, naming the tool. . Send the second prompt: @@ -243,7 +241,7 @@ The agent should: Tell me about pet ID 1. ---- + -The agent should call `getPetById` with `petId=1` and return the pet's details. +The agent should call `getpetbyid` with `petId=1` and return the pet's details. . (Optional) Send an open-ended prompt to confirm multi-step reasoning: + @@ -252,7 +250,7 @@ The agent should call `getPetById` with `petId=1` and return the pet's details. Find a pet tagged "friendly" and tell me whether it's available. ---- + -The agent may call `findPetsByTags` first, then `getPetById` for one of the matches, then summarize. +The agent may call `findpetsbytags` first, then `getpetbyid` for one of the matches, then summarize. If the agent hallucinates data instead of calling a tool, tighten the system prompt's "Always call a tool before answering" rule. See xref:agents:system-prompts.adoc[system prompt best practices] for patterns. From 313bb09d1403a82dbdb6fee0c4fbba5f932fa5cf Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:25:11 -0600 Subject: [PATCH 11/18] Match the actual Create AI Agent form layout Walked through the form on adp-production. Several corrections: - List-page button is Create AI Agent (not Create Agent). - Field is Agent Name (not Display name). - Field is Resources (not Resource tier). - There is NO AI Gateway dropdown in the form. The LLM Provider Configuration card has Provider and Model only. Drop the gateway-selection step and the cross-link to the AI Gateway quickstart as a hard prereq. - MCP Tools is a server-level checkbox list, not an Add MCP Server button with individual-tool checkboxes. Each row shows "Tools discovered on first use" which means the agent gets every tool the server exposes at runtime; you cannot pre-filter to read tools from the form. Update the step and tighten the system prompt with a "stick to read operations" rule to compensate. - Max Iterations is a slider that defaults to a reasonable value. Tell readers to leave the default; the quickstart prompts don't need many iterations. - Subagents (Optional) and Service Account cards exist further down; tell readers to leave them at defaults. Also fold the service-account explanation into the create step so the section ends cleanly with a single status-check sentence rather than a trailing standalone tip. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../get-started/pages/byoc-quickstart.adoc | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index aa67e0a..12a2c27 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -164,28 +164,28 @@ Combine the Anthropic provider and the PetStore MCP server into an agent. . Open *AI Agents* in the sidebar. -. Click *Create Agent*. +. Click *Create AI Agent*. -. Configure basic settings: +. In the *Basic Information* card: + -* *Display name*: `pet-store-assistant` +* *Agent Name*: `pet-store-assistant` * *Description*: `Quickstart agent that answers questions about the PetStore inventory` -* *Resource tier*: *XSmall* +* *Resources*: Select *XSmall*. The quickstart workload fits inside the smallest tier. -. Select the gateway and model: +. In the *LLM Provider Configuration* card: + -* *AI Gateway*: Select your active gateway. (If you haven't created a gateway yet, follow xref:ai-gateway:gateway-quickstart.adoc[the AI Gateway quickstart] first.) -* *Provider*: `anthropic-quickstart` -* *Model*: `claude-sonnet-4-6` +* *Provider*: Select `anthropic-quickstart` from the dropdown. +* *Model*: Select `claude-sonnet-4-6`. Sonnet handles multi-step tool use more reliably than Haiku. +* *Max Iterations*: Leave the slider at its default. The quickstart prompts don't need many iterations. -. Write the system prompt: +. In the *System Prompt* card, paste the following into the editor: + [,text] ---- You are a pet store inventory assistant. You have access to PetStore API tools through MCP. Use them to answer -questions about pets: +questions about pets. The most useful read tools are: - findpetsbystatus: List pets by status (available, pending, sold) - getpetbyid: Look up a specific pet by ID - findpetsbytags: Search by tag @@ -196,27 +196,19 @@ Rules: tool name in your response. - If a tool fails or returns no data, say so and stop. Don't retry with invented IDs. +- Stick to read operations for this quickstart. Don't add, update, or + delete pets. ---- -. Add the MCP server: -+ -* Click *Add MCP Server*. -* Select `petstore-quickstart`. -* For this quickstart, enable only the read tools to keep the agent safe: -+ -** `findpetsbystatus` -** `getpetbyid` -** `findpetsbytags` +. In the *MCP Tools* card, check the box next to `petstore-quickstart`. The card displays "Tools discovered on first use," which means the agent discovers every tool the PetStore server exposes at runtime; you don't pre-select individual tools here. The system prompt's "stick to read operations" rule constrains behavior. -. Set execution parameters: -+ -* *Max iterations*: `15` (more than enough for a multi-step question) +. Leave the *Subagents (Optional)* card empty. The quickstart uses a single agent. -. Click *Create Agent*. +. Leave the auto-generated *Service Account Name* in the *Service Account* card as is. ADP creates the service account when you create the agent. -. Wait for the agent status to change from *Starting* to *Running*. +. Click *Create Agent* at the bottom of the form. -A service account is automatically created so the agent can authenticate against ADP. For details, see xref:agents:concepts.adoc#service-account-authorization[service account authorization]. +. Wait for the agent status to change from *Starting* to *Running*. ADP also creates the service account at this point; for details, see xref:agents:concepts.adoc#service-account-authorization[service account authorization]. == Test the agent in the Inspector From f73163ff110d84caa0a8197f8bdc56841153e0d8 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:31:56 -0600 Subject: [PATCH 12/18] Surface the per-agent Transcripts tab in the verify step The agent detail page has its own Transcripts tab alongside Configuration, Integrations, A2A, and Inspector. A reader who just finished testing the agent in the Inspector tab can switch to Transcripts on the same page rather than navigating to the sidebar's cross-agent Transcripts view. Mention both paths so the reader picks the one closest to where they already are. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 12a2c27..f1a898c 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -258,7 +258,7 @@ The glossterm:governance dashboard[] rolls up every LLM call and tool invocation * *Requests*: Reflects the LLM calls from your agent runs (one per turn). * *Tokens*: Input plus output tokens across the same calls. -. Open *Transcripts* (sidebar or *Observability* > *Transcripts*). Find the most recent agent run. +. Open the agent's *Transcripts* tab on the agent detail page (or *Transcripts* in the sidebar for the cross-agent view). Find the most recent agent run. . Walk through the transcript turn-by-turn. You should see: + From 7e52332c47b1cb6018038e13fb0ec78f788ce14c Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:34:10 -0600 Subject: [PATCH 13/18] Describe the Inspector chat layout and add PetStore flakiness notes Walked through running prompts in the agent's Inspector tab. Three updates: 1. The Inspector is a chat UI, not a function-call form. Lead the Test section with a one-paragraph description of what readers will see (Task/TaskStatusUpdate/tool-call cards and the final Artifact response) so the first interaction isn't a surprise. Send is a paper-plane icon at the bottom-right of the input; no Enter shortcut. 2. Add a NOTE in the MCP step that PetStore is a public demo Swagger hosts and is occasionally unavailable. If the agent later returns an HTTP 500 from PetStore, that's the upstream, not ADP. 3. Add a follow-up troubleshooting paragraph after the test prompts pointing at the same 500 scenario. The system prompt's "if a tool fails, say so and stop" rule produces a clean apology message; readers should know this is the agent behaving correctly, not a configuration bug. The retry advice is one line and out of the reader's way. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index f1a898c..81f8475 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -125,6 +125,11 @@ For the full provider field reference (transcript logging, Bedrock IAM, Anthropi The OpenAPI managed MCP server type takes any OpenAPI 3 (or Swagger 2) spec URL and generates one MCP tool per operation. You'll point it at the public Swagger PetStore, which exposes a small pet-inventory API with no authentication. +[NOTE] +==== +PetStore is a public demo that Swagger hosts for testing and is occasionally unavailable. If your agent later returns an HTTP 500 from PetStore, that's the upstream, not ADP. Retry the prompt, or move on to a real MCP server (xref:mcp:managed/managed-catalog.adoc[Managed MCP catalog]) once you've confirmed the rest of the flow works. +==== + . Open *MCP Servers* > *Create Server*. . Pick *OpenAPI* from the server type picker. The *Configure OpenAPI MCP Server* form opens. @@ -212,6 +217,8 @@ Rules: == Test the agent in the Inspector +The *Inspector* tab is a chat surface for the agent. Type a prompt into the input at the bottom of the page and click the paper-plane icon in the input's bottom-right corner to send. Each prompt creates a *Task* card in the conversation that walks through the agent's execution turn-by-turn: TaskStatusUpdate entries (Submitted → Working → Completed) with token counts, individual tool-call cards showing the tool name and latency, and an *Artifact* card holding the final response. *Clear context* (at the bottom of the input) resets the conversation between tests. + . On the agent detail page, open the *Inspector* tab. . Send the first prompt: @@ -246,6 +253,8 @@ The agent may call `findpetsbytags` first, then `getpetbyid` for one of the matc If the agent hallucinates data instead of calling a tool, tighten the system prompt's "Always call a tool before answering" rule. See xref:agents:system-prompts.adoc[system prompt best practices] for patterns. +If a tool card shows an HTTP 500 error and the Artifact apologizes about the pet store API being unavailable, that's the public Swagger PetStore being intermittently down. The agent is behaving correctly (the "if a tool fails, say so and stop" rule in the system prompt is what produced the apology). Retry the prompt; PetStore usually recovers within a few minutes. + == Verify in the governance dashboard The glossterm:governance dashboard[] rolls up every LLM call and tool invocation across your ADP deployment. Confirm the quickstart calls landed there. From 8a54a6661e85d79d6233f4c66dbc3e24752736c7 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:37:06 -0600 Subject: [PATCH 14/18] Reorder test prompts so the reliable one runs first User observed that "What pets are available right now?" (findpetsbystatus on status=available) failed twice in a row against the public PetStore demo, while "Tell me about pet ID 1" (getpetbyid) worked on the first try. PetStore's findpetsbystatus endpoint has a known flakiness pattern; getpetbyid is reliable. A quickstart whose first prompt fails twice is a bad first impression even if the rest works. Swap the order so getpetbyid runs as the first smoke test, then findpetsbystatus as the second test. The reader sees a clean success before encountering any upstream-side flakiness. Annotate each prompt with a one-clause note on PetStore endpoint reliability so the reader knows what to expect. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 81f8475..5d4377c 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -225,22 +225,19 @@ The *Inspector* tab is a chat surface for the agent. Type a prompt into the inpu + [,text] ---- -What pets are available right now? +Tell me about pet ID 1. ---- + -The agent should: -+ -* Call `findpetsbystatus` with `status=available`. -* Return a summary of the pets the tool returned, naming the tool. +The agent should call `getpetbyid` with `petId=1` and return the pet's details in an Artifact card. This endpoint is the most reliable on the public PetStore demo and works as the first smoke test. . Send the second prompt: + [,text] ---- -Tell me about pet ID 1. +What pets are available right now? ---- + -The agent should call `getpetbyid` with `petId=1` and return the pet's details. +The agent should call `findpetsbystatus` with `status=available` and return a summary of the pets, naming the tool. This PetStore endpoint is occasionally flaky; if it returns an HTTP 500, retry the prompt or see the troubleshooting note below. . (Optional) Send an open-ended prompt to confirm multi-step reasoning: + From a9b312dda64e09b989e880b324456d7965bd71af Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:42:06 -0600 Subject: [PATCH 15/18] Conditionalize governance dashboard content until it ships The Governance dashboard, KPI cards, and Track-spend next-step reference UI that's not yet in adp-production (no Governance entry in the sidebar). Wrap the affected content in ifdef::env-adp-governance[] blocks so it's preserved in source but doesn't render until the flag is defined. Replace the now-empty Verify step with "Verify the agent in Transcripts" using what's actually available today: the per-agent Transcripts tab and the cross-agent Transcripts view in the sidebar. Both surfaces are real and link to observability:transcripts.adoc. Three blocks conditionalized: - Verify spend in the governance dashboard section (was: Verify in the governance dashboard). - Track spend across teams bullet in Next steps. - "see the calls in the governance dashboard" phrasing in the What you'll build paragraph. When the governance UI ships, set env-adp-governance: true in antora.yml under asciidoc.attributes (or define it as a page attribute) to surface everything again. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../get-started/pages/byoc-quickstart.adoc | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 5d4377c..4f61993 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -32,7 +32,7 @@ Three ADP resources, in order: . *PetStore glossterm:MCP server[]*. Exposes the public Swagger PetStore API as a set of glossterm:MCP tool[,MCP tools] the agent can call. . *Pet store assistant glossterm:AI agent[,agent]*. Combines the provider and the MCP server so a natural-language question becomes a real API call against PetStore. -After the agent works, you'll see the calls in the governance dashboard and walk through one execution turn-by-turn in the Transcripts view. +After the agent works, you can walk through one execution turn-by-turn in the Transcripts view. All three resources are deletable at the end of the quickstart. @@ -252,17 +252,9 @@ If the agent hallucinates data instead of calling a tool, tighten the system pro If a tool card shows an HTTP 500 error and the Artifact apologizes about the pet store API being unavailable, that's the public Swagger PetStore being intermittently down. The agent is behaving correctly (the "if a tool fails, say so and stop" rule in the system prompt is what produced the apology). Retry the prompt; PetStore usually recovers within a few minutes. -== Verify in the governance dashboard +== Verify the agent in Transcripts -The glossterm:governance dashboard[] rolls up every LLM call and tool invocation across your ADP deployment. Confirm the quickstart calls landed there. - -. Open *Governance* > *Dashboard* in the sidebar. - -. In the *Last 24 hours* view, check three KPIs: -+ -* *Total spend*: A small but non-zero value. -* *Requests*: Reflects the LLM calls from your agent runs (one per turn). -* *Tokens*: Input plus output tokens across the same calls. +Every agent run is recorded as a glossterm:transcript[] you can replay turn-by-turn. . Open the agent's *Transcripts* tab on the agent detail page (or *Transcripts* in the sidebar for the cross-agent view). Find the most recent agent run. @@ -274,7 +266,25 @@ The glossterm:governance dashboard[] rolls up every LLM call and tool invocation * The tool's response. * The agent's final response to the user. -For the full governance dashboard tour, see xref:governance:dashboard/overview.adoc[Read the governance overview]. For transcript field reference, see xref:observability:transcripts.adoc[Read a transcript]. +For the full transcript field reference, see xref:observability:transcripts.adoc[Read a transcript]. + +// The Governance dashboard section below is conditionalized out until the governance UI ships in adp-production. +// To surface it, define `env-adp-governance` in `antora.yml` (under `asciidoc.attributes`) or as a page attribute. +ifdef::env-adp-governance[] +== Verify spend in the governance dashboard + +The glossterm:governance dashboard[] rolls up every LLM call and tool invocation across your ADP deployment. + +. Open *Governance* > *Dashboard* in the sidebar. + +. In the *Last 24 hours* view, check three KPIs: ++ +* *Total spend*: A small but non-zero value. +* *Requests*: Reflects the LLM calls from your agent runs (one per turn). +* *Tokens*: Input plus output tokens across the same calls. + +For the full governance dashboard tour, see xref:governance:dashboard/overview.adoc[Read the governance overview]. +endif::[] == Clean up @@ -294,8 +304,10 @@ If you want to keep the provider but rotate the key, edit the provider and chang == Next steps -Now that you have a working ADP setup, here are the three most useful things to do next: +Now that you have a working ADP setup, here are the most useful things to do next: * Add more LLM providers (OpenAI, Google AI, AWS Bedrock, OpenAI-compatible): xref:ai-gateway:configure-provider.adoc[Configure an LLM provider] * Swap the PetStore demo for a real upstream (Slack, Jira, SQL, Kafka, and more): xref:mcp:managed/managed-catalog.adoc[Managed MCP catalog] +ifdef::env-adp-governance[] * Track spend across teams: xref:governance:budgets.adoc[Token budgets and limits] +endif::[] From bb408c9dac96462062725ba5769e6404d571728d Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:55:51 -0600 Subject: [PATCH 16/18] Conditionalize Transcripts verify section alongside Governance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Walked through Transcripts in adp-production and the page hangs when trying to find a specific run. Until the Transcripts UI is stable, wrap the "Verify the agent in Transcripts" section in ifdef::env-adp-transcripts[] so it doesn't render. Both admin verify sections are now gated by their own attribute, so they can be flipped on independently when each surface ships: - env-adp-transcripts: true for the Transcripts verify section - env-adp-governance: true for the Governance dashboard verify section The intro "After the agent works, you can walk through one execution turn-by-turn in the Transcripts view." stays in place per direction; only the section itself is gated. With both flags off, the visible flow is Test → Clean up. The Inspector test step is itself the verification: the reader saw the agent respond with tool calls and an Artifact. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index 4f61993..baf828d 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -252,6 +252,12 @@ If the agent hallucinates data instead of calling a tool, tighten the system pro If a tool card shows an HTTP 500 error and the Artifact apologizes about the pet store API being unavailable, that's the public Swagger PetStore being intermittently down. The agent is behaving correctly (the "if a tool fails, say so and stop" rule in the system prompt is what produced the apology). Retry the prompt; PetStore usually recovers within a few minutes. +// The Transcripts and Governance verify sections below are conditionalized out until those admin UIs are stable in adp-production. +// Each section is gated by its own attribute so they can be flipped on independently when ready. To surface a section, +// define the corresponding attribute in `antora.yml` (under `asciidoc.attributes`) or as a page attribute: +// * `env-adp-transcripts: true` for the Transcripts verify section +// * `env-adp-governance: true` for the Governance dashboard verify section +ifdef::env-adp-transcripts[] == Verify the agent in Transcripts Every agent run is recorded as a glossterm:transcript[] you can replay turn-by-turn. @@ -267,9 +273,8 @@ Every agent run is recorded as a glossterm:transcript[] you can replay turn-by-t * The agent's final response to the user. For the full transcript field reference, see xref:observability:transcripts.adoc[Read a transcript]. +endif::[] -// The Governance dashboard section below is conditionalized out until the governance UI ships in adp-production. -// To surface it, define `env-adp-governance` in `antora.yml` (under `asciidoc.attributes`) or as a page attribute. ifdef::env-adp-governance[] == Verify spend in the governance dashboard From 3db310dbcd4c070f03fbeef61e2c0efa8dc5fe2f Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:56:05 -0600 Subject: [PATCH 17/18] Drop the deletable-resources framing line from What you'll build The Clean up section at the end of the page already covers deletion in concrete steps; the standalone "All three resources are deletable at the end of the quickstart" sentence in the intro adds noise without information. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index baf828d..fe2df82 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -34,8 +34,6 @@ Three ADP resources, in order: After the agent works, you can walk through one execution turn-by-turn in the Transcripts view. -All three resources are deletable at the end of the quickstart. - == Get an Anthropic API key Anthropic requires a payment method before it issues an API key. Add billing first, then create the key. From ea0eb4a1eebee0addd64236346cba538aca45c34 Mon Sep 17 00:00:00 2001 From: micheleRP Date: Tue, 26 May 2026 18:59:55 -0600 Subject: [PATCH 18/18] Drop the optional curl smoke-test TIP from the provider step The TIP pointed at a curl client in the LLM provider's Connect tab Code Examples grid, but that affordance is patchy across surfaces (the MCP server's Connection tab has python/node/java/go but no CLI/curl option) and may not survive UI changes. The Status: Active check on the Connection card already gives pre-agent verification, and the agent test in step 6 is the real end-to-end smoke test: a single prompt exercises the provider, the MCP server, and the agent. Removing the TIP keeps the quickstart on the shortest reliable path and avoids one more surface to keep in sync with UI changes. Also drop the "or the smoke-test request returns an authentication error" clause from the troubleshooting paragraph since the smoke-test step is gone. Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/get-started/pages/byoc-quickstart.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/get-started/pages/byoc-quickstart.adoc b/modules/get-started/pages/byoc-quickstart.adoc index fe2df82..dc1c650 100644 --- a/modules/get-started/pages/byoc-quickstart.adoc +++ b/modules/get-started/pages/byoc-quickstart.adoc @@ -112,10 +112,8 @@ The catalog of available models is maintained by Redpanda. Models you select her . Click *Create provider*. . On the provider detail page, confirm the *Status* badge in the *Connection* card shows *Active*. The agent you build later in this quickstart will exercise the provider end-to-end. -+ -TIP: To smoke-test the key before moving on, open the *Connect* tab, pick a client (the `>_` option is curl, the fastest path), copy the snippet, and run it from your terminal. A 200 response from Anthropic confirms the provider is wired correctly. -If the *Status* badge stays in a failure state, or the smoke-test request returns an authentication error, see the xref:ai-gateway:configure-provider.adoc#troubleshooting[provider troubleshooting table]. The most common cause is a typo in the secret reference or a key that wasn't issued in the workspace ADP can read. +If the *Status* badge stays in a failure state, see the xref:ai-gateway:configure-provider.adoc#troubleshooting[provider troubleshooting table]. The most common cause is a typo in the secret reference or a key that wasn't issued in the workspace ADP can read. For the full provider field reference (transcript logging, Bedrock IAM, Anthropic auth passthrough, OpenAI-compatible endpoints), see xref:ai-gateway:configure-provider.adoc[Configure an LLM provider].