<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf">ai-data-frameworks_solace-agent-mesh</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
    <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-1 mb-1 text-muted text-uppercase">
      <span>Source</span>
    </h6>
    <li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=.github"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> .github</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=.hooks"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> .hooks</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=.vscode"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> .vscode</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=THIRD_PARTY_LICENSES"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> THIRD_PARTY_LICENSES</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=cli"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> cli</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=client"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> client</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=config_portal"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> config_portal</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> docs</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> docs</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> documentation</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fcomponents"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> components</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fdeploying"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> deploying</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fdeveloping"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> developing</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> tutorials</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2F_category_.json"><i class="fa-solid fa-file" style="color:#888;"></i> _category_.json</a></li><li><a class="nav-link py-0 active" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fbedrock-agents.md"><i class="fa-solid fa-file" style="color:#888;"></i> bedrock-agents.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fbuilding-custom-agent-images.md"><i class="fa-solid fa-file" style="color:#888;"></i> building-custom-agent-images.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fcustom-agent.md"><i class="fa-solid fa-file" style="color:#888;"></i> custom-agent.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fevent-mesh-gateway.md"><i class="fa-solid fa-file" style="color:#888;"></i> event-mesh-gateway.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fmcp-gateway.md"><i class="fa-solid fa-file" style="color:#888;"></i> mcp-gateway.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fmcp-integration.md"><i class="fa-solid fa-file" style="color:#888;"></i> mcp-integration.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fmongodb-integration.md"><i class="fa-solid fa-file" style="color:#888;"></i> mongodb-integration.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Frag-integration.md"><i class="fa-solid fa-file" style="color:#888;"></i> rag-integration.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Frest-gateway.md"><i class="fa-solid fa-file" style="color:#888;"></i> rest-gateway.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fslack-integration.md"><i class="fa-solid fa-file" style="color:#888;"></i> slack-integration.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fsql-database.md"><i class="fa-solid fa-file" style="color:#888;"></i> sql-database.md</a></li><li><a class="nav-link py-0" style="padding-left:96px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials%2Fteams-integration.md"><i class="fa-solid fa-file" style="color:#888;"></i> teams-integration.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2F_category_.json"><i class="fa-solid fa-file" style="color:#888;"></i> _category_.json</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fcreate-agents.md"><i class="fa-solid fa-file" style="color:#888;"></i> create-agents.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fcreate-gateways.md"><i class="fa-solid fa-file" style="color:#888;"></i> create-gateways.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fcreating-python-tools.md"><i class="fa-solid fa-file" style="color:#888;"></i> creating-python-tools.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fcreating-service-providers.md"><i class="fa-solid fa-file" style="color:#888;"></i> creating-service-providers.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fcreating-workflows.md"><i class="fa-solid fa-file" style="color:#888;"></i> creating-workflows.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fdeveloping.md"><i class="fa-solid fa-file" style="color:#888;"></i> developing.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fevaluations.md"><i class="fa-solid fa-file" style="color:#888;"></i> evaluations.md</a></li><li><a class="nav-link py-0" style="padding-left:80px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Fstructure.md"><i class="fa-solid fa-file" style="color:#888;"></i> structure.md</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fenterprise"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> enterprise</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fgetting-started"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> getting-started</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Finstalling-and-configuring"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> installing-and-configuring</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fmigrations"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> migrations</a></li><li><a class="nav-link py-0" style="padding-left:64px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocs%2Fdocumentation%2Fvibe_coding.md"><i class="fa-solid fa-file" style="color:#888;"></i> vibe_coding.md</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fpartials"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> partials</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fsrc"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> src</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fstatic"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> static</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2F.gitignore"><i class="fa-solid fa-file" style="color:#888;"></i> .gitignore</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2F.npmrc"><i class="fa-solid fa-file" style="color:#888;"></i> .npmrc</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2FREADME.md"><i class="fa-solid fa-file" style="color:#888;"></i> README.md</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fdocusaurus.config.ts"><i class="fa-solid fa-file" style="color:#888;"></i> docusaurus.config.ts</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fpackage-lock.json"><i class="fa-solid fa-file" style="color:#888;"></i> package-lock.json</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fpackage.json"><i class="fa-solid fa-file" style="color:#888;"></i> package.json</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Fsidebars.ts"><i class="fa-solid fa-file" style="color:#888;"></i> sidebars.ts</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=docs%2Ftsconfig.json"><i class="fa-solid fa-file" style="color:#888;"></i> tsconfig.json</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=evaluation"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> evaluation</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=examples"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> examples</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=preset"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> preset</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=scripts"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> scripts</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=src"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> src</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=templates"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> templates</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=tests"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> tests</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=.dockerignore"><i class="fa-solid fa-file" style="color:#888;"></i> .dockerignore</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=.fossa.yml"><i class="fa-solid fa-file" style="color:#888;"></i> .fossa.yml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=.gitignore"><i class="fa-solid fa-file" style="color:#888;"></i> .gitignore</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=.release-please-manifest.json"><i class="fa-solid fa-file" style="color:#888;"></i> .release-please-manifest.json</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=.versionrc.json"><i class="fa-solid fa-file" style="color:#888;"></i> .versionrc.json</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=CHANGELOG.md"><i class="fa-solid fa-file" style="color:#888;"></i> CHANGELOG.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=CODE_OF_CONDUCT.md"><i class="fa-solid fa-file" style="color:#888;"></i> CODE_OF_CONDUCT.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=CONTRIBUTING.md"><i class="fa-solid fa-file" style="color:#888;"></i> CONTRIBUTING.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=Dockerfile"><i class="fa-solid fa-file" style="color:#888;"></i> Dockerfile</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=LICENSE"><i class="fa-solid fa-file" style="color:#888;"></i> LICENSE</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=Makefile"><i class="fa-solid fa-file" style="color:#888;"></i> Makefile</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=README.md"><i class="fa-solid fa-file" style="color:#888;"></i> README.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=RELEASE_PROCESS.md"><i class="fa-solid fa-file" style="color:#888;"></i> RELEASE_PROCESS.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=context7.json"><i class="fa-solid fa-file" style="color:#888;"></i> context7.json</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=pyproject.toml"><i class="fa-solid fa-file" style="color:#888;"></i> pyproject.toml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=release-please-config.json"><i class="fa-solid fa-file" style="color:#888;"></i> release-please-config.json</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=sonar-project.properties"><i class="fa-solid fa-file" style="color:#888;"></i> sonar-project.properties</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=uv.lock"><i class="fa-solid fa-file" style="color:#888;"></i> uv.lock</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&file=wss-unified-agent.config"><i class="fa-solid fa-file" style="color:#888;"></i> wss-unified-agent.config</a></li>
    
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        
<div class="mb-2" style="font-size:1.1rem;"><a href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=.">/</a> <a href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs">docs</a> / <a href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs">docs</a> / <a href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation">documentation</a> / <a href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fdeveloping">developing</a> / <a href="/cgi-bin/repo?id=zRxKoYRDpYZptZmoWgddjvWDv4Hf&source=docs%2Fdocs%2Fdocumentation%2Fdeveloping%2Ftutorials">tutorials</a> / bedrock-agents.md</div>
        <div class="list-group">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-file"></i> bedrock-agents.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"><span style="color:#666; user-select:none;">  1</span>  ---
