solace-agent-mesh 1.3.2__py3-none-any.whl → 1.3.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of solace-agent-mesh might be problematic. Click here for more details.

Files changed (114) hide show
  1. solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +16 -8
  2. solace_agent_mesh/assets/docs/404.html +3 -3
  3. solace_agent_mesh/assets/docs/assets/js/0e682baa.da822665.js +1 -0
  4. solace_agent_mesh/assets/docs/assets/js/1023fc19.8a8a9309.js +1 -0
  5. solace_agent_mesh/assets/docs/assets/js/1523c6b4.2645ef68.js +1 -0
  6. solace_agent_mesh/assets/docs/assets/js/1c6e87d2.43771adc.js +1 -0
  7. solace_agent_mesh/assets/docs/assets/js/2a9cab12.2afaee76.js +1 -0
  8. solace_agent_mesh/assets/docs/assets/js/332e10b5.f7629851.js +1 -0
  9. solace_agent_mesh/assets/docs/assets/js/3d406171.5560fdf9.js +1 -0
  10. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.3f34bf76.js +1 -0
  11. solace_agent_mesh/assets/docs/assets/js/442a8107.b5c2532a.js +1 -0
  12. solace_agent_mesh/assets/docs/assets/js/483cef9a.8d318c2f.js +1 -0
  13. solace_agent_mesh/assets/docs/assets/js/55f47984.bcd00a86.js +1 -0
  14. solace_agent_mesh/assets/docs/assets/js/5b4258a4.dff11eca.js +1 -0
  15. solace_agent_mesh/assets/docs/assets/js/664b740a.ba305a89.js +1 -0
  16. solace_agent_mesh/assets/docs/assets/js/75384d09.abdf9cf9.js +1 -0
  17. solace_agent_mesh/assets/docs/assets/js/768e31b0.9abcdc48.js +1 -0
  18. solace_agent_mesh/assets/docs/assets/js/945fb41e.abf2be91.js +1 -0
  19. solace_agent_mesh/assets/docs/assets/js/9a09e75d.5a319fd4.js +1 -0
  20. solace_agent_mesh/assets/docs/assets/js/9eff14a2.d62aad71.js +1 -0
  21. solace_agent_mesh/assets/docs/assets/js/a3a92b25.1d029b81.js +1 -0
  22. solace_agent_mesh/assets/docs/assets/js/{aba87c2f.071e2d94.js → aba87c2f.4ddf32f2.js} +1 -1
  23. solace_agent_mesh/assets/docs/assets/js/ae0e903d.abca774a.js +1 -0
  24. solace_agent_mesh/assets/docs/assets/js/ae4415af.24cdc514.js +1 -0
  25. solace_agent_mesh/assets/docs/assets/js/bac0be12.27ee2c26.js +1 -0
  26. solace_agent_mesh/assets/docs/assets/js/c2c06897.87cb1f47.js +1 -0
  27. solace_agent_mesh/assets/docs/assets/js/c835a94d.ce21f0bf.js +1 -0
  28. solace_agent_mesh/assets/docs/assets/js/cc969b05.feef7dcc.js +1 -0
  29. solace_agent_mesh/assets/docs/assets/js/cd3d4052.a19e7d78.js +1 -0
  30. solace_agent_mesh/assets/docs/assets/js/{cee5d587.f5b73ca1.js → cee5d587.f1e1ca86.js} +1 -1
  31. solace_agent_mesh/assets/docs/assets/js/f284c35a.cad4dbf2.js +1 -0
  32. solace_agent_mesh/assets/docs/assets/js/f897a61a.bc634a3e.js +1 -0
  33. solace_agent_mesh/assets/docs/assets/js/{main.4adc477a.js → main.e82b32e6.js} +2 -2
  34. solace_agent_mesh/assets/docs/assets/js/runtime~main.aad1f874.js +1 -0
  35. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +4 -4
  36. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +5 -5
  37. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html +6 -6
  38. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html +6 -6
  39. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +6 -6
  40. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +3 -3
  41. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +18 -18
  42. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +3 -3
  43. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +3 -3
  44. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +10 -10
  45. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +4 -4
  46. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +3 -3
  47. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +3 -3
  48. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +7 -7
  49. solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +3 -3
  50. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +9 -9
  51. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +6 -6
  52. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +7 -7
  53. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +23 -23
  54. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +5 -5
  55. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +5 -5
  56. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +4 -4
  57. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +9 -9
  58. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +10 -10
  59. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +8 -8
  60. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +6 -6
  61. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +9 -9
  62. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +3 -3
  63. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +5 -5
  64. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +5 -5
  65. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +3 -3
  66. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +5 -5
  67. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +18 -18
  68. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +7 -7
  69. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html +8 -8
  70. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +10 -10
  71. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +3 -3
  72. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +4 -4
  73. solace_agent_mesh/assets/docs/lunr-index-1757873594308.json +1 -0
  74. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  75. solace_agent_mesh/assets/docs/search-doc-1757873594308.json +1 -0
  76. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  77. solace_agent_mesh/cli/__init__.py +1 -1
  78. {solace_agent_mesh-1.3.2.dist-info → solace_agent_mesh-1.3.3.dist-info}/METADATA +1 -1
  79. {solace_agent_mesh-1.3.2.dist-info → solace_agent_mesh-1.3.3.dist-info}/RECORD +83 -83
  80. solace_agent_mesh/assets/docs/assets/js/0e682baa.b3bbde9a.js +0 -1
  81. solace_agent_mesh/assets/docs/assets/js/1023fc19.364235d5.js +0 -1
  82. solace_agent_mesh/assets/docs/assets/js/1523c6b4.1b0ec6f9.js +0 -1
  83. solace_agent_mesh/assets/docs/assets/js/1c6e87d2.a8c5ce5a.js +0 -1
  84. solace_agent_mesh/assets/docs/assets/js/2a9cab12.8909df92.js +0 -1
  85. solace_agent_mesh/assets/docs/assets/js/332e10b5.7a103f42.js +0 -1
  86. solace_agent_mesh/assets/docs/assets/js/3d406171.0b9eeed1.js +0 -1
  87. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.d97b8e94.js +0 -1
  88. solace_agent_mesh/assets/docs/assets/js/442a8107.b3159bb2.js +0 -1
  89. solace_agent_mesh/assets/docs/assets/js/483cef9a.03d5dceb.js +0 -1
  90. solace_agent_mesh/assets/docs/assets/js/55f47984.cf3781c4.js +0 -1
  91. solace_agent_mesh/assets/docs/assets/js/5b4258a4.0d080cd9.js +0 -1
  92. solace_agent_mesh/assets/docs/assets/js/664b740a.1b744a32.js +0 -1
  93. solace_agent_mesh/assets/docs/assets/js/75384d09.c193a8f0.js +0 -1
  94. solace_agent_mesh/assets/docs/assets/js/768e31b0.8b51cd70.js +0 -1
  95. solace_agent_mesh/assets/docs/assets/js/945fb41e.c63791d1.js +0 -1
  96. solace_agent_mesh/assets/docs/assets/js/9a09e75d.d6607c56.js +0 -1
  97. solace_agent_mesh/assets/docs/assets/js/9eff14a2.472b0310.js +0 -1
  98. solace_agent_mesh/assets/docs/assets/js/a3a92b25.4b7fa6a2.js +0 -1
  99. solace_agent_mesh/assets/docs/assets/js/ae0e903d.4d8dda10.js +0 -1
  100. solace_agent_mesh/assets/docs/assets/js/ae4415af.7a2f0bbf.js +0 -1
  101. solace_agent_mesh/assets/docs/assets/js/bac0be12.f50d9bac.js +0 -1
  102. solace_agent_mesh/assets/docs/assets/js/c2c06897.587b4af5.js +0 -1
  103. solace_agent_mesh/assets/docs/assets/js/c835a94d.146e3186.js +0 -1
  104. solace_agent_mesh/assets/docs/assets/js/cc969b05.bd3e0d6c.js +0 -1
  105. solace_agent_mesh/assets/docs/assets/js/cd3d4052.b6535013.js +0 -1
  106. solace_agent_mesh/assets/docs/assets/js/f284c35a.7334119c.js +0 -1
  107. solace_agent_mesh/assets/docs/assets/js/f897a61a.0aa29dbb.js +0 -1
  108. solace_agent_mesh/assets/docs/assets/js/runtime~main.cf0229ea.js +0 -1
  109. solace_agent_mesh/assets/docs/lunr-index-1757704179464.json +0 -1
  110. solace_agent_mesh/assets/docs/search-doc-1757704179464.json +0 -1
  111. /solace_agent_mesh/assets/docs/assets/js/{main.4adc477a.js.LICENSE.txt → main.e82b32e6.js.LICENSE.txt} +0 -0
  112. {solace_agent_mesh-1.3.2.dist-info → solace_agent_mesh-1.3.3.dist-info}/WHEEL +0 -0
  113. {solace_agent_mesh-1.3.2.dist-info → solace_agent_mesh-1.3.3.dist-info}/entry_points.txt +0 -0
  114. {solace_agent_mesh-1.3.2.dist-info → solace_agent_mesh-1.3.3.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- __version__ = "1.3.2"
1
+ __version__ = "1.3.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: solace-agent-mesh
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary: Solace Agent Mesh is an open-source framework for building event-driven, multi-agent AI systems where specialized agents collaborate on complex tasks.
5
5
  Project-URL: Homepage, https://github.com/SolaceLabs/solace-agent-mesh
6
6
  Project-URL: Repository, https://github.com/SolaceLabs/solace-agent-mesh
@@ -19,7 +19,7 @@ solace_agent_mesh/agent/adk/stream_parser.py,sha256=3i5rFN7dDVgjLvK4GG0PKYmxgIdt
19
19
  solace_agent_mesh/agent/adk/tool_wrapper.py,sha256=yzkXjE4QtdVtO5edB-c-R_qJgaex9rmCHIswW1ltfxY,6513
20
20
  solace_agent_mesh/agent/adk/artifacts/__init__.py,sha256=vAB8eqGwgPo3nx6YkT93Y7puYRMcqIKMAchBizvdw7Y,62
21
21
  solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt,sha256=UZVqU_AU8rqrnzQV6CZ_MzsYd7o9ihUcqF7J1xns9gU,6567
22
- solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py,sha256=JWR6PqWP2UOw1_6iLOWMB57txzdc4hnjIr2w5cVk76c,13589
22
+ solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py,sha256=Z5uL1Mvy5ywVX47EXTy_xW2ZLtugAu6GlFWkeJ4leko,13983
23
23
  solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py,sha256=6CyKDOuQJ4b0vibAFlOHq2bDQoQglqX0NDxWUXAhqUs,15178
24
24
  solace_agent_mesh/agent/adk/models/lite_llm.py,sha256=Enia0uFs2epagavdaCWNnvMFIL7VxRuo0A6mYBQZGWQ,30325
25
25
  solace_agent_mesh/agent/adk/models/models_llm.txt,sha256=tpihTC3M1-WXduJgZerCGcJzNUfRSsbtol4VFhKyd6U,6119
@@ -175,7 +175,7 @@ solace_agent_mesh/gateway/http_sse/shared/__init__.py,sha256=qlCIQimjoNwbRGbhjNZ
175
175
  solace_agent_mesh/gateway/http_sse/shared/auth_utils.py,sha256=F0kpTg5HYadRAEVNSNvnEFpdzkwVqbFMFVr27kywz_k,852
176
176
  solace_agent_mesh/gateway/http_sse/shared/enums.py,sha256=gcU_hApRkWcBy0JykqGXSESGyglLXN3FzkimITmwnnE,802
177
177
  solace_agent_mesh/gateway/http_sse/shared/types.py,sha256=zAojlvovTMvaB4o-U20cY3q2DxZs_xaCtcoYUhCLczg,1075
178
- solace_agent_mesh/cli/__init__.py,sha256=HgKA3RqZvC7slo8MgLyffCGwJbQ3cY6I7oUMFvGLWps,22
178
+ solace_agent_mesh/cli/__init__.py,sha256=Vi6om3KImlKsS_Wg5CjUgYffoi2zx7T-SRPnnGL0G7M,22
179
179
  solace_agent_mesh/cli/main.py,sha256=yFbF4ijz7P6nxj26d-mTC8BnK6NKVnfqPh3y4pDBZqo,831
180
180
  solace_agent_mesh/cli/utils.py,sha256=7zntmVuvWbaWEhViSF2uw484-79a5I1XTUt-0eGQWY4,8036
181
181
  solace_agent_mesh/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -242,69 +242,69 @@ solace_agent_mesh/templates/plugin_tools_template.py,sha256=GUVw556CtBYE6sHbpXnF
242
242
  solace_agent_mesh/templates/shared_config.yaml,sha256=_-ytR25HSAfwjN6drkdUQgGeV_om6RSeM4BUCMxQ3vQ,3310
243
243
  solace_agent_mesh/templates/templates_llm.txt,sha256=T3h8CcIowTbyBedlfRk7FZww8_xGmnY5fEqGhhdI3JU,9234
244
244
  solace_agent_mesh/templates/webui.yaml,sha256=Xb6nswsFpMtCnpUDY9sGuO4Q3IhR8x-lDDRtHaySUVo,1782
245
- solace_agent_mesh/assets/docs/404.html,sha256=2A3Hqv0UbjhlStHNGRgYnRcby248QbC9SsuZQrqVAfs,11749
246
- solace_agent_mesh/assets/docs/lunr-index-1757704179464.json,sha256=DQk3I94EU5RqEeMQ_wsIOTnI9pTkotztKGmh88w6ivE,1093203
247
- solace_agent_mesh/assets/docs/lunr-index.json,sha256=DQk3I94EU5RqEeMQ_wsIOTnI9pTkotztKGmh88w6ivE,1093203
248
- solace_agent_mesh/assets/docs/search-doc-1757704179464.json,sha256=t8tlv7R9zmRvTsXthbY_qUvQxl8yr0k-epK0cqovVEo,385273
249
- solace_agent_mesh/assets/docs/search-doc.json,sha256=t8tlv7R9zmRvTsXthbY_qUvQxl8yr0k-epK0cqovVEo,385273
245
+ solace_agent_mesh/assets/docs/404.html,sha256=VLXWmcEXEhcECHYk3quMXQ30UCM6W0gLnV0An6aQUtU,11749
246
+ solace_agent_mesh/assets/docs/lunr-index-1757873594308.json,sha256=8Bf4GUjOTANMWTXTq1MvEMbilcPNFHZ3JDY-v4NaWxs,1097571
247
+ solace_agent_mesh/assets/docs/lunr-index.json,sha256=8Bf4GUjOTANMWTXTq1MvEMbilcPNFHZ3JDY-v4NaWxs,1097571
248
+ solace_agent_mesh/assets/docs/search-doc-1757873594308.json,sha256=skEhG2qAQi8vVt7wJJksC0H4MYGcIVDiEyUa2qDVqiQ,386979
249
+ solace_agent_mesh/assets/docs/search-doc.json,sha256=skEhG2qAQi8vVt7wJJksC0H4MYGcIVDiEyUa2qDVqiQ,386979
250
250
  solace_agent_mesh/assets/docs/sitemap.xml,sha256=MeU4E6b7O7RjK1CdC9W4zjle-yridFsVnyDf2HtnzyY,6830
251
251
  solace_agent_mesh/assets/docs/assets/css/styles.906a1503.css,sha256=gQj16ydMLPiq6y-t8Ovto65hsvPbQX6coyIFOja-2eY,83293
252
252
  solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png,sha256=e6MbZpxlY1xJ8U01zQogm8vWgokQqDfhsyPyNxtuS00,447393
253
253
  solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png,sha256=868GgNJGPxn2G6c1Md_0umhg3xuAo7t6HEx8hOKbUJY,21098
254
254
  solace_agent_mesh/assets/docs/assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png,sha256=Z7-TCXxDC2fd6iZ3Lkr-F3OHhqr6m_glnzVIcwUhv4k,12283
255
255
  solace_agent_mesh/assets/docs/assets/js/04989206.b9dfe831.js,sha256=FKsu-Lj1N5hEHYOyooBDJag8kom60PpKkPkW0VxBPRs,10851
256
- solace_agent_mesh/assets/docs/assets/js/0e682baa.b3bbde9a.js,sha256=gqBjyA4nzVqKYPk1bJDWyFQxt3_S-ihGUSW0ZI3UBQw,12559
256
+ solace_agent_mesh/assets/docs/assets/js/0e682baa.da822665.js,sha256=8z2LRUHckuWnYEtvELV0BBuGurlFuK6VsnKAto5Szc4,12573
257
257
  solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js,sha256=wnldyGaqrut3ES6Q5UDpRGsaNwlX_JoL2FDB_f7_hBI,90563
258
- solace_agent_mesh/assets/docs/assets/js/1023fc19.364235d5.js,sha256=epmvQQ-_y9YtrBx1SwxApQOo_23jkVYgb5Hf13V9Yo0,14613
258
+ solace_agent_mesh/assets/docs/assets/js/1023fc19.8a8a9309.js,sha256=Ccrvfzh6h7Mw-fDTHDYgkdinADChMthSzis02V4wjnM,14601
259
259
  solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js,sha256=3gOxMCGWPNyBymsv8WkRfDuOlc7UZ1c9c794Q7gmNyQ,71713
260
260
  solace_agent_mesh/assets/docs/assets/js/149.b797a808.js,sha256=BZRazTFuXMaIQkDiXM1Sq9J3QgYa2HJuuJCCs8gQz3w,438
261
- solace_agent_mesh/assets/docs/assets/js/1523c6b4.1b0ec6f9.js,sha256=6dwK7ScvWjGWJNiJkgThZE0XAX_pdSrjBAH9NiQBQtI,16510
261
+ solace_agent_mesh/assets/docs/assets/js/1523c6b4.2645ef68.js,sha256=nHm7VzEAuw_CKJ-B-IXdco_vp8x76ebI5isys9orJsU,16498
262
262
  solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js,sha256=LbpDL4NSduNRTSI3RUIg5dLdMd4wawHU4Qta2vf8ryg,428812
263
263
  solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt,sha256=QX5NnNHHE912JA-8rhkyT6_OOM9KmKb6eM5ZwZ_m0fk,485
264
264
  solace_agent_mesh/assets/docs/assets/js/166ab619.e8f3a7c7.js,sha256=yWTbpgGD-v6K2Qr4a0Sxo9uXorbQOiZee9kErIz7ZAw,17641
265
265
  solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js,sha256=tVREW18iBlO-P7JNPvgX1-RR8tnFAoLarHSSTNAYfTw,568073
266
266
  solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js.LICENSE.txt,sha256=WX8R_ZUDUISsiSypR5LNXXo_QEtn2JZPIpsBgCIh88Y,322
267
- solace_agent_mesh/assets/docs/assets/js/1c6e87d2.a8c5ce5a.js,sha256=wW7iqWNvRJItcPvkT0Js2Y9BcAp1SglpvR3u2KvUNmU,11812
267
+ solace_agent_mesh/assets/docs/assets/js/1c6e87d2.43771adc.js,sha256=sxUU82V3QWzqShRwNW2ByytMMASQRhgvIt-47J-zZFA,11806
268
268
  solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js,sha256=t_AtyiW0eu0qFLk4hnlJEofpadh7m6lgEqDgP46V4D0,274059
269
269
  solace_agent_mesh/assets/docs/assets/js/21ceee5f.3bf39250.js,sha256=efuLvEKIaarHSWvaas0YzzHT_b5fMwPL3BcNO7kw-UY,5543
270
270
  solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js,sha256=zW8HJtjPXRUHEgvhkLqqI6USE-FyQKRQlozKw4eDVec,1309
271
271
  solace_agent_mesh/assets/docs/assets/js/2334.622a6395.js,sha256=v4GvVtB8gFzf7i97_St55G3k0zvW6emQZyR0eQ9iXyU,38195
272
- solace_agent_mesh/assets/docs/assets/js/2a9cab12.8909df92.js,sha256=1rKGQBVpS44CwhbFS8oJ7U2FsuEKpTfE2-zGjPpCFIk,17859
272
+ solace_agent_mesh/assets/docs/assets/js/2a9cab12.2afaee76.js,sha256=GJFAiemacO9EJfnvLfmR5yujpwcg1pQOHykpSEpld4c,17931
273
273
  solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js,sha256=cScnTwicV4XboNRNw4WqbinP-KZtL-fulxmDcOIw3Pg,25843
274
- solace_agent_mesh/assets/docs/assets/js/332e10b5.7a103f42.js,sha256=5vrtNVDFX-_x2_z11RIk435u9NsRAih8uLKKir_IbR4,29268
274
+ solace_agent_mesh/assets/docs/assets/js/332e10b5.f7629851.js,sha256=hEm-4EPzVP9_ozAh0cKy6gkiFCabrXmQXQ7DYaVCXqg,29656
275
275
  solace_agent_mesh/assets/docs/assets/js/3624.b524e433.js,sha256=cmS9btCBUGcxCToTFwQeBROmuScAVaIaaRXiMgvRvvg,14839
276
276
  solace_agent_mesh/assets/docs/assets/js/375.708d48db.js,sha256=tnoRKYgl89ieY_0s8NeHjMy9gQvpDQPo5q6kfr5zNt0,4319
277
277
  solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js,sha256=LuFdgiur49yMqtwnhUN7ECJ2lPvBaWdDam3OANM5WcM,196
278
- solace_agent_mesh/assets/docs/assets/js/3d406171.0b9eeed1.js,sha256=ysBVsGz8jiqpGJBMNGUCRXE5VGeVbbbKOXSo1004gak,45141
278
+ solace_agent_mesh/assets/docs/assets/js/3d406171.5560fdf9.js,sha256=YxwcvvCb721_LDB9PpbCH7Ux--7PQ4XxD2wy8oG-7bY,45169
279
279
  solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js,sha256=y3OgeXf-tuJO5M6gJ70aW58HdFE7vZIPX7V4mduXL9c,197
280
- solace_agent_mesh/assets/docs/assets/js/42b3f8d8.d97b8e94.js,sha256=B8PtMHdr70TYrVBRt-zn6UxOXEHkpL_ku8hN6LOHoAk,34795
280
+ solace_agent_mesh/assets/docs/assets/js/42b3f8d8.3f34bf76.js,sha256=nU-fT8o6eGDZz3Iz8msJRv58D0owaKsHKORzcWRuApU,35013
281
281
  solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js,sha256=JJdBrbL2-8tn2jfAGsO1ezjcM37BAIZnZsNYgc4UoZs,195
282
- solace_agent_mesh/assets/docs/assets/js/442a8107.b3159bb2.js,sha256=Q-EkgCGSjulBtLNhOpBQe0aIE2urIll5V9f3NlSsZt0,18468
282
+ solace_agent_mesh/assets/docs/assets/js/442a8107.b5c2532a.js,sha256=LivKRCvxmyUQnUGWxy6zaR-knomWdZ38WkVl6mmUFkk,18560
283
283
  solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js,sha256=oUPDT1LqnbeRts2CudqNueI-OQHML5gg9dWEvP6PiE4,25886
284
284
  solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js,sha256=r1GHmJIWPPQ07T92TAs1H59eHcs-e87AFDqi_0VK48A,435
285
285
  solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js,sha256=UrwgwbJNRAZiY6UtdzHrpggUpkNGlIh9vHiSXdv5DDI,61052
286
- solace_agent_mesh/assets/docs/assets/js/483cef9a.03d5dceb.js,sha256=urfMWXGkavwHkYKtbA2a_kR15c-v_kFbVKNTbmqG3Uc,14126
286
+ solace_agent_mesh/assets/docs/assets/js/483cef9a.8d318c2f.js,sha256=NsHK4Zz9hgCo_DzUecbECAsFSpjv1uB4Fs9soxAASXA,14196
287
287
  solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js,sha256=Rbhzs2AM-6i8Wyppb8a2Ws8kpNE8Pr5QMgx0sxAozxs,11494
288
288
  solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js,sha256=bQRnSAwf0FIrdrYQLeyXv6f4utbEoi4nSU-kKchB4sw,3876
289
289
  solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js,sha256=Kq5gqn-p3ozVcUY7fWZnY4_35_sNcFN8z4bNY6Cqt-s,146409
290
290
  solace_agent_mesh/assets/docs/assets/js/4c2787c2.fc6804f2.js,sha256=0IwIlLMkZe9HpIf5wa-lMgNTy4_6ZH0iusQJV5G2HZI,7849
291
291
  solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js,sha256=F9mKVkGI0I-fmfKn3kADJdVlVAe4lD7LQKjZ_kE7_cY,25022
292
- solace_agent_mesh/assets/docs/assets/js/55f47984.cf3781c4.js,sha256=cSnTXFAdQyURaNJQrAv412W6yy3bp7XZYEbM0LJyWjc,52803
292
+ solace_agent_mesh/assets/docs/assets/js/55f47984.bcd00a86.js,sha256=kI7AeZQs9PeqepeLnp2-I2ifVCiKLCrJPt1jyjhfN7A,52819
293
293
  solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js,sha256=82P_IlhzwOSMkBDBTXHJsjSx0s1dFbcojWnOC-Vp7qU,194
294
294
  solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js,sha256=XRxc9MFKvCVwmU2KY3io24cVMqk_dK8koh1B2rEQINQ,33926
295
- solace_agent_mesh/assets/docs/assets/js/5b4258a4.0d080cd9.js,sha256=XO57DicV0rtbI8zv8qtZoe6fVbAFRWV3ddaDBUUFVSY,10721
295
+ solace_agent_mesh/assets/docs/assets/js/5b4258a4.dff11eca.js,sha256=KVmZOfBcXBXHxzKxTIm6xMWkPvm4ztX9SflfZfqSa_E,10779
296
296
  solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js,sha256=LrlOoFsc_wTcyuzay3WDxkpYtVGn2kUIWCosBvg_z8I,377
297
297
  solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js,sha256=N9VlCMIQjWkazDtcal5eC7xe1YvOVCMRx119JzMQl1k,39122
298
298
  solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js,sha256=-v8U5XdxnXthhTAYmuTbvDQRKDPxzQQS-Lew81sPN-8,440
299
- solace_agent_mesh/assets/docs/assets/js/664b740a.1b744a32.js,sha256=VvilsxMRqDXggRKPPPgjl1DUEg0ekS1gTVq8i8DtBhU,32550
299
+ solace_agent_mesh/assets/docs/assets/js/664b740a.ba305a89.js,sha256=3G9y7yuU8DIa1Ev8HN7NjVguewc65lW8CJ6TZgcgPiA,32622
300
300
  solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js,sha256=yeZg7UFFslMqrIQP-dqk-4vBwLDsJ5Rx6aD1VliW07U,6300
301
301
  solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js,sha256=Fe3y3jWBBUqmD4dIUwZUUjiCvv5uSLEss3cOEzUDB9E,193
302
302
  solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js,sha256=Fabb2n81BbNegY_9ZboMCBu-Zgd5-nETGqLxviUogDg,11834
303
303
  solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js,sha256=cmW7CCISvRnJNljTDg4jGJtG6rjSp0nWfZvchAKSdf4,36638
304
304
  solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js,sha256=8VHuob7jbA49epJL54bEU-mtOdSeUFXzqbgThE4walo,46219
305
305
  solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js,sha256=XlDQpYplGuVoEqfXCt8Yzocd9uBTu64VUrNp4LQDyIY,659
306
- solace_agent_mesh/assets/docs/assets/js/75384d09.c193a8f0.js,sha256=6KzzOiNHd3k_vqS_kZazhFD77SOBRkB31X3GOYJZfTU,21751
307
- solace_agent_mesh/assets/docs/assets/js/768e31b0.8b51cd70.js,sha256=RiCB8_hLIkx_-9iLJYC_SaDUb8trsfJ-zsETOTX6oLU,12950
306
+ solace_agent_mesh/assets/docs/assets/js/75384d09.abdf9cf9.js,sha256=e6LcdpJb_zFxHQp5Ug5YdZaOgnVgcABXe7q75MPcp0k,21859
307
+ solace_agent_mesh/assets/docs/assets/js/768e31b0.9abcdc48.js,sha256=UkbCT6QjuavRsdzU6WlionAa1M2BqeGIW_LE4YkjMEM,12938
308
308
  solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js,sha256=sNEWPWBTnV-BmKI7vkcgRpTYeErGBXRbtH_X5YRnr-c,11143
309
309
  solace_agent_mesh/assets/docs/assets/js/7900.69516146.js,sha256=MWXxfpYNV5CORkPa0r6EyyynbVJrNENknNv0Zb7TqS8,43021
310
310
  solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js,sha256=bj4ozR1V-6vmmty5Dr_1CCAup1i4lWAgRfY-ZHrMH-U,197
@@ -319,71 +319,71 @@ solace_agent_mesh/assets/docs/assets/js/8731.49e930c2.js,sha256=ecg70IZRPAH8EOZx
319
319
  solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js,sha256=LrKHDjwNk1bPFNWpwTeQmTNlC47BvAhr-S3I-AcB_FQ,30883
320
320
  solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js,sha256=-LWKw3jEtKdkEjap1b0NI7tJLVEPj8SyTRq5cJvL0TA,22109
321
321
  solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js,sha256=Nm7cJgq11XXaYA3WxmU_H5Yk2S8L1fgF6RC9lX7eepU,143
322
- solace_agent_mesh/assets/docs/assets/js/945fb41e.c63791d1.js,sha256=qlT-X_eLMyfcFJOm7WoWrZdKhbi3pwerMIbGk6tWHfY,15024
322
+ solace_agent_mesh/assets/docs/assets/js/945fb41e.abf2be91.js,sha256=agrUerMLSTW1lY0Jx5FAYQvlzqPeu-UWQ-MX-nly8QE,15060
323
323
  solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js,sha256=Ry0lLDd8HQzYAHmCKcXJ4iQ-9utISMjqcWk_iURtf1A,20576
324
324
  solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js,sha256=-Xm7Yt1AJvEcfoYlQ04O5Douk4bsO4mgo_UJN8TVIUY,100459
325
- solace_agent_mesh/assets/docs/assets/js/9a09e75d.d6607c56.js,sha256=vunpxmyjpCcccyR0vy8nbrKY0y29ERadFDk39NfV40s,15423
326
- solace_agent_mesh/assets/docs/assets/js/9eff14a2.472b0310.js,sha256=Yo_IseS84vBMdHdeEqg6IqPlSh3p3WK4XtkNaJtjpBk,10567
327
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.4b7fa6a2.js,sha256=ZcppuNhcOhf8CkCipfepjr6hE9Us7-W5B6hQ933s1aA,5781
325
+ solace_agent_mesh/assets/docs/assets/js/9a09e75d.5a319fd4.js,sha256=yoKe1Oioh4nYpaN-3rucbfzmqscT5J23tHwQmLt2x2Y,15453
326
+ solace_agent_mesh/assets/docs/assets/js/9eff14a2.d62aad71.js,sha256=iR2JsabRjQemymeBxgOq8WQFkWjTQQ7mHjfgN5a2e14,10569
327
+ solace_agent_mesh/assets/docs/assets/js/a3a92b25.1d029b81.js,sha256=h54GrYlzw7X-lkS8Oc_TnNsFwJ6jkMJkG45xGj9JdSU,5797
328
328
  solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js,sha256=v9wa2Q1Mt7cayLyMjyDTUT8J_kILQ2idmxDhgyBHlpE,756
329
329
  solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js,sha256=drinuntIgk0lUv1Wc_WlHu5I8d5ZDszh329V_5WQrD4,11251
330
330
  solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js,sha256=e8uMq6LJqDkt4o-uIbKH2CIw_7cQ4Kthlh4O9UqwWdw,211
331
- solace_agent_mesh/assets/docs/assets/js/aba87c2f.071e2d94.js,sha256=zGNNnpqAsakGq-eoC67VarW_VDqVnbUq1YnJl7uR6Es,17337
332
- solace_agent_mesh/assets/docs/assets/js/ae0e903d.4d8dda10.js,sha256=O4L9GDbVf2rrmU1aXbUW4Fn3JmwXNUA6d472bCwsPc0,4885
333
- solace_agent_mesh/assets/docs/assets/js/ae4415af.7a2f0bbf.js,sha256=F3xkR1q7_hS_UUfF9fg-3sPDJ-8bAOsHjbqaX-UoEMM,29047
331
+ solace_agent_mesh/assets/docs/assets/js/aba87c2f.4ddf32f2.js,sha256=uPt4W5mjlBoYrNo2AHFUvtRgLNnjMT0aEYgZwpP4TP0,17379
332
+ solace_agent_mesh/assets/docs/assets/js/ae0e903d.abca774a.js,sha256=vGhLWeTNrtu5l1nceSIT47HR0qkADayJhcjgJoa7oJ4,4955
333
+ solace_agent_mesh/assets/docs/assets/js/ae4415af.24cdc514.js,sha256=EfuAd2uZf-F1ZVUXAd0wj7ZiIwOFVIrXwwXn7_EGb-M,29289
334
334
  solace_agent_mesh/assets/docs/assets/js/b7006a3a.73a79653.js,sha256=YYjvDTjQytUxcimeJinuha5T7SdUyHTYjRz7kLFOGOQ,12973
335
- solace_agent_mesh/assets/docs/assets/js/bac0be12.f50d9bac.js,sha256=quA_kaWdOjhBBpvq5jhKpSqEKaOqy8y4oITXTObG8Yk,17998
335
+ solace_agent_mesh/assets/docs/assets/js/bac0be12.27ee2c26.js,sha256=wY-AhWl_w5LnF9-JtfyxIbCv0Oz1R3RprqE3FGeeSIo,18006
336
336
  solace_agent_mesh/assets/docs/assets/js/beecea0d.ae31f6a7.js,sha256=oEQqPzjzWdpvM2fMjLFEFg5uoaN9KtcPatNqiVDu4NU,26216
337
- solace_agent_mesh/assets/docs/assets/js/c2c06897.587b4af5.js,sha256=sgWo2S9PB6F9eL3Z3nrbx1IS-vtwFi_dt5KX9rNVpk8,14948
338
- solace_agent_mesh/assets/docs/assets/js/c835a94d.146e3186.js,sha256=AjMNPvk8MZbZ55MRODRpHICvJ4uhpj09vpNESxGP9zI,22106
339
- solace_agent_mesh/assets/docs/assets/js/cc969b05.bd3e0d6c.js,sha256=9LqCerLmI1iU53gH096nOvASEvXnC3RvcNRKiS91LmE,23069
340
- solace_agent_mesh/assets/docs/assets/js/cd3d4052.b6535013.js,sha256=wi8AuSgR-M8XtFY639DAVFuaiur6LaBabHKoh5qfuJY,9747
337
+ solace_agent_mesh/assets/docs/assets/js/c2c06897.87cb1f47.js,sha256=JodGkXjuFPEBSlBMpaPOOIuj_Tut0AbwolDniGVPuZE,15020
338
+ solace_agent_mesh/assets/docs/assets/js/c835a94d.ce21f0bf.js,sha256=JdrkXlYTQYJgKwVH5yCN7S3NSlsBnTS3MkNFpdoxark,22108
339
+ solace_agent_mesh/assets/docs/assets/js/cc969b05.feef7dcc.js,sha256=gsMm5-DPoDd6MNJOJE3tNJRkTry1Lu3eSIos4De64RI,23141
340
+ solace_agent_mesh/assets/docs/assets/js/cd3d4052.a19e7d78.js,sha256=LcU10wDKu9Ax9XbTc0fyQff_7QikR6sEc4SXyP4lpLg,9791
341
341
  solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js,sha256=96enCMQqnD-_WrFda13oJ3gPLYxmy93LXDFxDuxA5JY,25255
342
- solace_agent_mesh/assets/docs/assets/js/cee5d587.f5b73ca1.js,sha256=ciDSktNPCP_cmpHCR-ycCpuFEeVmbV_D8uHydRZ225w,9508
343
- solace_agent_mesh/assets/docs/assets/js/f284c35a.7334119c.js,sha256=wJOKH1ngi5UuVvqdrOiakHaiqN7bD007krZV1eqE4Hs,21400
344
- solace_agent_mesh/assets/docs/assets/js/f897a61a.0aa29dbb.js,sha256=Bv0Itx75hHCRAiGKy34-NjK7CSWZ9CT1l5uyni3GCOw,16949
342
+ solace_agent_mesh/assets/docs/assets/js/cee5d587.f1e1ca86.js,sha256=WHSNG7Q7fO5_x9k74DybsbewxIoJMwQJ_AtxzbenlWI,9522
343
+ solace_agent_mesh/assets/docs/assets/js/f284c35a.cad4dbf2.js,sha256=S02-qr5thbket1SGTTNz9iLgAPAIcuUsa62BCZovze0,21402
344
+ solace_agent_mesh/assets/docs/assets/js/f897a61a.bc634a3e.js,sha256=6JytHKyBrOGJH33efELGM9KVq6x0tvSbqvvkg53gV2w,17047
345
345
  solace_agent_mesh/assets/docs/assets/js/fbfa3e75.aca209c9.js,sha256=vmq7isB22h2J_2cVIt1h6D2OhwU6wTBEnk1-CNZv9Wk,7314
346
- solace_agent_mesh/assets/docs/assets/js/main.4adc477a.js,sha256=_FGosaNCI37ZnIyV1AtFCInfIggNbsHSD7u8w706qDA,482726
347
- solace_agent_mesh/assets/docs/assets/js/main.4adc477a.js.LICENSE.txt,sha256=3Jia5o7yaxOtbxuy9khs-thK96m55yCiPaUA-IkWh0A,2069
348
- solace_agent_mesh/assets/docs/assets/js/runtime~main.cf0229ea.js,sha256=4GNbUckOdQAR_kjZqhuRSafmo1jez-dwGzcjCWybewo,6233
349
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html,sha256=4_JuJHRJs2n_rF2TtZ1ao0ThBxkJE4EuW0g61N4AjKU,27051
350
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html,sha256=k2PYi7PYudk4Taujdw8GtyWAn_cPrnhV2J80TVdPXVo,69510
351
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html,sha256=kSPBR4VZ1djWx2mY7_bPjyhoiglATwlKTizEjtTnILA,84817
352
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html,sha256=5t5EJpeYdDQOz2Hw32fBWKDMBvntOnESeiFDrJAmXwU,87750
353
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html,sha256=b-_5GZkWnctVVlc_uEsPphrRg_KXd15CKou6Jsify8A,39799
354
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html,sha256=VJg_zKYCpxqYsdmUWMDG3oubWeGGRzTp_3p7MNTrB7Q,32769
355
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html,sha256=EAmEUMreil7oefQV4FL_ZULdKQj0ic5mHZJdeIvIB4g,50214
356
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html,sha256=j29IbJl0RVvror33TchNdXiO6KxuIabwsFaf2otD11c,30147
357
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html,sha256=Rr3130I0ZXD-y_6eMWZj36qLI0HY3YMRXoUxZmSPXRA,23853
358
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html,sha256=p6cVi8ERb9I3rvPz_WUG2cKDZ1G_Sd5e2ohd6QVpEJ8,39937
359
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html,sha256=OyZdFzLTiq8mIcNbJmSyRHUob5pBl6WF08FM9jGOLQM,45637
360
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html,sha256=n_M8lE-Liit74vEzqAgx_baEWfmjn2I6f2Ez-L-556M,42547
361
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html,sha256=ay_OMMnKkjJc0VPNavjb9KIleT802f1M_CGfMOjL2kk,26091
362
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html,sha256=rAp_ffsFBqtgYYXQEb6EzdRS-Bq7jDHyP8jI3B9jy_A,21724
363
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html,sha256=RL4dwJkb9KfWN91695AB14hvzK3qkYYUWCanfOS9n9g,56647
364
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html,sha256=QlBILHqFoAWlTxPq5RkWrT3jQSLrIbhIjyf7FpKu2s0,32553
365
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html,sha256=jUWqx4zDA6-8P6k9T89OrfW6IeVuEhjBdVUcuJgeLQU,30461
366
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html,sha256=Wqfj3uuKOW-7NL_c6NyIHsMqkbsHKJ8vvw2uyf-CyLY,42540
367
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html,sha256=T8PLv5JBZ8_4JTTvRCDxSx6FY6_dRACKBFMJ7fOQ4SQ,75264
368
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html,sha256=0mSgDaxxP58_vvX804YMKPvaoj7B6QUVmlS3bxFTPhw,383367
369
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html,sha256=Faxa_LhbQKZtPPlr7o-u8dEaNu3MSuNpdOhLaj-LNvA,69270
370
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html,sha256=8fZY3TMJDrGONJZlpTxGRPsPeTyijC4I499IA5K7qMo,65034
371
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html,sha256=gXmviWVwwSbTXOBQqD02njxIh31cF5BJ6syZdgEBbRM,87586
372
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html,sha256=ziR1MosoDiaoUKV4kQODs9D2KbjhIXv2na8L1RtAiK4,80327
373
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html,sha256=8lB0u6wrZgn7ILFYO0llRXIeYTwVPA21O-seWGHk3bM,46701
374
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html,sha256=3EljpI6bPUUp4CjjggMFHJMUNXL9Dxpr96OzIwOKZ90,49984
375
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html,sha256=MlF9fL4zG_7AdnINodQW5XDeN_yepgWGzVRw5KatHQk,69291
376
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html,sha256=R-lTGJZ_e5--zRRhGgy7-cnPDTCbIFKiD_2GnRuZt8o,44864
377
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html,sha256=4llTe4W7iiE7TGUERm5EaNQRuyrgWtSl1_YkGW6c0fw,34816
378
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html,sha256=amhTrFBUustpkeE6kFtt7_lN4WRYArDaKT6JG0JGZjE,58271
379
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html,sha256=luxhNY9SBWj-ZNUqiYrCZ_vQBAxo-_I8PU0jDQ4Hv1g,37820
380
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html,sha256=pag4lWopP2dNU8BgK5omN7StYQPW00NCNPELyL7cY0M,50700
381
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html,sha256=VV7Yp4EYHOduR-iWBcR5d-U4sTWvbdrqFPnsKN1PUBI,162692
382
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html,sha256=IpG_2UOXFXexJJlji5pt4ODtWLBKEuK8BNKX3yv8e5w,402941
383
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html,sha256=OLnQShN6ji-c1WKD4lEFzQSS4zju6leJSQkqJubfPsM,84500
384
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html,sha256=HCocombd_XztFKhKhCc4HX8TU1-glK6xbUIVdyMmucY,59672
385
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html,sha256=-djmNjAYG1vPb3gsQ75fYbwEfybHXF4a0GvkM5gCpJQ,25835
386
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html,sha256=xMCKwQObpQe4TkVHE-5DsWtsUyB1qME71qbR2BwP1z8,29843
346
+ solace_agent_mesh/assets/docs/assets/js/main.e82b32e6.js,sha256=_mvc8hCqbQlK77dC92CoEhR4QTGXEA5WcopmasQ_ZEg,482726
347
+ solace_agent_mesh/assets/docs/assets/js/main.e82b32e6.js.LICENSE.txt,sha256=3Jia5o7yaxOtbxuy9khs-thK96m55yCiPaUA-IkWh0A,2069
348
+ solace_agent_mesh/assets/docs/assets/js/runtime~main.aad1f874.js,sha256=qDBLLjxBN90UpRwGYRWd6VVZiD33GJ1aLUWzIaRJJ9Y,6233
349
+ solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html,sha256=PFcX42l92yCc1j9jAyMayAq6u4AiVhkEWEAQPRadROY,27163
350
+ solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html,sha256=SxwbtxfKNt82yHKimM8wDb4bfeyePA6rq8pWsXxYMGU,69622
351
+ solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html,sha256=HzZlOrEl4I2bAhZkWFZhO_OovnnxzlkK1muZyAMsiGY,84925
352
+ solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html,sha256=3uMh-nag_aU74pKPYinI9bNEv_kFxsZZi0Z2pJYuV8I,87760
353
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html,sha256=jPGkvETyMAsV50KL_EyIh41BxNDlYxzveR1573rKY2M,39841
354
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html,sha256=lM3J-jFm40o3yy0h6N3FpbjvzuSYH3TTemTC0QG1YsI,32769
355
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html,sha256=VOHrxrb_03c6aGus2D4bx-HqR7eso0_HMiJX7XmnQEc,50528
356
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html,sha256=nJ1D0vmqX9JmT5X08cH0u9d9bLRuOfWckoCPYxbTeHg,30147
357
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html,sha256=x2SdgA0wQpQTcCMxHiH58AdEz-QoStTsAq2mPN7Ck6M,23853
358
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html,sha256=bQlCXi21kumZFosOVd2MpDQAMSMAJSMLl1MgkzKlqSk,40029
359
+ solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html,sha256=-S-42FkXt9ZRuvwmrtUsWIz3K-fjaW3jue4N5sZG3ZE,45631
360
+ solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html,sha256=rFCgaKKaAwDL8DbtvvelrMy8alZaXrCFocaD-WtNZiM,42547
361
+ solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html,sha256=pSqaiG_JY8Fr1lPrSWAaNlNNx6qmWhEildjEdxW5et8,26091
362
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html,sha256=4YleY88jhNirMe-zM8vb1cW3SFjA42_pt07krqrCAkY,21734
363
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html,sha256=zRCWxlpqIHc8gCpIOMn8XHnQz4Wo0FRbIIyfQcoZiGE,56647
364
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html,sha256=U_MT1dydYW0BDpK3yZylgXWhHh4MnWdVmyTYuTfTx5k,32597
365
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html,sha256=MnvJ9IZF0_lpVpqvWenMR1WZ9O3BaZSJlfT_bXkf9X4,30497
366
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html,sha256=XYFwllwi_chW6GOB6xsp5CHGoxSPCKT94PqoX7U_8I4,42680
367
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html,sha256=t9-9NtSftLXXIPXwkCXR4EneMUG1iI6HP5bH4KxYS1c,75786
368
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html,sha256=PU8c9iL0J5fEaKH9Ezs35KoOauouGkgBFlWJ_uwl09k,383395
369
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html,sha256=EapTsGzMNIPEBLZMdLdwLIlEN_2iBwopEkJXvOPKeKc,69278
370
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html,sha256=EoBE-Bs_Gp4lU3ARUYvxpMisMC3vQRTTcTUz0Dnt5lQ,65048
371
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html,sha256=H1b0t95OJ-V4UBTrU_Kcz6BEmPUS2WvHQsJWSKGifk0,87666
372
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html,sha256=D2ogV1zRROiTPdHgT1Qg9eI93Qpg95h1NQUh53A3u48,80471
373
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html,sha256=0q_R5_7mGlo-mpFutmQbJsB1vkM5vJr9yMTGoCc3nVI,46767
374
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html,sha256=fqZ5NBcH4etyP19LOVu1fM2PtC3E0gkhnczL7OE2XQQ,49986
375
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html,sha256=nbgmJ6FKraLHFFUL5fwHTeiPvLC2qMZLl0k6UExP9h8,69371
376
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html,sha256=q1QvMn3pOP5XPOC8mMSILvM9xlyAdkd_9i3cnDh0ivg,44846
377
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html,sha256=OM1NVsO-4tNae8kDfk1Rx1PjHqoX7KIEhXUHqCSjQn0,34816
378
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html,sha256=Hh2nQ5Mh8gjWsSh0R__PDo1-mRFE-eun-uHEwuRqvcU,58253
379
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html,sha256=yfAxy-Viw_zK2dk--_6xrq59swI_aeAW2JEn0gfK6CE,37802
380
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html,sha256=arXvzDr3W3jAjGqKWCzWh_7IPR1Pz58ptzHQPunn6jU,50700
381
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html,sha256=aBtdy1-M-nkSkCO27F3by0pVciEtYPMx_gC49BUl1Lk,162910
382
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html,sha256=zwDA99DSsc8WClDSYGJUZ6PjtEG95FO6Z4bre4yP-4Y,402951
383
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html,sha256=p1EDHdyEC3dNhbcjMUmUdTVaBkLTrX-OjJUoCSsf04E,84524
384
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html,sha256=M1RKmuJnB3RlRGlmy2zR6sYajPtPsc6LUTvtIfl_t7E,59738
385
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html,sha256=g6lASmrqiO6K0H-F3632QjnkzOecw0yzDX85Ts1vKa8,25835
386
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html,sha256=gJwC6syTsK3nRN9QJVyKafpjt1iPzu-3RwxhhAWsgZE,29857
387
387
  solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png,sha256=e6MbZpxlY1xJ8U01zQogm8vWgokQqDfhsyPyNxtuS00,447393
388
388
  solace_agent_mesh/assets/docs/img/logo.png,sha256=TdXZ2wnkSkaFrGO-5fy2WcmjGXaGzwE29dM83raxoTg,45439
389
389
  solace_agent_mesh/assets/docs/img/sac-flows.png,sha256=868GgNJGPxn2G6c1Md_0umhg3xuAo7t6HEx8hOKbUJY,21098
@@ -418,8 +418,8 @@ solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico,sha25
418
418
  solace_agent_mesh/client/webui/frontend/static/assets/main-C03yrETa.css,sha256=8i4G_OLqxxoF2D7-4uCwQVUEMnkH7QcNTmHLeBIeUNo,119785
419
419
  solace_agent_mesh/client/webui/frontend/static/assets/main-DjoMeldu.js,sha256=6g8rNuOSNnVGvdIpQKo5CNLCYkpHTz0TI7IenLRwZVE,420893
420
420
  solace_agent_mesh/client/webui/frontend/static/assets/vendor-B0BEKoAR.js,sha256=e8CQistS6OBV4DeTlX098z7pxx7tBpuCTJrRyb7K0s4,340510
421
- solace_agent_mesh-1.3.2.dist-info/METADATA,sha256=Bc0DG65Ov5sHU-WX4Ijc1Blp6DYLueRNL3hbLOr3YYE,24785
422
- solace_agent_mesh-1.3.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
423
- solace_agent_mesh-1.3.2.dist-info/entry_points.txt,sha256=5pLVH8d8bd4sxUwBh7VTni8gTTSzTqGfY14zgdQZm1I,106
424
- solace_agent_mesh-1.3.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
425
- solace_agent_mesh-1.3.2.dist-info/RECORD,,
421
+ solace_agent_mesh-1.3.3.dist-info/METADATA,sha256=jKz6200rUVxz8d5SmAU5B9oJ4FOitSEPliFusJkJQ5g,24785
422
+ solace_agent_mesh-1.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
423
+ solace_agent_mesh-1.3.3.dist-info/entry_points.txt,sha256=5pLVH8d8bd4sxUwBh7VTni8gTTSzTqGfY14zgdQZm1I,106
424
+ solace_agent_mesh-1.3.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
425
+ solace_agent_mesh-1.3.3.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[1430],{7977:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"documentation/tutorials/mcp-integration","title":"MCP Integration","description":"This tutorial walks you through the process of integrating a Model Context Protocol (MCP) Server into Solace Agent Mesh.","source":"@site/docs/documentation/tutorials/mcp-integration.md","sourceDirName":"documentation/tutorials","slug":"/documentation/tutorials/mcp-integration","permalink":"/solace-agent-mesh/docs/documentation/tutorials/mcp-integration","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/tutorials/mcp-integration.md","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"MCP Integration","sidebar_position":10},"sidebar":"docSidebar","previous":{"title":"Build Your Own Agent","permalink":"/solace-agent-mesh/docs/documentation/tutorials/custom-agent"},"next":{"title":"REST Gateway","permalink":"/solace-agent-mesh/docs/documentation/tutorials/rest-gateway"}}');var s=t(4848),i=t(8453);const r={title:"MCP Integration",sidebar_position:10},a="MCP Integration",l={},c=[{value:"Setting Up the Environment",id:"setting-up-the-environment",level:2},{value:"Adding MCP Tools to an Agent",id:"adding-mcp-tools-to-an-agent",level:2},{value:"1. Stdio Connection (Local MCP Servers)",id:"1-stdio-connection-local-mcp-servers",level:3},{value:"2. SSE Connection (Remote MCP Servers)",id:"2-sse-connection-remote-mcp-servers",level:3},{value:"3. Docker Connection (Containerized MCP Servers)",id:"3-docker-connection-containerized-mcp-servers",level:3},{value:"Complete Example: Filesystem MCP Agent",id:"complete-example-filesystem-mcp-agent",level:2},{value:"Configuration Options",id:"configuration-options",level:2},{value:"Tool-Specific Configuration",id:"tool-specific-configuration",level:3},{value:"Environment Variables",id:"environment-variables",level:3},{value:"Running Your MCP-Enabled Agent",id:"running-your-mcp-enabled-agent",level:2},{value:"How MCP Integration Works",id:"how-mcp-integration-works",level:2},{value:"Testing Your MCP Integration",id:"testing-your-mcp-integration",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"mcp-integration",children:"MCP Integration"})}),"\n",(0,s.jsx)(n.p,{children:"This tutorial walks you through the process of integrating a Model Context Protocol (MCP) Server into Solace Agent Mesh."}),"\n",(0,s.jsx)(n.admonition,{title:"Learn about agents",type:"info",children:(0,s.jsxs)(n.p,{children:["You should have an understanding of agents in Solace Agent Mesh. For more information, see ",(0,s.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/concepts/agents",children:"Agents"}),"."]})}),"\n",(0,s.jsxs)(n.p,{children:["Solace Agent Mesh now provides ",(0,s.jsx)(n.strong,{children:"native MCP support"})," through the framework itself. No additional plugins are required - you can connect to MCP servers directly by configuring your agent YAML file with MCP tools."]}),"\n",(0,s.jsx)(n.p,{children:"MCP integration allows your agents to connect to external MCP servers and use their tools, resources, and prompts seamlessly within the A2A protocol ecosystem."}),"\n",(0,s.jsx)(n.h2,{id:"setting-up-the-environment",children:"Setting Up the Environment"}),"\n",(0,s.jsxs)(n.p,{children:["You must ",(0,s.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/installation",children:"install Solace Agent Mesh and SAM CLI"}),", and then ",(0,s.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/quick-start",children:"create a new Solace Agent Mesh project"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"For this tutorial using the filesystem MCP server, you also need Node.js and NPM installed."}),"\n",(0,s.jsx)(n.h2,{id:"adding-mcp-tools-to-an-agent",children:"Adding MCP Tools to an Agent"}),"\n",(0,s.jsx)(n.p,{children:"MCP integration is accomplished by adding MCP tools directly to your agent configuration. There are three main connection types supported:"}),"\n",(0,s.jsx)(n.h3,{id:"1-stdio-connection-local-mcp-servers",children:"1. Stdio Connection (Local MCP Servers)"}),"\n",(0,s.jsx)(n.p,{children:"This is the most common method for connecting to MCP servers that run as local processes:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tools:\n - tool_type: mcp\n connection_params:\n type: stdio\n command: "npx"\n args:\n - "-y"\n - "@modelcontextprotocol/server-filesystem"\n - "/tmp/samv2"\n'})}),"\n",(0,s.jsx)(n.h3,{id:"2-sse-connection-remote-mcp-servers",children:"2. SSE Connection (Remote MCP Servers)"}),"\n",(0,s.jsx)(n.p,{children:"For connecting to remote MCP servers using Server-Sent Events:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tools:\n - tool_type: mcp\n connection_params:\n type: sse\n url: "https://mcp.example.com/v1/sse"\n headers:\n Authorization: "Bearer ${MCP_AUTH_TOKEN}"\n'})}),"\n",(0,s.jsx)(n.h3,{id:"3-docker-connection-containerized-mcp-servers",children:"3. Docker Connection (Containerized MCP Servers)"}),"\n",(0,s.jsx)(n.p,{children:"For running MCP servers in Docker containers:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tools:\n - tool_type: mcp\n connection_params:\n type: stdio\n command: "docker"\n args:\n - "run"\n - "-i"\n - "--rm"\n - "-e"\n - "API_KEY"\n - "mcp-server-image:latest"\n environment_variables:\n API_KEY: ${MY_API_KEY}\n'})}),"\n",(0,s.jsx)(n.h2,{id:"complete-example-filesystem-mcp-agent",children:"Complete Example: Filesystem MCP Agent"}),"\n",(0,s.jsx)(n.p,{children:"Here is a complete example of an agent that uses the filesystem MCP server:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'# configs/agents/filesystem_agent.yaml\nlog:\n stdout_log_level: INFO\n log_file_level: DEBUG\n log_file: filesystem_agent.log\n\n!include ../shared_config.yaml\n\napps:\n - name: filesystem_mcp_agent_app\n app_base_path: .\n app_module: solace_agent_mesh.agent.sac.app\n broker:\n <<: *broker_connection\n\n app_config:\n namespace: ${NAMESPACE}\n supports_streaming: true\n agent_name: "FileSystemAgent"\n display_name: "File System"\n model: *general_model\n \n instruction: |\n You can interact with the local filesystem using MCP tools.\n Use the available tools to read, write, and manage files as requested.\n\n tools:\n - tool_type: mcp\n connection_params:\n type: stdio\n command: "npx"\n args:\n - "-y"\n - "@modelcontextprotocol/server-filesystem"\n - "/tmp/samv2"\n - tool_type: builtin-group\n group_name: "artifact_management"\n\n session_service: *default_session_service\n artifact_service: *default_artifact_service\n\n # Agent discovery and communication\n agent_card:\n description: "An agent that interacts with the local filesystem via MCP."\n defaultInputModes: ["text"]\n defaultOutputModes: ["text", "file"]\n skills: []\n\n agent_card_publishing: { interval_seconds: 10 }\n agent_discovery: { enabled: true }\n inter_agent_communication:\n allow_list: ["*"]\n request_timeout_seconds: 30\n'})}),"\n",(0,s.jsx)(n.h2,{id:"configuration-options",children:"Configuration Options"}),"\n",(0,s.jsx)(n.h3,{id:"tool-specific-configuration",children:"Tool-Specific Configuration"}),"\n",(0,s.jsx)(n.p,{children:"You can limit which tools from an MCP server are available by specifying a specific tool name:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tools:\n - tool_type: mcp\n tool_name: "read_file" # Only expose the read_file tool\n connection_params:\n type: stdio\n command: "npx"\n args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp/samv2"]\n'})}),"\n",(0,s.jsx)(n.h3,{id:"environment-variables",children:"Environment Variables"}),"\n",(0,s.jsxs)(n.p,{children:["Pass environment variables to MCP servers using the ",(0,s.jsx)(n.code,{children:"environment_variables"})," block:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tools:\n - tool_type: mcp\n connection_params:\n type: stdio\n command: "my-mcp-server"\n environment_variables:\n API_KEY: ${MY_API_KEY}\n DEBUG_MODE: "true"\n CONFIG_PATH: "/etc/myconfig"\n'})}),"\n",(0,s.jsx)(n.h2,{id:"running-your-mcp-enabled-agent",children:"Running Your MCP-Enabled Agent"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Create the working directory"})," (for filesystem example):"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:'mkdir -p /tmp/samv2\necho "Hello MCP!" > /tmp/samv2/test.txt\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Set required environment variables"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:'export NAMESPACE="myorg/dev"\nexport SOLACE_BROKER_URL="ws://localhost:8080"\n# ... other Solace broker settings\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Run the agent"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"sam run configs/agents/filesystem_agent.yaml\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"how-mcp-integration-works",children:"How MCP Integration Works"}),"\n",(0,s.jsx)(n.p,{children:"When your agent starts:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Connection"}),": The framework establishes a connection to the MCP server using the specified connection parameters"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Discovery"}),": It queries the MCP server for available tools, resources, and prompts"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Registration"}),": Available capabilities are registered as agent tools."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Communication"}),": The agent can use these tools through the standard A2A protocol, with the framework handling MCP protocol translation"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"testing-your-mcp-integration",children:"Testing Your MCP Integration"}),"\n",(0,s.jsx)(n.p,{children:"Once your MCP-enabled agent is running, you can test it through any gateway in your project (such as the Web UI gateway):"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Access your gateway"})," (for example, Web UI at ",(0,s.jsx)(n.code,{children:"http://localhost:8000"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Send a request"})," to test the MCP functionality:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"List the files in the directory"'}),"\n",(0,s.jsx)(n.li,{children:'"Create a simple text file with some content"'}),"\n",(0,s.jsx)(n.li,{children:'"Read the contents of test.txt"'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The agent uses the MCP tools to interact with the filesystem and provide responses through the A2A protocol."})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var o=t(6540);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[1462],{3519:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"documentation/user-guide/builtin-tools/data-analysis-tools","title":"Data Analysis Tools","description":"Solace Agent Mesh (SAM) includes a suite of optional built-in tools that enable agents to perform data analysis tasks directly on artifacts. These tools provide functionality for SQL querying, JQ transformations, and Plotly chart generation.","source":"@site/docs/documentation/user-guide/builtin-tools/data-analysis-tools.md","sourceDirName":"documentation/user-guide/builtin-tools","slug":"/documentation/user-guide/builtin-tools/data-analysis-tools","permalink":"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/data-analysis-tools","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools.md","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Data Analysis Tools","sidebar_position":20},"sidebar":"docSidebar","previous":{"title":"Artifact Management Tools","permalink":"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/artifact-management"},"next":{"title":"Audio Tools","permalink":"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/audio-tools"}}');var s=t(4848),r=t(8453);const a={title:"Data Analysis Tools",sidebar_position:20},o="Data Analysis Tools",l={},d=[{value:"Setup and Configuration",id:"setup-and-configuration",level:2},{value:"Available Tools",id:"available-tools",level:2},{value:"<code>query_data_with_sql</code>",id:"query_data_with_sql",level:3},{value:"<code>create_sqlite_db</code>",id:"create_sqlite_db",level:3},{value:"<code>transform_data_with_jq</code>",id:"transform_data_with_jq",level:3},{value:"<code>create_chart_from_plotly_config</code>",id:"create_chart_from_plotly_config",level:3},{value:"Example Workflow: Querying a Large CSV",id:"example-workflow-querying-a-large-csv",level:2},{value:"Technical Considerations",id:"technical-considerations",level:2},{value:"Result Handling",id:"result-handling",level:3},{value:"Security",id:"security",level:3}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"data-analysis-tools",children:"Data Analysis Tools"})}),"\n",(0,s.jsx)(n.p,{children:"Solace Agent Mesh (SAM) includes a suite of optional built-in tools that enable agents to perform data analysis tasks directly on artifacts. These tools provide functionality for SQL querying, JQ transformations, and Plotly chart generation."}),"\n",(0,s.jsx)(n.h2,{id:"setup-and-configuration",children:"Setup and Configuration"}),"\n",(0,s.jsxs)(n.p,{children:["Enable the data analysis tool group in the agent's ",(0,s.jsx)(n.code,{children:"app_config.yml"})," file."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'# In your agent\'s app_config:\ntools:\n - tool_type: builtin-group\n group_name: "data_analysis"\n\n# Optional: Configure tool behavior\ndata_tools_config:\n sqlite_memory_threshold_mb: 100\n max_result_preview_rows: 50\n max_result_preview_bytes: 4096\n'})}),"\n",(0,s.jsx)(n.h2,{id:"available-tools",children:"Available Tools"}),"\n",(0,s.jsx)(n.h3,{id:"query_data_with_sql",children:(0,s.jsx)(n.code,{children:"query_data_with_sql"})}),"\n",(0,s.jsx)(n.admonition,{title:"Enterprise Only",type:"info",children:(0,s.jsx)(n.p,{children:"This feature is available in the Enterprise Edition only."})}),"\n",(0,s.jsx)(n.p,{children:"Executes a SQL query against data stored in a CSV or SQLite artifact."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Parameters"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"input_filename"})," (str): The filename of the input artifact (for example, ",(0,s.jsx)(n.code,{children:"'data.csv'"}),", ",(0,s.jsx)(n.code,{children:"'mydatabase.sqlite'"}),"). Supports versioning (for example, ",(0,s.jsx)(n.code,{children:"'data.csv:2'"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"sql_query"})," (str): The SQL query string to execute."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"output_format"})," (str, optional): The desired format for the output artifact (",(0,s.jsx)(n.code,{children:"'csv'"})," or ",(0,s.jsx)(n.code,{children:"'json'"}),"). Defaults to ",(0,s.jsx)(n.code,{children:"'csv'"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Behavior"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"For CSV Input"}),": The tool loads the CSV data into a temporary in-memory SQLite database table named ",(0,s.jsx)(n.code,{children:"data"})," and executes the query against it."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"For SQLite Input"}),": The tool connects directly to the specified SQLite database artifact in ",(0,s.jsx)(n.strong,{children:"read-only mode"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Returns"}),": A dictionary containing the execution status, a preview of the query result, and the ",(0,s.jsx)(n.code,{children:"output_filename"})," where the full result set is stored."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"create_sqlite_db",children:(0,s.jsx)(n.code,{children:"create_sqlite_db"})}),"\n",(0,s.jsx)(n.admonition,{title:"Enterprise Only",type:"info",children:(0,s.jsx)(n.p,{children:"This feature is available in the Enterprise Edition only."})}),"\n",(0,s.jsx)(n.p,{children:"Converts a CSV or JSON artifact into a persistent SQLite database artifact. This is the recommended approach for executing multiple queries on the same dataset, as it avoids repeated parsing of the source file."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Parameters"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"input_filename"})," (str): The filename of the input CSV or JSON artifact."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"output_db_filename"})," (str): The desired filename for the output SQLite database artifact (for example, ",(0,s.jsx)(n.code,{children:"'queryable_dataset.sqlite'"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"table_name"})," (str, optional): The name of the table to be created within the SQLite database. Defaults to ",(0,s.jsx)(n.code,{children:"'data'"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Returns"}),": A dictionary confirming the successful creation of the database artifact and providing its ",(0,s.jsx)(n.code,{children:"output_filename"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"transform_data_with_jq",children:(0,s.jsx)(n.code,{children:"transform_data_with_jq"})}),"\n",(0,s.jsx)(n.admonition,{title:"Enterprise Only",type:"info",children:(0,s.jsx)(n.p,{children:"This feature is available in the Enterprise Edition only."})}),"\n",(0,s.jsx)(n.p,{children:"Applies a JQ expression to transform data from a JSON, YAML, or CSV artifact."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Parameters"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"input_filename"})," (str): The filename of the input artifact."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"jq_expression"})," (str): The JQ filter or transformation expression string (for example, ",(0,s.jsx)(n.code,{children:"'.users[] | {name, id}'"}),")."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Returns"}),": A dictionary containing the execution status, a preview of the transformed data, and the ",(0,s.jsx)(n.code,{children:"output_filename"})," where the full JSON result is stored."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"create_chart_from_plotly_config",children:(0,s.jsx)(n.code,{children:"create_chart_from_plotly_config"})}),"\n",(0,s.jsx)(n.p,{children:"Generates a static chart image (for example, PNG, JPG, SVG) from a Plotly configuration provided as a string."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Parameters"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"config_content"})," (str): A JSON or YAML formatted string representing the Plotly ",(0,s.jsx)(n.code,{children:"figure"})," dictionary."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"config_format"})," (str): Specifies whether ",(0,s.jsx)(n.code,{children:"config_content"})," is ",(0,s.jsx)(n.code,{children:"'json'"})," or ",(0,s.jsx)(n.code,{children:"'yaml'"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"output_filename"})," (str): The desired filename for the output image artifact (for example, ",(0,s.jsx)(n.code,{children:"'sales_chart.png'"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"output_format"})," (str, optional): The desired image format (",(0,s.jsx)(n.code,{children:"'png'"}),", ",(0,s.jsx)(n.code,{children:"'jpeg'"}),", ",(0,s.jsx)(n.code,{children:"'svg'"}),", etc.). Defaults to ",(0,s.jsx)(n.code,{children:"'png'"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Returns"}),": A dictionary confirming the chart's creation and providing its ",(0,s.jsx)(n.code,{children:"output_filename"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"example-workflow-querying-a-large-csv",children:"Example Workflow: Querying a Large CSV"}),"\n",(0,s.jsx)(n.p,{children:"The following workflow demonstrates an efficient method for analyzing a large CSV file:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"User Request"}),': "I need to run several queries on ',(0,s.jsx)(n.code,{children:"large_data.csv"}),'."']}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Agent Strategy"}),": The agent determines that converting the CSV to a SQLite database is more performant for subsequent queries."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Agent Call 1"}),": The agent calls ",(0,s.jsx)(n.code,{children:"create_sqlite_db"})," to convert ",(0,s.jsx)(n.code,{children:"large_data.csv"})," into a new artifact, ",(0,s.jsx)(n.code,{children:"queryable_data.sqlite"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Agent Response"}),': "The data has been prepared for querying. What is your first question?"']}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"User Request"}),": \"Find all records where the category is 'Sales'.\""]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Agent Call 2"}),": The agent calls ",(0,s.jsx)(n.code,{children:"query_data_with_sql"}),", targeting the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"queryable_data.sqlite"})})," artifact."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Agent Response"}),": The agent provides the results of the query."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"User Request"}),": \"Now, find the average amount for the 'Marketing' category.\""]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Agent Call 3"}),": The agent calls ",(0,s.jsx)(n.code,{children:"query_data_with_sql"})," again on the ",(0,s.jsxs)(n.strong,{children:["same ",(0,s.jsx)(n.code,{children:"queryable_data.sqlite"})," artifact"]}),", avoiding the overhead of reprocessing the original CSV file."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"technical-considerations",children:"Technical Considerations"}),"\n",(0,s.jsx)(n.h3,{id:"result-handling",children:"Result Handling"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Previews"}),": For ",(0,s.jsx)(n.code,{children:"query_data_with_sql"})," and ",(0,s.jsx)(n.code,{children:"transform_data_with_jq"}),", the tools return a truncated preview of the result directly to the LLM for immediate context."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Full Results"}),": The complete, untruncated result sets are always saved as new artifacts. The LLM is provided with the filename and version of these artifacts."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Accessing Full Results"}),": To utilize the full results, the agent can employ file management tools (",(0,s.jsx)(n.code,{children:"load_artifact"}),") or ",(0,s.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds",children:"Dynamic Embeds"})," (",(0,s.jsx)(n.code,{children:"\xabartifact_content:...\xbb"}),")."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"security",children:"Security"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"SQL Execution"}),": Queries against existing SQLite artifacts are performed in ",(0,s.jsx)(n.strong,{children:"read-only mode"})," to prevent data modification. Queries against temporary databases generated from CSVs are isolated."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"JQ Execution"}),": JQ expressions are executed within a sandboxed Python library, not via shell execution."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Resource Usage"}),": Complex queries or transformations can be resource-intensive. Monitor performance and resource consumption accordingly."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(6540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[4777],{3112:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"documentation/user-guide/builtin-tools/audio-tools","title":"Audio Tools","description":"This guide provides technical documentation for the text-to-speech (TTS) tools available in Solace Agent Mesh (SAM).","source":"@site/docs/documentation/user-guide/builtin-tools/audio-tools.md","sourceDirName":"documentation/user-guide/builtin-tools","slug":"/documentation/user-guide/builtin-tools/audio-tools","permalink":"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/audio-tools","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/user-guide/builtin-tools/audio-tools.md","tags":[],"version":"current","sidebarPosition":30,"frontMatter":{"title":"Audio Tools","sidebar_position":30},"sidebar":"docSidebar","previous":{"title":"Data Analysis Tools","permalink":"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/data-analysis-tools"},"next":{"title":"Dynamic Embeds","permalink":"/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds"}}');var s=i(4848),o=i(8453);const l={title:"Audio Tools",sidebar_position:30},r="Using Text-to-Speech (TTS) Tools",c={},d=[{value:"Overview",id:"overview",level:2},{value:"Setup and Configuration",id:"setup-and-configuration",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Basic Configuration",id:"basic-configuration",level:3},{value:"Advanced Configuration",id:"advanced-configuration",level:2},{value:"<code>text_to_speech</code> Configuration",id:"text_to_speech-configuration",level:3},{value:"<code>multi_speaker_text_to_speech</code> Configuration",id:"multi_speaker_text_to_speech-configuration",level:3},{value:"Features",id:"features",level:2},{value:"Intelligent Tone Selection",id:"intelligent-tone-selection",level:3},{value:"Multi-Language Support",id:"multi-language-support",level:3},{value:"Usage Examples",id:"usage-examples",level:2},{value:"Single-Voice Text-to-Speech (<code>text_to_speech</code>)",id:"single-voice-text-to-speech-text_to_speech",level:3},{value:"Multi-Speaker Text-to-Speech (<code>multi_speaker_text_to_speech</code>)",id:"multi-speaker-text-to-speech-multi_speaker_text_to_speech",level:3},{value:"Tool Reference",id:"tool-reference",level:2},{value:"<code>text_to_speech</code>",id:"text_to_speech",level:3},{value:"<code>multi_speaker_text_to_speech</code>",id:"multi_speaker_text_to_speech",level:3},{value:"Output and Metadata",id:"output-and-metadata",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function a(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"using-text-to-speech-tts-tools",children:"Using Text-to-Speech (TTS) Tools"})}),"\n",(0,s.jsx)(n.p,{children:"This guide provides technical documentation for the text-to-speech (TTS) tools available in Solace Agent Mesh (SAM)."}),"\n",(0,s.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"audio"})," tool group provides two primary TTS tools for generating high-quality audio artifacts:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"text_to_speech"})}),": Converts a string of text to speech using a single voice, featuring intelligent tone selection."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"multi_speaker_text_to_speech"})}),": Converts a conversational script, delineated by speaker, into a multi-speaker audio file."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"setup-and-configuration",children:"Setup and Configuration"}),"\n",(0,s.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"API Key"}),": A valid Google Gemini API key with access to the TTS model is required."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dependencies"}),": The ",(0,s.jsx)(n.code,{children:"pydub"})," library is necessary for audio processing and format conversion. It can be installed via ",(0,s.jsx)(n.code,{children:"pip install pydub"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"basic-configuration",children:"Basic Configuration"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Environment Variable"}),": The Gemini API key must be set as an environment variable.","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'export GEMINI_API_KEY="your_gemini_api_key_here"\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Enablement"}),": The ",(0,s.jsx)(n.code,{children:"audio"})," tool group must be enabled in the agent's ",(0,s.jsx)(n.code,{children:"app_config.yml"}),".","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tools:\n - tool_type: builtin-group\n group_name: "audio"\n'})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"advanced-configuration",children:"Advanced Configuration"}),"\n",(0,s.jsxs)(n.p,{children:["You can exercise more granular control over the TTS tools by providing a ",(0,s.jsx)(n.code,{children:"tool_config"})," block for each tool in your ",(0,s.jsx)(n.code,{children:"app_config.yml"}),"."]}),"\n",(0,s.jsxs)(n.h3,{id:"text_to_speech-configuration",children:[(0,s.jsx)(n.code,{children:"text_to_speech"})," Configuration"]}),"\n",(0,s.jsx)(n.p,{children:"This example shows how to set a default voice and define the mapping between tones and specific voice models."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'- tool_type: builtin\n tool_name: "text_to_speech"\n tool_config:\n gemini_api_key: ${GEMINI_API_KEY}\n model: "gemini-2.5-flash-preview-tts"\n voice_name: "Kore" # Default voice if no tone is matched\n language: "en-US" # Default language\n output_format: "mp3"\n # Voice selection by tone mapping\n voice_tone_mapping:\n bright: ["Zephyr", "Autonoe"]\n upbeat: ["Puck", "Laomedeia"]\n informative: ["Charon", "Rasalgethi"]\n firm: ["Kore", "Orus", "Alnilam"]\n friendly: ["Achird"]\n casual: ["Zubenelgenubi"]\n warm: ["Sulafar"]\n'})}),"\n",(0,s.jsxs)(n.h3,{id:"multi_speaker_text_to_speech-configuration",children:[(0,s.jsx)(n.code,{children:"multi_speaker_text_to_speech"})," Configuration"]}),"\n",(0,s.jsx)(n.p,{children:"This example defines default voice configurations for up to five speakers."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'- tool_type: builtin\n tool_name: "multi_speaker_text_to_speech"\n tool_config:\n gemini_api_key: ${GEMINI_API_KEY}\n model: "gemini-2.5-flash-preview-tts"\n language: "en-US"\n output_format: "mp3"\n # Default speaker voice configurations\n default_speakers:\n - { name: "Speaker1", voice: "Kore", tone: "firm" }\n - { name: "Speaker2", voice: "Puck", tone: "upbeat" }\n - { name: "Speaker3", voice: "Charon", tone: "informative" }\n - { name: "Speaker4", voice: "Achird", tone: "friendly" }\n - { name: "Speaker5", voice: "Sulafar", tone: "warm" }\n # The voice_tone_mapping can also be included here\n'})}),"\n",(0,s.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,s.jsx)(n.h3,{id:"intelligent-tone-selection",children:"Intelligent Tone Selection"}),"\n",(0,s.jsx)(n.p,{children:"The system supports tone-based voice selection, allowing for dynamic voice choice based on desired emotional or stylistic output, rather than explicit voice names."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Available Tones"}),":\n",(0,s.jsx)(n.code,{children:"bright"}),", ",(0,s.jsx)(n.code,{children:"upbeat"}),", ",(0,s.jsx)(n.code,{children:"informative"}),", ",(0,s.jsx)(n.code,{children:"firm"}),", ",(0,s.jsx)(n.code,{children:"excitable"}),", ",(0,s.jsx)(n.code,{children:"youthful"}),", ",(0,s.jsx)(n.code,{children:"breezy"}),", ",(0,s.jsx)(n.code,{children:"easy-going"}),", ",(0,s.jsx)(n.code,{children:"breathy"}),", ",(0,s.jsx)(n.code,{children:"clear"}),", ",(0,s.jsx)(n.code,{children:"smooth"}),", ",(0,s.jsx)(n.code,{children:"gravelly"}),", ",(0,s.jsx)(n.code,{children:"soft"}),", ",(0,s.jsx)(n.code,{children:"even"}),", ",(0,s.jsx)(n.code,{children:"mature"}),", ",(0,s.jsx)(n.code,{children:"forward"}),", ",(0,s.jsx)(n.code,{children:"friendly"}),", ",(0,s.jsx)(n.code,{children:"casual"}),", ",(0,s.jsx)(n.code,{children:"gentle"}),", ",(0,s.jsx)(n.code,{children:"lively"}),", ",(0,s.jsx)(n.code,{children:"knowledgeable"}),", ",(0,s.jsx)(n.code,{children:"warm"})]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Tone Aliases"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"professional"})," \u2192 ",(0,s.jsx)(n.code,{children:"firm"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cheerful"})," \u2192 ",(0,s.jsx)(n.code,{children:"upbeat"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"calm"})," \u2192 ",(0,s.jsx)(n.code,{children:"soft"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"conversational"})," \u2192 ",(0,s.jsx)(n.code,{children:"casual"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"multi-language-support",children:"Multi-Language Support"}),"\n",(0,s.jsxs)(n.p,{children:["The tools support over 25 languages, specified via BCP-47 language codes (for example, ",(0,s.jsx)(n.code,{children:"en-US"}),", ",(0,s.jsx)(n.code,{children:"fr-FR"}),", ",(0,s.jsx)(n.code,{children:"es-US"}),", ",(0,s.jsx)(n.code,{children:"ja-JP"}),")."]}),"\n",(0,s.jsx)(n.h2,{id:"usage-examples",children:"Usage Examples"}),"\n",(0,s.jsxs)(n.h3,{id:"single-voice-text-to-speech-text_to_speech",children:["Single-Voice Text-to-Speech (",(0,s.jsx)(n.code,{children:"text_to_speech"}),")"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Basic Usage"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'Convert the following text to speech: "Welcome to the technical briefing on artificial intelligence."\n'})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"With Tone Selection"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'Convert this text to speech with a professional tone: "Thank you for joining today\'s technical review."\n'})}),"\n",(0,s.jsxs)(n.h3,{id:"multi-speaker-text-to-speech-multi_speaker_text_to_speech",children:["Multi-Speaker Text-to-Speech (",(0,s.jsx)(n.code,{children:"multi_speaker_text_to_speech"}),")"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Basic Conversation"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Convert this conversation to speech:\nSpeaker1: Welcome to the podcast.\nSpeaker2: Thank you for having me.\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"With Custom Speaker Tones"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Convert this conversation using specific tones for each speaker:\n- Speaker1 should sound professional\n- Speaker2 should sound friendly\n\nConversation:\nSpeaker1: Good morning, this is the daily security briefing.\nSpeaker2: Hi everyone, let's review the agenda for today's session.\n"})}),"\n",(0,s.jsx)(n.h2,{id:"tool-reference",children:"Tool Reference"}),"\n",(0,s.jsx)(n.h3,{id:"text_to_speech",children:(0,s.jsx)(n.code,{children:"text_to_speech"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Parameter"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"text"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"The text to be synthesized."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"output_filename"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"(Optional) A custom MP3 filename."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"voice_name"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"(Optional) A specific voice name to use."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tone"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"(Optional) The desired voice tone."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"language"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"(Optional) The BCP-47 language code."})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"multi_speaker_text_to_speech",children:(0,s.jsx)(n.code,{children:"multi_speaker_text_to_speech"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Parameter"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"conversation_text"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsxs)(n.td,{children:["A string of text with speaker labels (for example, ",(0,s.jsx)(n.code,{children:"S1: ..."}),")."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"output_filename"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"(Optional) A custom MP3 filename."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"speaker_configs"})}),(0,s.jsx)(n.td,{children:"array"}),(0,s.jsx)(n.td,{children:"(Optional) An array to configure tones for specific speakers."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"language"})}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"(Optional) The BCP-47 language code."})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"output-and-metadata",children:"Output and Metadata"}),"\n",(0,s.jsx)(n.p,{children:"Both tools generate an MP3 audio artifact that includes a rich set of metadata:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The source text (or a truncated version for long inputs)"}),"\n",(0,s.jsx)(n.li,{children:"The voice(s) and language used for synthesis"}),"\n",(0,s.jsx)(n.li,{children:"The generation timestamp and the specific tool invoked"}),"\n",(0,s.jsx)(n.li,{children:"The requested tone and any speaker-specific configurations"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"Error: GEMINI_API_KEY is required"})}),": This indicates that the ",(0,s.jsx)(n.code,{children:"GEMINI_API_KEY"})," environment variable has not been set correctly."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"Warning: Unknown tone 'xyz'"})}),": The specified tone is not recognized. Refer to the list of supported tones. The system will fall back to a default voice."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"Error: Failed to convert WAV to MP3"})}),": This typically indicates that ",(0,s.jsx)(n.code,{children:"pydub"})," is not installed or that the underlying system is missing necessary audio codecs (for example, ",(0,s.jsx)(n.code,{children:"ffmpeg"}),")."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>r});var t=i(6540);const s={},o=t.createContext(s);function l(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[2037],{6317:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>g,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"documentation/deployment/debugging","title":"Debugging","description":"Debugging issues in Solace Agent Mesh starts with identifying the problem. You can monitor your system to debug it more effectively. For more information, see Observability.","source":"@site/docs/documentation/deployment/debugging.md","sourceDirName":"documentation/deployment","slug":"/documentation/deployment/debugging","permalink":"/solace-agent-mesh/docs/documentation/deployment/debugging","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/deployment/debugging.md","tags":[],"version":"current","sidebarPosition":30,"frontMatter":{"title":"Debugging","sidebar_position":30},"sidebar":"docSidebar","previous":{"title":"Observability","permalink":"/solace-agent-mesh/docs/documentation/deployment/observability"},"next":{"title":"Build Your Own Agent","permalink":"/solace-agent-mesh/docs/documentation/tutorials/custom-agent"}}');var o=s(4848),t=s(8453);const r={title:"Debugging",sidebar_position:30},l="Debugging",a={},d=[{value:"Isolate Components",id:"isolate-components",level:2},{value:"Examine STIM Files",id:"examine-stim-files",level:2},{value:"Monitor Broker Activity",id:"monitor-broker-activity",level:2},{value:"Debug Mode",id:"debug-mode",level:2},{value:"Debugging in VSCode",id:"debugging-in-vscode",level:3},{value:"Invoke the Agent Directly",id:"invoke-the-agent-directly",level:2},{value:"Tools for Sending Messages",id:"tools-for-sending-messages",level:4},{value:"Message Format",id:"message-format",level:4},{value:"System Logs",id:"system-logs",level:2},{value:"Configuring Log Rotation",id:"configuring-log-rotation",level:3}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"debugging",children:"Debugging"})}),"\n",(0,o.jsxs)(n.p,{children:["Debugging issues in Solace Agent Mesh starts with identifying the problem. You can monitor your system to debug it more effectively. For more information, see ",(0,o.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/deployment/observability",children:"Observability"}),".\nThe following sections provide common debugging approaches to help you diagnose and resolve issues."]}),"\n",(0,o.jsx)(n.h2,{id:"isolate-components",children:"Isolate Components"}),"\n",(0,o.jsxs)(n.p,{children:["Running only the necessary components in isolation can help pinpoint issues. The ",(0,o.jsx)(n.code,{children:"run"})," Solace Agent Mesh (SAM) CLI command allows you to specify which files to run."]}),"\n",(0,o.jsx)(n.p,{children:"For example:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"sam run configs/agents/my_tool_1.yaml configs/agents/my_tool_2.yaml\n"})}),"\n",(0,o.jsxs)(n.p,{children:["This command runs only the agents defined in ",(0,o.jsx)(n.code,{children:"my_tool_1.yaml"})," and ",(0,o.jsx)(n.code,{children:"my_tool_2.yaml"}),", reducing noise from unrelated components."]}),"\n",(0,o.jsx)(n.h2,{id:"examine-stim-files",children:"Examine STIM Files"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/deployment/observability#stimulus-logs",children:"STIM files"})," provide detailed traces of stimulus life cycles. If you have access to the storage location, you can inspect them to analyze message flows."]}),"\n",(0,o.jsxs)(n.p,{children:["Each ",(0,o.jsx)(n.code,{children:".stim"})," file contains all broker events related to a single stimulus, from the initial request to the final response."]}),"\n",(0,o.jsx)(n.h2,{id:"monitor-broker-activity",children:"Monitor Broker Activity"}),"\n",(0,o.jsxs)(n.p,{children:["For insights into message flows and event interactions, see ",(0,o.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/deployment/observability#broker-observability",children:"Broker Observability"}),"."]}),"\n",(0,o.jsx)(n.h2,{id:"debug-mode",children:"Debug Mode"}),"\n",(0,o.jsx)(n.p,{children:"Because Solace Agent Mesh is a Python-based framework, you can run it in debug mode using an IDE with breakpoints."}),"\n",(0,o.jsx)(n.h3,{id:"debugging-in-vscode",children:"Debugging in VSCode"}),"\n",(0,o.jsxs)(n.p,{children:["If you're using VSCode, configure debugging in ",(0,o.jsx)(n.code,{children:".vscode/launch.json"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:'{\n "version": "0.2.0",\n "configurations": [\n {\n "name": "sam-debug",\n "type": "debugpy",\n "request": "launch",\n "module": "solace_agent_mesh.cli.main",\n "console": "integratedTerminal",\n "envFile": "${workspaceFolder}/.env",\n "args": [\n "run",\n "configs/agents/main_orchestrator.yaml",\n "configs/gateways/webui.yaml"\n // Add any other components you want to run here\n ],\n "justMyCode": false\n }\n ]\n}\n'})}),"\n",(0,o.jsx)(n.p,{children:"To start debugging:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Open the ",(0,o.jsx)(n.strong,{children:"RUN AND DEBUG"})," panel on the left sidebar."]}),"\n",(0,o.jsxs)(n.li,{children:["Select ",(0,o.jsx)(n.code,{children:"sam-debug"})," from the dropdown."]}),"\n",(0,o.jsxs)(n.li,{children:["Click the ",(0,o.jsx)(n.strong,{children:"Play"})," to start in debug mode."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Set breakpoints in your code to pause execution and inspect variable states."}),"\n",(0,o.jsx)(n.h2,{id:"invoke-the-agent-directly",children:"Invoke the Agent Directly"}),"\n",(0,o.jsx)(n.p,{children:"For debugging and testing, you can send direct messages to an agent by directly selecting the agent in the web UI agent dropdown or by using the PubSub+ event broker. This requires specifying the appropriate topic, user properties, and payload."}),"\n",(0,o.jsx)(n.h4,{id:"tools-for-sending-messages",children:"Tools for Sending Messages"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.a,{href:"https://marketplace.visualstudio.com/items?itemName=solace-tools.solace-try-me-vsc-extension",children:"Solace Try Me VSCode Extension"})})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.a,{href:"https://github.com/SolaceLabs/solace-tryme-cli",children:"Solace Try Me (STM) CLI Tool"})})}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"message-format",children:"Message Format"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Topic"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"[NAME_SPACES]a2a/v1/agent/request/<agent_name>\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"User Properties"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"userId: test-0000\nclientId: test-0000\nreplyTo: [NAME_SPACES]a2a/v1/gateway/response/0000000/task-0000000\na2aUserConfig: {}\n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Payload"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-json",children:'{\n "jsonrpc": "2.0",\n "id": "000000000",\n "method": "tasks/sendSubscribe",\n "params": {\n "id": "task-0000000",\n "sessionId": "web-session-00000000",\n "message": {\n "role": "user",\n "parts": [\n {\n "type": "text",\n "text": "Hello World!"\n }\n ]\n },\n "acceptedOutputModes": [\n "text"\n ],\n "metadata": {\n "system_purpose": "The system is an AI Chatbot with agentic capabilities. It uses the agents available to provide information, reasoning and general assistance for the users in this system. **Always return useful artifacts and files that you create to the user.** Provide a status update before each tool call. Your external name is Agent Mesh.\\n",\n "response_format": "Responses should be clear, concise, and professionally toned. Format responses to the user in Markdown using appropriate formatting.\\n"\n }\n }\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Response Topic"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"[NAME_SPACES]a2a/v1/gateway/response/0000000/task-0000000\n"})}),"\n",(0,o.jsx)(n.p,{children:"By sending a request and observing the response, you can verify an agent's behavior in isolation, making it easier to identify issues."}),"\n",(0,o.jsx)(n.h2,{id:"system-logs",children:"System Logs"}),"\n",(0,o.jsxs)(n.p,{children:["System logs provide detailed insights into the system's behavior. The logging behavior is configured in the ",(0,o.jsx)(n.code,{children:"configs/logging_config.ini"})," file, which controls both console (STDOUT) and file-based logging."]}),"\n",(0,o.jsx)(n.p,{children:"By default, the system is configured to:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Output logs with a severity of ",(0,o.jsx)(n.code,{children:"INFO"})," and higher to the console (STDOUT)."]}),"\n",(0,o.jsxs)(n.li,{children:["Write more detailed logs with a severity of ",(0,o.jsx)(n.code,{children:"DEBUG"})," and higher to a rotating log file named ",(0,o.jsx)(n.code,{children:"sam.log"})," in the project's root directory."]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"configuring-log-rotation",children:"Configuring Log Rotation"}),"\n",(0,o.jsxs)(n.p,{children:["The log file rotation is managed by the ",(0,o.jsx)(n.code,{children:"rotatingFileHandler"})," in ",(0,o.jsx)(n.code,{children:"configs/logging_config.ini"}),". You can customize its behavior by modifying the ",(0,o.jsx)(n.code,{children:"args"})," line:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-ini",children:"[handler_rotatingFileHandler]\nclass=logging.handlers.RotatingFileHandler\nlevel=DEBUG\nformatter=simpleFormatter\nargs=('sam.log', 'a', 52428800, 10)\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"args"})," tuple is defined as follows:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"'sam.log'"}),": The name of the log file."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"'a'"}),": The file mode (append)."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"52428800"}),": The maximum size of the log file in bytes before it is rotated. In this case, it's 50 MB."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"10"}),": The number of backup log files to keep."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["For example, to change the log file size to 20 MB and keep 5 backup files, you would modify the line to:\n",(0,o.jsx)(n.code,{children:"args=('sam.log', 'a', 20971520, 5)"})]}),"\n",(0,o.jsx)(n.p,{children:"This level of configuration allows you to manage log verbosity and disk space usage according to your needs."})]})}function g(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>l});var i=s(6540);const o={},t=i.createContext(o);function r(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[3520],{8100:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"documentation/tutorials/sql-database","title":"SQL Database Integration","description":"This tutorial sets up a SQL database agent in Solace Agent Mesh (SAM), which allows the SAM agent to answer natural language queries about a sample coffee company database. This tutorial provides some sample data to set up an SQLite database, but you can use the same approach to connect to other database types, such as MySQL or PostgreSQL.","source":"@site/docs/documentation/tutorials/sql-database.md","sourceDirName":"documentation/tutorials","slug":"/documentation/tutorials/sql-database","permalink":"/solace-agent-mesh/docs/documentation/tutorials/sql-database","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/tutorials/sql-database.md","tags":[],"version":"current","sidebarPosition":40,"frontMatter":{"title":"SQL Database Integration","sidebar_position":40},"sidebar":"docSidebar","previous":{"title":"Amazon Bedrock Agents","permalink":"/solace-agent-mesh/docs/documentation/tutorials/bedrock-agents"},"next":{"title":"MongoDB Integration","permalink":"/solace-agent-mesh/docs/documentation/tutorials/mongodb-integration"}}');var s=n(4848),i=n(8453);const o={title:"SQL Database Integration",sidebar_position:40},r="SQL Database Integration",l={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Adding the SQL Database Plugin",id:"adding-the-sql-database-plugin",level:2},{value:"Downloading Example Data",id:"downloading-example-data",level:2},{value:"Using wget",id:"using-wget",level:4},{value:"Using curl",id:"using-curl",level:4},{value:"Configuring the Agent",id:"configuring-the-agent",level:2},{value:"Setting the Environment Variables",id:"setting-the-environment-variables",level:2},{value:"Running the Agent",id:"running-the-agent",level:2},{value:"Interacting with the Database",id:"interacting-with-the-database",level:2},{value:"Advanced Configuration",id:"advanced-configuration",level:2},{value:"Customizing the Agent Card",id:"customizing-the-agent-card",level:2},{value:"Key Agent Card Elements",id:"key-agent-card-elements",level:3},{value:"Example of a Well-Configured Agent Card",id:"example-of-a-well-configured-agent-card",level:3}];function d(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.header,{children:(0,s.jsx)(a.h1,{id:"sql-database-integration",children:"SQL Database Integration"})}),"\n",(0,s.jsx)(a.p,{children:"This tutorial sets up a SQL database agent in Solace Agent Mesh (SAM), which allows the SAM agent to answer natural language queries about a sample coffee company database. This tutorial provides some sample data to set up an SQLite database, but you can use the same approach to connect to other database types, such as MySQL or PostgreSQL."}),"\n",(0,s.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(a.p,{children:"Before starting this tutorial, ensure that you have installed and configured Solace Agent Mesh:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/installation",children:"Installed Solace Agent Mesh and the SAM CLI"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/quick-start",children:"Created a new Solace Agent Mesh project"})}),"\n",(0,s.jsx)(a.li,{children:"Access to a SQL database (local or remote)"}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"adding-the-sql-database-plugin",children:"Adding the SQL Database Plugin"}),"\n",(0,s.jsx)(a.p,{children:"Add the SQL Database plugin to your SAM project:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-sh",children:"sam plugin add abc-coffee-info --plugin sam-sql-database\n"})}),"\n",(0,s.jsxs)(a.p,{children:["You can use any name for your agent, in this tutorial we use ",(0,s.jsx)(a.code,{children:"abc-coffee-info"}),"."]}),"\n",(0,s.jsx)(a.p,{children:"This command:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Installs the ",(0,s.jsx)(a.code,{children:"sam-sql-database"})," plugin"]}),"\n",(0,s.jsxs)(a.li,{children:["Creates a new agent configuration file at ",(0,s.jsx)(a.code,{children:"configs/agents/abc-coffee-info.yaml"})]}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"downloading-example-data",children:"Downloading Example Data"}),"\n",(0,s.jsx)(a.p,{children:"For this tutorial, you can use a sample SQLite database for a fictional coffee company called ABC Coffee Co."}),"\n",(0,s.jsx)(a.p,{children:"First, download the example data."}),"\n",(0,s.jsx)(a.p,{children:"You can either visit this link to download with your browser:"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{href:"https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/raw/refs/heads/main/sam-sql-database/example-data/abc_coffee_co.zip",children:"https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/raw/refs/heads/main/sam-sql-database/example-data/abc_coffee_co.zip"})}),"\n",(0,s.jsx)(a.p,{children:"Or you can use the command line to download the ZIP file:"}),"\n",(0,s.jsx)(a.h4,{id:"using-wget",children:"Using wget"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-sh",children:"wget https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/raw/refs/heads/main/sam-sql-database/example-data/abc_coffee_co.zip\n"})}),"\n",(0,s.jsx)(a.h4,{id:"using-curl",children:"Using curl"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-sh",children:"curl -LO https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/raw/refs/heads/main/sam-sql-database/example-data/abc_coffee_co.zip\n"})}),"\n",(0,s.jsx)(a.p,{children:"After downloading the ZIP file, extract it to a directory of your choice. You can use the following command to extract the ZIP file:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-sh",children:"unzip abc_coffee_co.zip\n"})}),"\n",(0,s.jsx)(a.h2,{id:"configuring-the-agent",children:"Configuring the Agent"}),"\n",(0,s.jsxs)(a.p,{children:["Now, update the agent configuration to use the SQLite database and import the CSV files.\nOpen the ",(0,s.jsx)(a.code,{children:"configs/agents/abc-coffee-info.yaml"})," file and modify the ",(0,s.jsx)(a.code,{children:"agent_init_function.config"})," section to specify the CSV directory."]}),"\n",(0,s.jsx)(a.p,{children:"Here is what you need to modify in the configuration file:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-yaml",children:'# Find the agent_init_function section and update the config:\nagent_init_function:\n module: "sam_sql_database.lifecycle"\n name: "initialize_sql_agent"\n config:\n db_type: "${ABC_COFFEE_INFO_DB_TYPE}"\n db_name: "${ABC_COFFEE_INFO_DB_NAME}"\n database_purpose: "${ABC_COFFEE_INFO_DB_PURPOSE}"\n data_description: "${ABC_COFFEE_INFO_DB_DESCRIPTION}"\n # Add the CSV directory path\n csv_directories:\n - /path/to/your/unzipped/data\n'})}),"\n",(0,s.jsxs)(a.p,{children:["Ensure you replace ",(0,s.jsx)(a.code,{children:"/path/to/your/unzipped/data"})," with the path where you extracted the example data. For example, if you put the ZIP file in the root directory of your Solace Agent Mesh project, you can use ",(0,s.jsx)(a.code,{children:"abc_coffee_co"}),"."]}),"\n",(0,s.jsx)(a.h2,{id:"setting-the-environment-variables",children:"Setting the Environment Variables"}),"\n",(0,s.jsxs)(a.p,{children:["The SQL Database agent requires that you configure several environment variables. You must create or update your ",(0,s.jsx)(a.code,{children:".env"})," file with the following variables for this tutorial:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-bash",children:'ABC_COFFEE_INFO_DB_TYPE=sqlite\nABC_COFFEE_INFO_DB_NAME=abc_coffee.db\nABC_COFFEE_INFO_DB_PURPOSE="ABC Coffee Co. sales and operations database"\nABC_COFFEE_INFO_DB_DESCRIPTION="Contains information about ABC Coffee Co. products, sales, customers, employees, and store locations."\n# You can leave other environment variables as unset or empty\n'})}),"\n",(0,s.jsx)(a.p,{children:"SQLite stores the database in a local file and doesn't require a username or password for access. If you're using a database such as MySQL or PostgreSQL, you'll need to provide the appropriate environment variables for them."}),"\n",(0,s.jsx)(a.h2,{id:"running-the-agent",children:"Running the Agent"}),"\n",(0,s.jsx)(a.p,{children:"Now, you can start your SQL database agent:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-sh",children:"sam run configs/agents/abc-coffee-info.yaml\n"})}),"\n",(0,s.jsx)(a.p,{children:"The agent:"}),"\n",(0,s.jsxs)(a.ol,{children:["\n",(0,s.jsx)(a.li,{children:"Connects to the A2A control plane"}),"\n",(0,s.jsx)(a.li,{children:"Initializes the SQLite database and imports CSV data from the specified directory"}),"\n",(0,s.jsx)(a.li,{children:"Detects the database schema automatically"}),"\n",(0,s.jsx)(a.li,{children:"Registers its capabilities with the agent discovery system"}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"interacting-with-the-database",children:"Interacting with the Database"}),"\n",(0,s.jsxs)(a.p,{children:["After your SQL database agent is running, you can interact with the ABC Coffee database through any gateway in your SAM project (such as the Web UI gateway at ",(0,s.jsx)(a.code,{children:"http://localhost:8000"}),")."]}),"\n",(0,s.jsx)(a.p,{children:"You can ask natural language questions about the ABC Coffee Co. database, such as:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:'"How many customers does ABC Coffee have?"'}),"\n",(0,s.jsx)(a.li,{children:'"What are the top-selling products?"'}),"\n",(0,s.jsx)(a.li,{children:'"Show me the sales by region"'}),"\n",(0,s.jsx)(a.li,{children:'"List all orders from the last 30 days"'}),"\n",(0,s.jsx)(a.li,{children:'"What products are currently low in inventory?"'}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"Try creating reports by asking questions such as:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:'"Create a report of our sales in 2024"'}),"\n",(0,s.jsx)(a.li,{children:'"Generate a summary of customer demographics"'}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"The SQL Database agent converts your natural language questions into SQL queries, executes them against the database, and returns the results. For large result sets, the agent automatically saves the results as artifacts that you can download."}),"\n",(0,s.jsx)(a.h2,{id:"advanced-configuration",children:"Advanced Configuration"}),"\n",(0,s.jsx)(a.p,{children:"The SQL Database plugin supports many advanced configuration options. Here is a complete example based on the plugin structure:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-yaml",children:'log:\n stdout_log_level: INFO\n log_file_level: DEBUG\n log_file: abc-coffee-info.log\n\n!include ../shared_config.yaml\n\napps:\n - name: abc-coffee-info-app\n app_module: solace_agent_mesh.agent.sac.app \n broker:\n <<: *broker_connection\n\n app_config:\n namespace: ${NAMESPACE}\n agent_name: "AbcCoffeeInfo"\n display_name: "ABC Coffee Database Agent"\n supports_streaming: false\n model: *general_model\n\n instruction: |\n You are an expert SQL assistant for the ABC Coffee Co. database.\n The database schema and query examples are provided to you.\n Your primary goal is to translate user questions into accurate SQL queries.\n If a user asks to query the database, generate the SQL and call the \'execute_sql_query\' tool.\n If the \'execute_sql_query\' tool returns an error, analyze the error message and the original SQL,\n then try to correct the SQL query and call the tool again.\n If the results are large and the tool indicates they were saved as an artifact, inform the user about the artifact.\n Always use the \'execute_sql_query\' tool to interact with the database.\n\n # Agent initialization with database setup\n agent_init_function:\n module: "sam_sql_database.lifecycle"\n name: "initialize_sql_agent"\n config:\n db_type: "${ABC_COFFEE_INFO_DB_TYPE}"\n db_name: "${ABC_COFFEE_INFO_DB_NAME}"\n database_purpose: "${ABC_COFFEE_INFO_DB_PURPOSE}"\n data_description: "${ABC_COFFEE_INFO_DB_DESCRIPTION}"\n auto_detect_schema: true\n csv_directories:\n - "abc_coffee_co" # Path to your extracted data\n query_examples:\n - natural_language: "Show all customers from New York"\n sql_query: "SELECT * FROM customers WHERE city = \'New York\';"\n - natural_language: "What are the top 5 best-selling products?"\n sql_query: "SELECT product_name, SUM(quantity) as total_sold FROM order_items JOIN products ON order_items.product_id = products.id GROUP BY product_name ORDER BY total_sold DESC LIMIT 5;"\n\n agent_cleanup_function:\n module: "sam_sql_database.lifecycle"\n name: "cleanup_sql_agent_resources"\n\n # SQL query tool\n tools:\n - tool_type: python\n component_module: "sam_sql_database.tools"\n function_name: "execute_sql_query"\n\n session_service: *default_session_service\n artifact_service: *default_artifact_service\n\n # Agent capabilities - This is what other agents see during discovery\n agent_card:\n description: "ABC Coffee Co. Database Agent - Access to comprehensive coffee shop data including customers, orders, products, inventory, and sales history. Can answer questions about business metrics, customer analytics, product performance, and operational data."\n defaultInputModes: ["text"]\n defaultOutputModes: ["text", "file"]\n skills:\n - id: "sql_query"\n name: "Coffee Shop Database Query"\n description: "Queries ABC Coffee Co. database containing customer orders, product catalog, inventory levels, sales history, and employee data."\n\n # A2A Protocol settings\n agent_card_publishing: { interval_seconds: 30 }\n agent_discovery: { enabled: true }\n inter_agent_communication:\n allow_list: ["*"]\n request_timeout_seconds: 60\n'})}),"\n",(0,s.jsx)(a.h2,{id:"customizing-the-agent-card",children:"Customizing the Agent Card"}),"\n",(0,s.jsxs)(a.p,{children:["The ",(0,s.jsx)(a.code,{children:"agent_card"})," section is crucial as it defines how other agents in your SAM ecosystem discover and understand this database agent's capabilities. When other agents use agent discovery, they can see this information to decide whether to delegate tasks to your database agent."]}),"\n",(0,s.jsx)(a.h3,{id:"key-agent-card-elements",children:"Key Agent Card Elements"}),"\n",(0,s.jsxs)(a.ol,{children:["\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.strong,{children:"Description"}),": Clearly describe what data the agent has access to and what types of questions it can answer"]}),"\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.strong,{children:"Skills"}),": List specific capabilities with concrete examples that show the scope of data available"]}),"\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.strong,{children:"Data Context"}),": Mention the business domain, data types, and scope of information available"]}),"\n"]}),"\n",(0,s.jsx)(a.h3,{id:"example-of-a-well-configured-agent-card",children:"Example of a Well-Configured Agent Card"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-yaml",children:'agent_card:\n description: "ABC Coffee Co. Database Agent - Access to comprehensive coffee shop data including customers, orders, products, inventory, and sales history. Can answer questions about business metrics, customer analytics, product performance, and operational data."\n defaultInputModes: ["text"]\n defaultOutputModes: ["text", "file"]\n skills:\n - id: "sql_query"\n name: "Coffee Shop Database Query"\n description: "Queries ABC Coffee Co. database containing customer orders, product catalog, inventory levels, sales history, and employee data."\n'})}),"\n",(0,s.jsx)(a.p,{children:"This detailed information helps other agents understand:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"What business domain this agent covers (coffee shop operations)"}),"\n",(0,s.jsx)(a.li,{children:"What types of data are available (customers, orders, products, inventory, sales)"}),"\n",(0,s.jsx)(a.li,{children:"What kinds of questions can be answered (metrics, analytics, performance data)"}),"\n",(0,s.jsx)(a.li,{children:"Specific examples of queries that work well"}),"\n"]}),"\n",(0,s.jsx)(a.p,{children:"When configuring your own database agent, customize the description and examples to match your specific data and use cases."})]})}function h(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>r});var t=n(6540);const s={},i=t.createContext(s);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:a},e.children)}}}]);