From d8af9390760519a9236989c181f5cf34b447221a Mon Sep 17 00:00:00 2001 From: Isaac Date: Mon, 18 May 2026 13:38:40 -0700 Subject: [PATCH 1/2] W-22511751 add shared spaces support to agent network docs Update agent network documentation to reflect that Flex Gateway now supports shared spaces and that a single gateway can handle both ingress and egress traffic. Co-Authored-By: Claude Opus 4.7 --- modules/ROOT/pages/_partials/af-shared.adoc | 10 ++--- modules/ROOT/pages/af-agent-networks.adoc | 2 +- ...agent-networks-in-a-ci-cd-environment.adoc | 4 +- .../af-deploy-agent-network-targets.adoc | 2 +- modules/ROOT/pages/af-get-started.adoc | 37 ++++++++++++------- 5 files changed, 32 insertions(+), 23 deletions(-) diff --git a/modules/ROOT/pages/_partials/af-shared.adoc b/modules/ROOT/pages/_partials/af-shared.adoc index cb4547a98..e40389199 100644 --- a/modules/ROOT/pages/_partials/af-shared.adoc +++ b/modules/ROOT/pages/_partials/af-shared.adoc @@ -84,12 +84,12 @@ If you're using the Anypoint CLI to create agent network projects, ensure you me [[step-1-setup]] === Step 1: Set Up Your Agent Network -. Use Anypoint Runtime Manager to set up a private space in CloudHub 2.0 or deployment target in Runtime Fabric. +. Use Anypoint Runtime Manager to set up a space in CloudHub 2.0 or deployment target in Runtime Fabric. + -See xref:anypoint-code-builder::af-get-started.adoc#setup-space[Set Up the Private Space or Deployment Target for Your Environment]. -. Set up Ingress and egress Omni Gateways for the private space or deployment target. +See xref:anypoint-code-builder::af-get-started.adoc#setup-space[Set Up the Space or Deployment Target for Your Environment]. +. Set up Omni Gateways for the space or deployment target. + - * If using Anypoint Code Builder, see xref:anypoint-code-builder::af-get-started.adoc#setup-gateways[Set Up Agent Network Gateways for the Private Space or Deployment Target]. + * If using Anypoint Code Builder, see xref:anypoint-code-builder::af-get-started.adoc#setup-gateways[Set Up Agent Network Gateways for the Space or Deployment Target]. * If using the Anypoint CLI, see the xref:anypoint-code-builder::af-build-agent-networks-in-a-ci-cd-environment.adoc#agent-network-setup-gateways[setup gateways command reference]. [[step-2-create]] @@ -121,7 +121,7 @@ Build and publish your agent network project as Anypoint Exchange assets. When y [[step-5-deploy]] === Step 5: Deploy Your Agent Network Instances -Deploy your agent network instance to a deployment target. You can deploy to a CloudHub 2.0 private space or to a Runtime Fabric. +Deploy your agent network instance to a deployment target. You can deploy to a CloudHub 2.0 shared space, a CloudHub 2.0 private space, or to a Runtime Fabric. * xref:anypoint-code-builder::af-deploy-agent-network-targets.adoc#deploy-dev-agent[Deploy Your Network Using MuleSoft Vibes] * xref:anypoint-code-builder::af-deploy-agent-network-targets.adoc#deploy-acb[Deploy Your Network Using Anypoint Code Builder] diff --git a/modules/ROOT/pages/af-agent-networks.adoc b/modules/ROOT/pages/af-agent-networks.adoc index 920b6c5f4..ed619a62a 100644 --- a/modules/ROOT/pages/af-agent-networks.adoc +++ b/modules/ROOT/pages/af-agent-networks.adoc @@ -122,7 +122,7 @@ image::agent-fabric-architecture.png[Agent Fabric showing agents and MCP servers . Publish the agentic assets to Anypoint Exchange for discovery and reuse after you define the agent network (brokers, agents, MCP servers) in the agent network YAML in Anypoint Code Builder. . Deploy the agentic assets to CloudHub 2.0 (managed in Runtime Manager). . Enforce policies on incoming traffic to the network with an ingress Omni Gateway, which sits in front of brokers and API endpoints. -. Enforce policies, manage connections, and emit telemetry data with an egress Omni Gateway, which sits on outbound paths from brokers and agents to external agents and services. +. Enforce policies, manage connections, and emit telemetry data with an egress Omni Gateway, which sits on outbound paths from brokers and agents to external agents and services. In a shared space, or in a private space using a single-gateway configuration, callouts policies, traffic, and data are handled by one Omni Gateway. . Collect logs, metrics, and traces from Omni Gateway and runtimes in Anypoint Monitoring. [[llm-support]] diff --git a/modules/ROOT/pages/af-build-agent-networks-in-a-ci-cd-environment.adoc b/modules/ROOT/pages/af-build-agent-networks-in-a-ci-cd-environment.adoc index 291a52210..a6ce0294a 100644 --- a/modules/ROOT/pages/af-build-agent-networks-in-a-ci-cd-environment.adoc +++ b/modules/ROOT/pages/af-build-agent-networks-in-a-ci-cd-environment.adoc @@ -41,9 +41,9 @@ For more information, see xref:anypoint-cli::auth.adoc[]. === Create a Target Space for Your Environment -To deploy an agent network, you need a private space on CloudHub 2.0 or a deployment target on Anypoint Runtime Fabric. See xref:af-get-started.adoc#setup-space[Set Up the Private Space or Deployment Target for Your Environment]. +To deploy an agent network, you need a space on CloudHub 2.0 or a deployment target on Anypoint Runtime Fabric. See xref:af-get-started.adoc#setup-space[Set Up the Space or Deployment Target for Your Environment]. -After you create a target space, set up the ingress and egress gateways for deployment if you haven't already done so. See xref:af-get-started.adoc#setup-gateways[Set Up Agent Network Gateways for the Private Space or Deployment Target]. +After you have a target space, set up the gateway or gateways for deployment if you haven't already done so. See xref:af-get-started.adoc#setup-gateways[Set Up Agent Network Gateways for the Space or Deployment Target]. == CLI for Agent Fabric Plugin Reference diff --git a/modules/ROOT/pages/af-deploy-agent-network-targets.adoc b/modules/ROOT/pages/af-deploy-agent-network-targets.adoc index 8b31f4562..edc181e2f 100644 --- a/modules/ROOT/pages/af-deploy-agent-network-targets.adoc +++ b/modules/ROOT/pages/af-deploy-agent-network-targets.adoc @@ -1,7 +1,7 @@ [[deploy-instances]] = Deploy Agent Network Instances -Deploy your agent network instance to a deployment target. You can deploy to a CloudHub 2.0 private space or to a Runtime Fabric. When you deploy, Omni Gateway secures your agent network in the ingress gateway. Also, it secures your brokers, agents, and MCP servers in the egress gateway. +Deploy your agent network instance to a deployment target. You can deploy to a CloudHub 2.0 shared space, a CloudHub 2.0 private space, or to a Runtime Fabric. When you deploy, Omni Gateway secures inbound traffic to your agent network and outbound traffic from your brokers, agents, and MCP servers. These Omni Gateway policies are applied automatically at deployment. diff --git a/modules/ROOT/pages/af-get-started.adoc b/modules/ROOT/pages/af-get-started.adoc index 93f1fde29..591e8a063 100644 --- a/modules/ROOT/pages/af-get-started.adoc +++ b/modules/ROOT/pages/af-get-started.adoc @@ -4,15 +4,18 @@ include::anypoint-code-builder::partial$af-shared.adoc[tags=get-started] [[setup-space]] -== Set Up the Private Space or Deployment Target for Your Environment +== Set Up the Space or Deployment Target for Your Environment -To deploy an agent network, you need a private space on CloudHub 2.0 or a deployment target on Anypoint Runtime Fabric. +To deploy an agent network, you need a space on CloudHub 2.0 or a deployment target on Anypoint Runtime Fabric. On CloudHub 2.0, you can deploy to a shared space or a private space. -If you already have a private space configured in CloudHub 2.0, you can associate it with the business groups and environments where you'll deploy your agent network. +Use a shared space if you don't require dedicated infrastructure. Use a private space if you need workload isolation or have other requirements that a shared space doesn't satisfy. Depending on your deployment target: -* CloudHub 2.0: +* CloudHub 2.0 shared space: ++ +No setup is required. Every Anypoint Platform organization includes a shared space that's available to all business groups and environments. +* CloudHub 2.0 private space: + . Create a private space in CloudHub 2.0 or verify that you can access an existing private space. + @@ -28,27 +31,33 @@ Create a target space for Runtime Fabric. For information about Runtime Fabric deployments, see xref:gateway::flex-gateway-managed-set-up.adoc#rtf[Managed Omni Gateway on Runtime Fabric]. [[setup-gateways]] -== Set Up Agent Network Gateways for the Private Space or Deployment Target +== Set Up Agent Network Gateways for the Space or Deployment Target + +After you have a target space, use the `MuleSoft: Set Up Agent Network Gateways` command to create the gateways required for deployment in either CloudHub 2.0 or Runtime Fabric. -After you have a target space, use the `MuleSoft: Set Up Agent Network Gateways` command to create the ingress and egress gateways required for deployment in either CloudHub 2.0 or Runtime Fabric. +For agent networks, you need at least one Managed Omni Gateway in your environment. A single gateway can handle both ingress and egress traffic, which is the recommended configuration. You can also use separate gateways for ingress and egress traffic in a private space. -For agent networks, you must have at least one small Managed Omni Gateway and one large Managed Omni Gateway in your environment. For more information about gateways, see xref:gateway::flex-architecture-basic-deployments.adoc[]. For more information about Runtime Fabric deployments, see xref:gateway::flex-gateway-managed-set-up.adoc#rtf[Managed Omni Gateway on Runtime Fabric]. . In Anypoint Code Builder, from the Command Palette, run the command *MuleSoft: Set Up Agent Network Gateways*. -+ -If you didn't associate the private space with the business group and environment, you see an error. . If you're not logged in, log in to your Anypoint Platform account. -. Select the business group, environment, and private or target space. +. Select the business group and environment. +. Select the deployment target: + -The `MuleSoft: Set Up Agent Network Gateways` command creates these gateways in the private or target space you select: +* *Shared Space*: The command creates one gateway named `agent-network-shared-gw` that handles both ingress and egress traffic. +* *Private Space*: Select the target space, then choose a gateway configuration: + -* agent-network-ingress-gw (with public and internal endpoint) -* agent-network-egress-gw (with internal endpoint only) +** *Single Gateway* (recommended): The command creates one gateway named `agent-network-gw` that handles both ingress and egress traffic. +** *Separate Ingress & Egress*: The command creates two gateways: ++ +*** `agent-network-ingress-gw` (with public and internal endpoint) +*** `agent-network-egress-gw` (with internal endpoint only) ++ +If you didn't associate the private space with the business group and environment, you see an error. -If the gateways already exist in the selected private or target space, the command doesn’t recreate them. +If a gateway with the expected name already exists in the selected space, the command doesn't recreate it. [[see-also]] == See Also From 99c8aed437f6ea3e37ef01a6031cc9c6be9c4d2a Mon Sep 17 00:00:00 2001 From: Isaac Date: Thu, 21 May 2026 11:39:53 -0700 Subject: [PATCH 2/2] Update agent network documentation and image Revised the description of the egress Omni Gateway to clarify its role in shared and private spaces. Added a note regarding the handling of callouts, traffic, and data by a single gateway configuration. Updated the agent fabric architecture image to reflect recent changes. --- .../images/agent-fabric-architecture.png | Bin 399631 -> 400152 bytes modules/ROOT/pages/af-agent-networks.adoc | 5 ++++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/assets/images/agent-fabric-architecture.png b/modules/ROOT/assets/images/agent-fabric-architecture.png index 1cf242e75806b844d90151fc5974b229863af777..74a6a950cc074daa6b2116174a2b0b2d5d73fc4b 100644 GIT binary patch literal 400152 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 z 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