<span style="color:#666; user-select:none;">  2</span>  title: Amazon Bedrock Agents
<span style="color:#666; user-select:none;">  3</span>  sidebar_position: 30
<span style="color:#666; user-select:none;">  4</span>  toc_max_heading_level: 4
<span style="color:#666; user-select:none;">  5</span>  ---
<span style="color:#666; user-select:none;">  6</span>  
<span style="color:#666; user-select:none;">  7</span>  # Amazon Bedrock Agents Integration
<span style="color:#666; user-select:none;">  8</span>  
<span style="color:#666; user-select:none;">  9</span>  This tutorial walks you through the process of integrating Amazon Bedrock Agents and Flows into Agent Mesh. This integration allows you to create agents that can interact with one or multiple Bedrock Agents or Flows, extending your Agent Mesh project with powerful AI capabilities from AWS.
<span style="color:#666; user-select:none;"> 10</span>  
<span style="color:#666; user-select:none;"> 11</span>  ## What are Amazon Bedrock Agents and Flows?
<span style="color:#666; user-select:none;"> 12</span>  
<span style="color:#666; user-select:none;"> 13</span>  Amazon Bedrock Agents are AI assistants that can be customized to perform specific tasks using foundation models (FMs). They can connect to enterprise systems and data sources, allowing them to take actions on behalf of users.
<span style="color:#666; user-select:none;"> 14</span>  
<span style="color:#666; user-select:none;"> 15</span>  Amazon Bedrock Flows are visual workflows that orchestrate multiple foundation models to solve complex problems. They allow you to chain together different AI capabilities without writing code.
<span style="color:#666; user-select:none;"> 16</span>  
<span style="color:#666; user-select:none;"> 17</span>  By integrating these services with Agent Mesh, you can:
<span style="color:#666; user-select:none;"> 18</span>  - Use the extensible Agent Mesh framework to combine Bedrock agents and flows with other agents.
<span style="color:#666; user-select:none;"> 19</span>  - Create conversational interfaces that leverage Bedrock agents and flows.
<span style="color:#666; user-select:none;"> 20</span>  - Connect your Agent Mesh agents to enterprise data sources through Bedrock.
<span style="color:#666; user-select:none;"> 21</span>  - Maintain a consistent experience across different agent providers by centralizing them in Agent Mesh.
<span style="color:#666; user-select:none;"> 22</span>  
<span style="color:#666; user-select:none;"> 23</span>  :::info[Learn about Bedrock Agents and Flows]
<span style="color:#666; user-select:none;"> 24</span>  Check the official documentation for [Amazon Bedrock Agents](https://aws.amazon.com/bedrock/agents/) and [Amazon Bedrock Flows](https://aws.amazon.com/bedrock/flows/) to learn more about these features.
<span style="color:#666; user-select:none;"> 25</span>  :::
<span style="color:#666; user-select:none;"> 26</span>  
<span style="color:#666; user-select:none;"> 27</span>  
<span style="color:#666; user-select:none;"> 28</span>  ## Setting Up the Environment
<span style="color:#666; user-select:none;"> 29</span>  
<span style="color:#666; user-select:none;"> 30</span>  ### Create Bedrock Agents and Flows
<span style="color:#666; user-select:none;"> 31</span>  
<span style="color:#666; user-select:none;"> 32</span>  Follow these steps to create your Bedrock resources:
<span style="color:#666; user-select:none;"> 33</span>  
<span style="color:#666; user-select:none;"> 34</span>  1. **Log in to your AWS console**
<span style="color:#666; user-select:none;"> 35</span>     - Navigate to the Amazon Bedrock service
<span style="color:#666; user-select:none;"> 36</span>  
<span style="color:#666; user-select:none;"> 37</span>  2. **Create Bedrock Agents**
<span style="color:#666; user-select:none;"> 38</span>     - Go to the **Agents** tab in the Bedrock console
<span style="color:#666; user-select:none;"> 39</span>     - Click &quot;Create agent&quot;
<span style="color:#666; user-select:none;"> 40</span>     - Follow the wizard to configure your agent:
<span style="color:#666; user-select:none;"> 41</span>       - Select a foundation model
<span style="color:#666; user-select:none;"> 42</span>       - Define the agent&#x27;s instructions
<span style="color:#666; user-select:none;"> 43</span>       - Configure knowledge bases (optional)
<span style="color:#666; user-select:none;"> 44</span>       - Set up action groups (if needed)
<span style="color:#666; user-select:none;"> 45</span>     - Once created, **create an alias** for your agent by selecting it and clicking &quot;Create alias&quot;
<span style="color:#666; user-select:none;"> 46</span>     - **Copy the Agent ID and Alias ID** from the agent details page - you&#x27;ll need these for the Agent Mesh configuration
<span style="color:#666; user-select:none;"> 47</span>  
<span style="color:#666; user-select:none;"> 48</span>  3. **Create Bedrock Flows**
<span style="color:#666; user-select:none;"> 49</span>     - Go to the **Flows** tab in the Bedrock console
<span style="color:#666; user-select:none;"> 50</span>     - Click &quot;Create flow&quot;
<span style="color:#666; user-select:none;"> 51</span>     - Use the visual editor to design your flow
<span style="color:#666; user-select:none;"> 52</span>     - Connect nodes to create your workflow
<span style="color:#666; user-select:none;"> 53</span>     - Test and publish your flow
<span style="color:#666; user-select:none;"> 54</span>     - **Create an alias** for your flow
<span style="color:#666; user-select:none;"> 55</span>     - **Copy the Flow ID and Alias ID** - you&#x27;ll need these for the Agent Mesh configuration
<span style="color:#666; user-select:none;"> 56</span>  
<span style="color:#666; user-select:none;"> 57</span>  4. **Set up IAM permissions**
<span style="color:#666; user-select:none;"> 58</span>     - Ensure your IAM user or role has the following permissions:
<span style="color:#666; user-select:none;"> 59</span>       - `bedrock:InvokeAgent`
<span style="color:#666; user-select:none;"> 60</span>       - `bedrock:InvokeFlow`
<span style="color:#666; user-select:none;"> 61</span>       - Any other permissions required by your specific Bedrock configuration
<span style="color:#666; user-select:none;"> 62</span>  
<span style="color:#666; user-select:none;"> 63</span>  ### Create an Agent Mesh Project
<span style="color:#666; user-select:none;"> 64</span>  
<span style="color:#666; user-select:none;"> 65</span>  You must [install Agent Mesh and Solace Mesh Agent CLI](../../installing-and-configuring/installation.md), and then you&#x27;ll want to [create a new Agent Mesh project](../../installing-and-configuring/run-project.md).
<span style="color:#666; user-select:none;"> 66</span>  
<span style="color:#666; user-select:none;"> 67</span>  
<span style="color:#666; user-select:none;"> 68</span>  ## Integrating Bedrock with Agent Mesh
<span style="color:#666; user-select:none;"> 69</span>  
<span style="color:#666; user-select:none;"> 70</span>  ### Adding the Bedrock Agent Plugin
<span style="color:#666; user-select:none;"> 71</span>  
<span style="color:#666; user-select:none;"> 72</span>  The `sam-bedrock-agent` plugin from the [solace-agent-mesh-core-plugins](https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/tree/main/sam-bedrock-agent) repository creates a bridge between Agent Mesh and Amazon Bedrock services. This plugin allows your Agent Mesh agents to invoke Bedrock Agents and Flows as tools.
<span style="color:#666; user-select:none;"> 73</span>  
<span style="color:#666; user-select:none;"> 74</span>  1. **Add the plugin to your Agent Mesh project**:
<span style="color:#666; user-select:none;"> 75</span>  
<span style="color:#666; user-select:none;"> 76</span>  ```sh
<span style="color:#666; user-select:none;"> 77</span>  sam plugin add aws-agent --plugin sam-bedrock-agent
<span style="color:#666; user-select:none;"> 78</span>  ```
<span style="color:#666; user-select:none;"> 79</span>  
<span style="color:#666; user-select:none;"> 80</span>  Replace `aws-agent` with a descriptive name for your agent, such as `bedrock-summarizer` or `bedrock-customer-service`.
<span style="color:#666; user-select:none;"> 81</span>  
<span style="color:#666; user-select:none;"> 82</span>  This command:
<span style="color:#666; user-select:none;"> 83</span>  - Installs the `sam-bedrock-agent` plugin
<span style="color:#666; user-select:none;"> 84</span>  - Creates a new agent configuration file in `configs/agents/aws-agent.yaml`
<span style="color:#666; user-select:none;"> 85</span>  
<span style="color:#666; user-select:none;"> 86</span>  
<span style="color:#666; user-select:none;"> 87</span>  2. **Locate the configuration file**:
<span style="color:#666; user-select:none;"> 88</span>  
<span style="color:#666; user-select:none;"> 89</span>  The command creates an `aws-agent.yaml` file in the `configs/agents/` directory of your Agent Mesh project.
<span style="color:#666; user-select:none;"> 90</span>  
<span style="color:#666; user-select:none;"> 91</span>  :::tip[Naming Convention]
<span style="color:#666; user-select:none;"> 92</span>  Choose a descriptive name that reflects the purpose of your Bedrock integration. This name is used to reference the agent in your Agent Mesh project.
<span style="color:#666; user-select:none;"> 93</span>  :::
<span style="color:#666; user-select:none;"> 94</span>  
<span style="color:#666; user-select:none;"> 95</span>  ## Configuring the Bedrock Agent
<span style="color:#666; user-select:none;"> 96</span>  
<span style="color:#666; user-select:none;"> 97</span>  The configuration file you created needs to be edited to connect to your specific Amazon Bedrock resources. This section explains each part of the configuration and how to customize it.
<span style="color:#666; user-select:none;"> 98</span>  
<span style="color:#666; user-select:none;"> 99</span>  ### Understanding the Configuration Structure
<span style="color:#666; user-select:none;">100</span>  
<span style="color:#666; user-select:none;">101</span>  Open the `aws-agent.yaml` file in your editor. The core of the agent&#x27;s configuration consists of:
<span style="color:#666; user-select:none;">102</span>  
<span style="color:#666; user-select:none;">103</span>  1. **amazon_bedrock_runtime_config**: AWS connection settings
<span style="color:#666; user-select:none;">104</span>  2. **tools**: List of Bedrock agents and flows to expose as tools
<span style="color:#666; user-select:none;">105</span>  3. **agent_card**: Agent capabilities and skills definition
<span style="color:#666; user-select:none;">106</span>  
<span style="color:#666; user-select:none;">107</span>  ### Example Configuration
<span style="color:#666; user-select:none;">108</span>  
<span style="color:#666; user-select:none;">109</span>  Here&#x27;s an annotated example based on the actual plugin structure:
<span style="color:#666; user-select:none;">110</span>  
<span style="color:#666; user-select:none;">111</span>  ```yaml
<span style="color:#666; user-select:none;">112</span>  log:
<span style="color:#666; user-select:none;">113</span>    stdout_log_level: INFO
<span style="color:#666; user-select:none;">114</span>    log_file_level: DEBUG
<span style="color:#666; user-select:none;">115</span>    log_file: aws-agent.log
<span style="color:#666; user-select:none;">116</span>  
<span style="color:#666; user-select:none;">117</span>  !include ../shared_config.yaml
<span style="color:#666; user-select:none;">118</span>  
<span style="color:#666; user-select:none;">119</span>  apps:
<span style="color:#666; user-select:none;">120</span>    - name: aws-agent-app
<span style="color:#666; user-select:none;">121</span>      app_base_path: . 
<span style="color:#666; user-select:none;">122</span>      app_module: solace_agent_mesh.agent.sac.app 
<span style="color:#666; user-select:none;">123</span>      broker:
<span style="color:#666; user-select:none;">124</span>        &lt;&lt;: *broker_connection
<span style="color:#666; user-select:none;">125</span>  
<span style="color:#666; user-select:none;">126</span>      app_config:
<span style="color:#666; user-select:none;">127</span>        namespace: ${NAMESPACE} 
<span style="color:#666; user-select:none;">128</span>        supports_streaming: true 
<span style="color:#666; user-select:none;">129</span>        agent_name: &quot;AwsAgent&quot; 
<span style="color:#666; user-select:none;">130</span>        display_name: &quot;AwsAgent Component&quot; 
<span style="color:#666; user-select:none;">131</span>        model: *general_model
<span style="color:#666; user-select:none;">132</span>        model_provider: 
<span style="color:#666; user-select:none;">133</span>          - &quot;general&quot; 
<span style="color:#666; user-select:none;">134</span>  
<span style="color:#666; user-select:none;">135</span>        instruction: |
<span style="color:#666; user-select:none;">136</span>          You&#x27;re AwsAgent responsible for handling user queries by 
<span style="color:#666; user-select:none;">137</span>          interacting with Amazon Bedrock agents or flows.
<span style="color:#666; user-select:none;">138</span>  
<span style="color:#666; user-select:none;">139</span>        # AWS Connection Configuration
<span style="color:#666; user-select:none;">140</span>        amazon_bedrock_runtime_config: &amp;amazon_bedrock_runtime_config
<span style="color:#666; user-select:none;">141</span>          endpoint_url: # Optional: Custom AWS endpoint URL
<span style="color:#666; user-select:none;">142</span>          boto3_config:
<span style="color:#666; user-select:none;">143</span>            region_name: &quot;us-east-1&quot; # AWS region where your Bedrock resources are located
<span style="color:#666; user-select:none;">144</span>            aws_access_key_id: # Your AWS access key (or use profiles/env vars)
<span style="color:#666; user-select:none;">145</span>            aws_secret_access_key: # Your AWS secret key
<span style="color:#666; user-select:none;">146</span>  
<span style="color:#666; user-select:none;">147</span>        tools:
<span style="color:#666; user-select:none;">148</span>          # Bedrock Agent Tool
<span style="color:#666; user-select:none;">149</span>          - tool_type: python
<span style="color:#666; user-select:none;">150</span>            component_module: sam_bedrock_agent.bedrock_agent
<span style="color:#666; user-select:none;">151</span>            component_base_path: . 
<span style="color:#666; user-select:none;">152</span>            function_name: invoke_bedrock_agent
<span style="color:#666; user-select:none;">153</span>            tool_name: &quot;text_transformer&quot; # Customizable, Name exposed to the LLM
<span style="color:#666; user-select:none;">154</span>            tool_description: &quot;Transforms text using the Text Transformer agent which summarizes the given text and extracts key points.&quot; # Customizable, Optional description
<span style="color:#666; user-select:none;">155</span>            tool_config:
<span style="color:#666; user-select:none;">156</span>              amazon_bedrock_runtime_config: *amazon_bedrock_runtime_config
<span style="color:#666; user-select:none;">157</span>              bedrock_agent_id: &quot;XXXXXXXXXX&quot; # Your actual Bedrock agent ID
<span style="color:#666; user-select:none;">158</span>              bedrock_agent_alias_id: &quot;XXXXXXXXXX&quot; # Your actual Bedrock agent alias ID
<span style="color:#666; user-select:none;">159</span>              allow_files: true # Whether to allow file uploads (5 files, 10MB total max)
<span style="color:#666; user-select:none;">160</span>  
<span style="color:#666; user-select:none;">161</span>          # Bedrock Flow Tool
<span style="color:#666; user-select:none;">162</span>          - tool_type: python
<span style="color:#666; user-select:none;">163</span>            component_module: sam_bedrock_agent.bedrock_flow
<span style="color:#666; user-select:none;">164</span>            component_base_path: .
<span style="color:#666; user-select:none;">165</span>            function_name: invoke_bedrock_flow
<span style="color:#666; user-select:none;">166</span>            tool_name: &quot;poem_writer&quot; # Name exposed to the LLM
<span style="color:#666; user-select:none;">167</span>            tool_config: 
<span style="color:#666; user-select:none;">168</span>              amazon_bedrock_runtime_config: *amazon_bedrock_runtime_config
<span style="color:#666; user-select:none;">169</span>              bedrock_flow_id: &quot;XXXXXXXXXX&quot; # Your actual Bedrock flow ID
<span style="color:#666; user-select:none;">170</span>              bedrock_flow_alias_id: &quot;XXXXXXXXXX&quot; # Your actual Bedrock flow alias ID
<span style="color:#666; user-select:none;">171</span>  
<span style="color:#666; user-select:none;">172</span>        # Agent capabilities
<span style="color:#666; user-select:none;">173</span>        agent_card:
<span style="color:#666; user-select:none;">174</span>          description: &quot;Agent that integrates with Amazon Bedrock agents and flows for various AI tasks.&quot;
<span style="color:#666; user-select:none;">175</span>          defaultInputModes: [&quot;text&quot;]
<span style="color:#666; user-select:none;">176</span>          defaultOutputModes: [&quot;text&quot;]
<span style="color:#666; user-select:none;">177</span>          skills: 
<span style="color:#666; user-select:none;">178</span>            - id: &quot;text_transformer&quot;
<span style="color:#666; user-select:none;">179</span>              name: &quot;Text Transformer&quot;
<span style="color:#666; user-select:none;">180</span>              description: &quot;Transforms text using the Text Transformer agent.&quot;
<span style="color:#666; user-select:none;">181</span>            - id: &quot;poem_writer&quot;
<span style="color:#666; user-select:none;">182</span>              name: &quot;Poem Writer&quot;
<span style="color:#666; user-select:none;">183</span>              description: &quot;Generates poems based on user input.&quot;
<span style="color:#666; user-select:none;">184</span>  
<span style="color:#666; user-select:none;">185</span>        # A2A Protocol settings
<span style="color:#666; user-select:none;">186</span>        agent_card_publishing: { interval_seconds: 10 }
<span style="color:#666; user-select:none;">187</span>        agent_discovery: { enabled: true }
<span style="color:#666; user-select:none;">188</span>        inter_agent_communication:
<span style="color:#666; user-select:none;">189</span>          allow_list: [&quot;*&quot;]
<span style="color:#666; user-select:none;">190</span>          request_timeout_seconds: 30
<span style="color:#666; user-select:none;">191</span>  ```
<span style="color:#666; user-select:none;">192</span>  
<span style="color:#666; user-select:none;">193</span>  ### Customizing Your Configuration
<span style="color:#666; user-select:none;">194</span>  
<span style="color:#666; user-select:none;">195</span>  Follow these steps to customize your configuration:
<span style="color:#666; user-select:none;">196</span>  
<span style="color:#666; user-select:none;">197</span>  1. **Configure AWS Connection**:
<span style="color:#666; user-select:none;">198</span>     - Set the `region_name` to the AWS region where your Bedrock resources are located
<span style="color:#666; user-select:none;">199</span>     - Choose one of these authentication methods:
<span style="color:#666; user-select:none;">200</span>       - Set `aws_access_key_id` and `aws_secret_access_key` directly in the config.
<span style="color:#666; user-select:none;">201</span>       - Use AWS profiles by removing these fields and configuring your AWS CLI profile.
<span style="color:#666; user-select:none;">202</span>       - Use environment variables (see Environment Variables section below).
<span style="color:#666; user-select:none;">203</span>  
<span style="color:#666; user-select:none;">204</span>  Check the [boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html) for more details.
<span style="color:#666; user-select:none;">205</span>  
<span style="color:#666; user-select:none;">206</span>  2. **Configure Bedrock Agent Tools**:
<span style="color:#666; user-select:none;">207</span>     - For each Bedrock agent you want to expose, add a tool entry:
<span style="color:#666; user-select:none;">208</span>       - Set a descriptive `tool_name` (for example, `text_summarizer`, `content_generator`).
<span style="color:#666; user-select:none;">209</span>       - Provide a clear `tool_description` of what the agent does.
<span style="color:#666; user-select:none;">210</span>       - Replace `bedrock_agent_id` with your actual Bedrock agent ID.
<span style="color:#666; user-select:none;">211</span>       - Replace `bedrock_agent_alias_id` with your actual Bedrock agent alias ID.
<span style="color:#666; user-select:none;">212</span>       - Set `allow_files` to `true` if your agent can process file uploads.
<span style="color:#666; user-select:none;">213</span>  
<span style="color:#666; user-select:none;">214</span>  3. **Configure Bedrock Flow Tools**:
<span style="color:#666; user-select:none;">215</span>     - For each Bedrock flow you want to expose, add a tool entry:
<span style="color:#666; user-select:none;">216</span>       - Set a descriptive `tool_name` for the flow.
<span style="color:#666; user-select:none;">217</span>       - Provide a clear `tool_description` of what the flow does (optional).
<span style="color:#666; user-select:none;">218</span>       - Replace `bedrock_flow_id` with your actual Bedrock flow ID.
<span style="color:#666; user-select:none;">219</span>       - Replace `bedrock_flow_alias_id` with your actual Bedrock flow alias ID.
<span style="color:#666; user-select:none;">220</span>  
<span style="color:#666; user-select:none;">221</span>  4. **Update Agent Card Skills**:
<span style="color:#666; user-select:none;">222</span>     - Update the `agent_card.description` to reflect the purpose of your Bedrock agent (This is what other agents see).
<span style="color:#666; user-select:none;">223</span>     - For each tool you add, create a corresponding skill entry in the `agent_card.skills` section.
<span style="color:#666; user-select:none;">224</span>     - Use the same `id` as the `tool_name`.
<span style="color:#666; user-select:none;">225</span>     - Provide a user-friendly `name` and `description`.
<span style="color:#666; user-select:none;">226</span>  
<span style="color:#666; user-select:none;">227</span>  5. **Update Agent Instructions**:
<span style="color:#666; user-select:none;">228</span>     - Modify the `instruction` field to provide clear guidance on how the agent should respond to user queries.
<span style="color:#666; user-select:none;">229</span>     - This instruction is used by the Agent&#x27;s LLM to understand its role and capabilities.
<span style="color:#666; user-select:none;">230</span>  
<span style="color:#666; user-select:none;">231</span>  :::info
<span style="color:#666; user-select:none;">232</span>  You must provide at least one Bedrock agent or flow tool. You can mix and match agents and flows in the same configuration.
<span style="color:#666; user-select:none;">233</span>  :::
<span style="color:#666; user-select:none;">234</span>  
<span style="color:#666; user-select:none;">235</span>  ### Environment Variables
<span style="color:#666; user-select:none;">236</span>  
<span style="color:#666; user-select:none;">237</span>  The Bedrock agent integration requires standard Solace connection variables and can use AWS environment variables for authentication.
<span style="color:#666; user-select:none;">238</span>  
<span style="color:#666; user-select:none;">239</span>  #### Required Solace Variables:
<span style="color:#666; user-select:none;">240</span>  - **SOLACE_BROKER_URL**: URL of your Solace broker
<span style="color:#666; user-select:none;">241</span>  - **SOLACE_BROKER_USERNAME**: Username for Solace broker authentication
<span style="color:#666; user-select:none;">242</span>  - **SOLACE_BROKER_PASSWORD**: Password for Solace broker authentication
<span style="color:#666; user-select:none;">243</span>  - **SOLACE_BROKER_VPN**: Solace message VPN name
<span style="color:#666; user-select:none;">244</span>  - **SOLACE_AGENT_MESH_NAMESPACE**: Namespace for your Agent Mesh project
<span style="color:#666; user-select:none;">245</span>  
<span style="color:#666; user-select:none;">246</span>  #### Optional AWS Variables:
<span style="color:#666; user-select:none;">247</span>  If you prefer to use environment variables for AWS authentication instead of configuration in the YAML file:
<span style="color:#666; user-select:none;">248</span>  - **AWS_ACCESS_KEY_ID**: Your AWS access key
<span style="color:#666; user-select:none;">249</span>  - **AWS_SECRET_ACCESS_KEY**: Your AWS secret key
<span style="color:#666; user-select:none;">250</span>  - **AWS_SESSION_TOKEN**: If using temporary credentials
<span style="color:#666; user-select:none;">251</span>  - **AWS_REGION** or **AWS_DEFAULT_REGION**: AWS region for Bedrock services
<span style="color:#666; user-select:none;">252</span>  
<span style="color:#666; user-select:none;">253</span>  :::tip[AWS Credentials Precedence]
<span style="color:#666; user-select:none;">254</span>  AWS credentials are loaded in this order:
<span style="color:#666; user-select:none;">255</span>  1. Explicit credentials in the YAML configuration
<span style="color:#666; user-select:none;">256</span>  2. Environment variables
<span style="color:#666; user-select:none;">257</span>  3. AWS configuration files (~/.aws/credentials)
<span style="color:#666; user-select:none;">258</span>  4. EC2/ECS instance profiles (if running on AWS)
<span style="color:#666; user-select:none;">259</span>  :::
<span style="color:#666; user-select:none;">260</span>  
<span style="color:#666; user-select:none;">261</span>  ## Running and Testing Your Integration
<span style="color:#666; user-select:none;">262</span>  
<span style="color:#666; user-select:none;">263</span>  ### Starting Your Agent Mesh Project
<span style="color:#666; user-select:none;">264</span>  
<span style="color:#666; user-select:none;">265</span>  After configuring your Bedrock agent integration, run your Agent Mesh project:
<span style="color:#666; user-select:none;">266</span>  
<span style="color:#666; user-select:none;">267</span>  ```sh
<span style="color:#666; user-select:none;">268</span>  sam run configs/agents/aws-agent.yaml
<span style="color:#666; user-select:none;">269</span>  ```
<span style="color:#666; user-select:none;">270</span>  
<span style="color:#666; user-select:none;">271</span>  This command starts the Bedrock agent with your specific configuration.
<span style="color:#666; user-select:none;">272</span>  
<span style="color:#666; user-select:none;">273</span>  ### Testing the Integration
<span style="color:#666; user-select:none;">274</span>  
<span style="color:#666; user-select:none;">275</span>  You can test your Bedrock agent integration through any gateway in your Agent Mesh project:
<span style="color:#666; user-select:none;">276</span>  
<span style="color:#666; user-select:none;">277</span>  #### Using the Web UI Gateway
<span style="color:#666; user-select:none;">278</span>  
<span style="color:#666; user-select:none;">279</span>  1. Ensure you have a Web UI gateway running (typically at http://localhost:8000)
<span style="color:#666; user-select:none;">280</span>  2. Start a conversation with your agent
<span style="color:#666; user-select:none;">281</span>  3. Ask a question that would trigger your Bedrock agent or flow
<span style="color:#666; user-select:none;">282</span>  
<span style="color:#666; user-select:none;">283</span>  **Example**: If you configured a Bedrock agent for text transformation:
<span style="color:#666; user-select:none;">284</span>  ```
<span style="color:#666; user-select:none;">285</span>  Transform this text: &quot;The quick brown fox jumps over the lazy dog. The lazy dog did not chase the fox. The fox was brown and quick, while the dog was lazy and slow. Despite their differences, they both enjoyed the sunny day in the meadow.&quot;
<span style="color:#666; user-select:none;">286</span>  ```
<span style="color:#666; user-select:none;">287</span>  
<span style="color:#666; user-select:none;">288</span>  **Example**: If you configured a Bedrock flow for poem writing:
<span style="color:#666; user-select:none;">289</span>  ```
<span style="color:#666; user-select:none;">290</span>  Write a poem about a sunset over the ocean.
<span style="color:#666; user-select:none;">291</span>  ```
<span style="color:#666; user-select:none;">292</span>  
<span style="color:#666; user-select:none;">293</span>  #### Testing with File Uploads
<span style="color:#666; user-select:none;">294</span>  
<span style="color:#666; user-select:none;">295</span>  If you have enabled file uploads for your Bedrock agent (`allow_files: true`), you can test file processing:
<span style="color:#666; user-select:none;">296</span>  
<span style="color:#666; user-select:none;">297</span>  1. In the Web UI, use the file upload button to attach a supported file
<span style="color:#666; user-select:none;">298</span>  2. Include a prompt that references the file, such as &quot;Analyze this document&quot; or &quot;Summarize the content of this file&quot;
<span style="color:#666; user-select:none;">299</span>  3. The file is sent to the Bedrock agent along with your prompt
<span style="color:#666; user-select:none;">300</span>  
<span style="color:#666; user-select:none;">301</span>  **Example with file upload**:
<span style="color:#666; user-select:none;">302</span>  ```
<span style="color:#666; user-select:none;">303</span>  Please analyze the attached document and provide key insights.
<span style="color:#666; user-select:none;">304</span>  ```
<span style="color:#666; user-select:none;">305</span>  
<span style="color:#666; user-select:none;">306</span>  :::info[Supported File Types]
<span style="color:#666; user-select:none;">307</span>  Bedrock agents support these file types for uploads:
<span style="color:#666; user-select:none;">308</span>  - PDF documents (.pdf)
<span style="color:#666; user-select:none;">309</span>  - Text files (.txt)
<span style="color:#666; user-select:none;">310</span>  - Word documents (.doc, .docx)
<span style="color:#666; user-select:none;">311</span>  - CSV files (.csv)
<span style="color:#666; user-select:none;">312</span>  - Excel spreadsheets (.xls, .xlsx)
<span style="color:#666; user-select:none;">313</span>  
<span style="color:#666; user-select:none;">314</span>  There&#x27;s a limit of 5 files with a total size of 10MB per request.
<span style="color:#666; user-select:none;">315</span>  :::
<span style="color:#666; user-select:none;">316</span>  
<span style="color:#666; user-select:none;">317</span>  ## Troubleshooting
<span style="color:#666; user-select:none;">318</span>  
<span style="color:#666; user-select:none;">319</span>  ### Common Issues and Solutions
<span style="color:#666; user-select:none;">320</span>  
<span style="color:#666; user-select:none;">321</span>  #### Authentication Errors
<span style="color:#666; user-select:none;">322</span>  
<span style="color:#666; user-select:none;">323</span>  **Issue**: &quot;Unable to locate credentials&quot; or &quot;Access denied&quot; errors
<span style="color:#666; user-select:none;">324</span>  **Solution**:
<span style="color:#666; user-select:none;">325</span>  - Verify your AWS credentials are correctly configured
<span style="color:#666; user-select:none;">326</span>  - Check that your IAM user/role has the necessary permissions
<span style="color:#666; user-select:none;">327</span>  - Try using AWS CLI to test your credentials: `aws bedrock list-foundation-models`
<span style="color:#666; user-select:none;">328</span>  
<span style="color:#666; user-select:none;">329</span>  #### Configuration Errors
<span style="color:#666; user-select:none;">330</span>  
<span style="color:#666; user-select:none;">331</span>  **Issue**: &quot;Invalid agent ID&quot; or &quot;Invalid flow ID&quot; errors
<span style="color:#666; user-select:none;">332</span>  **Solution**:
<span style="color:#666; user-select:none;">333</span>  - Double-check your Bedrock agent and flow IDs in the configuration
<span style="color:#666; user-select:none;">334</span>  - Ensure you&#x27;ve created aliases for your agents and flows
<span style="color:#666; user-select:none;">335</span>  - Verify the region in your configuration matches where your Bedrock resources are located
<span style="color:#666; user-select:none;">336</span>  
<span style="color:#666; user-select:none;">337</span>  #### Connection Issues
<span style="color:#666; user-select:none;">338</span>  
<span style="color:#666; user-select:none;">339</span>  **Issue**: Agent Mesh can&#x27;t connect to Bedrock services
<span style="color:#666; user-select:none;">340</span>  **Solution**:
<span style="color:#666; user-select:none;">341</span>  - Check your network connectivity
<span style="color:#666; user-select:none;">342</span>  - Verify that Bedrock services are available in your configured region
<span style="color:#666; user-select:none;">343</span>  - Check for any VPC or firewall restrictions
<span style="color:#666; user-select:none;">344</span>  
<span style="color:#666; user-select:none;">345</span>  #### File Upload Issues
<span style="color:#666; user-select:none;">346</span>  
<span style="color:#666; user-select:none;">347</span>  **Issue**: Files aren&#x27;t being processed by the Bedrock agent
<span style="color:#666; user-select:none;">348</span>  **Solution**:
<span style="color:#666; user-select:none;">349</span>  - Verify `allow_files` is set to `true` in your configuration
<span style="color:#666; user-select:none;">350</span>  - Check that your file type is supported
<span style="color:#666; user-select:none;">351</span>  - Ensure the file size is under the 10MB limit
<span style="color:#666; user-select:none;">352</span>  - Check the model context length
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

