solace-agent-mesh 1.0.2__py3-none-any.whl → 1.0.5__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.
- solace_agent_mesh/__init__.py +0 -5
- solace_agent_mesh/agent/adk/filesystem_artifact_service.py +32 -39
- solace_agent_mesh/agent/adk/services.py +140 -59
- solace_agent_mesh/agent/protocol/event_handlers.py +70 -116
- solace_agent_mesh/agent/sac/app.py +12 -2
- solace_agent_mesh/agent/sac/component.py +37 -1
- solace_agent_mesh/agent/tools/builtin_artifact_tools.py +8 -1
- solace_agent_mesh/agent/tools/peer_agent_tool.py +92 -84
- solace_agent_mesh/agent/utils/artifact_helpers.py +148 -14
- solace_agent_mesh/assets/docs/404.html +3 -3
- solace_agent_mesh/assets/docs/assets/js/{04989206.674a8007.js → 04989206.da8246cd.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/1023fc19.8e6d174c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{3d406171.f722eaf5.js → 3d406171.9b081d5f.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/75384d09.c3991823.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9eff14a2.036c35ea.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{aba87c2f.d3e2dcc3.js → aba87c2f.a6b84da6.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/{ae4415af.8e279b5d.js → ae4415af.96189a93.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/b7006a3a.38c0cf3d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/bb2ef573.56931473.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{cc969b05.954186d4.js → cc969b05.bd3e0d6c.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.5aff74ab.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{f897a61a.f8c53b0f.js → f897a61a.862b0514.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/main.946fa17b.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.aa687c82.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +8 -6
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +9 -9
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +140 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +3 -3
- solace_agent_mesh/assets/docs/img/solace-logo-text.svg +18 -0
- solace_agent_mesh/assets/docs/lunr-index-1755275703209.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1755275703209.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -1
- solace_agent_mesh/assets/docs/sitemap.xml +1 -1
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +1 -1
- solace_agent_mesh/cli/commands/run_cmd.py +46 -3
- solace_agent_mesh/cli/main.py +1 -3
- solace_agent_mesh/client/webui/frontend/static/assets/main-BCpII1-0.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-DzKPMTRs.js +673 -0
- solace_agent_mesh/client/webui/frontend/static/index.html +2 -2
- solace_agent_mesh/common/exceptions.py +25 -0
- solace_agent_mesh/common/utils/initializer.py +4 -3
- solace_agent_mesh/common/utils/message_utils.py +79 -0
- solace_agent_mesh/config_portal/backend/common.py +1 -1
- solace_agent_mesh/config_portal/frontend/static/client/assets/{_index-_7yox_eh.js → _index-xSu2leR8.js} +1 -1
- solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-e5c3acfe.js → manifest-950eb3be.js} +1 -1
- solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
- solace_agent_mesh/gateway/base/component.py +15 -2
- solace_agent_mesh/gateway/http_sse/sse_manager.py +23 -1
- solace_agent_mesh/templates/plugin_agent_config_template.yaml +1 -1
- {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.5.dist-info}/METADATA +66 -49
- {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.5.dist-info}/RECORD +86 -82
- solace_agent_mesh/assets/docs/assets/js/1023fc19.015679ca.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/9eff14a2.1bf8f61c.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/b7006a3a.40b10c9d.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/bb2ef573.207e6990.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.ecc3d195.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.c6286d7c.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.d5133813.js +0 -1
- solace_agent_mesh/assets/docs/img/Solace_AI_Framework_README.png +0 -0
- solace_agent_mesh/assets/docs/lunr-index-1754075282978.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1754075282978.json +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-D11Lmy9p.css +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-Gfk3BYn5.js +0 -663
- /solace_agent_mesh/assets/docs/assets/js/{main.c6286d7c.js.LICENSE.txt → main.946fa17b.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.5.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.5.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
window.__remixManifest={"entry":{"module":"/assets/entry.client-CEumGClk.js","imports":["/assets/index-DSo1AH_7.js","/assets/components-B7lKcHVY.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/root-C4XmHinv.js","imports":["/assets/index-DSo1AH_7.js","/assets/components-B7lKcHVY.js"],"css":["/assets/root-DxRwaWiE.css"]},"routes/_index":{"id":"routes/_index","parentId":"root","index":true,"hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_index-
|
|
1
|
+
window.__remixManifest={"entry":{"module":"/assets/entry.client-CEumGClk.js","imports":["/assets/index-DSo1AH_7.js","/assets/components-B7lKcHVY.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/root-C4XmHinv.js","imports":["/assets/index-DSo1AH_7.js","/assets/components-B7lKcHVY.js"],"css":["/assets/root-DxRwaWiE.css"]},"routes/_index":{"id":"routes/_index","parentId":"root","index":true,"hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasErrorBoundary":false,"module":"/assets/_index-xSu2leR8.js","imports":["/assets/index-DSo1AH_7.js"],"css":[]}},"url":"/assets/manifest-950eb3be.js","version":"950eb3be"};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/assets/root-DxRwaWiE.css"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"/></head><body><p>Loading...</p><link rel="modulepreload" href="/assets/manifest-
|
|
2
|
+
<html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/assets/root-DxRwaWiE.css"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"/></head><body><p>Loading...</p><link rel="modulepreload" href="/assets/manifest-950eb3be.js"/><link rel="modulepreload" href="/assets/entry.client-CEumGClk.js"/><link rel="modulepreload" href="/assets/index-DSo1AH_7.js"/><link rel="modulepreload" href="/assets/components-B7lKcHVY.js"/><link rel="modulepreload" href="/assets/root-C4XmHinv.js"/><script>window.__remixContext = {"basename":"/","future":{"v3_fetcherPersist":false,"v3_relativeSplatPath":false,"v3_throwAbortReason":false,"v3_routeConfig":false,"v3_singleFetch":false,"v3_lazyRouteDiscovery":false,"unstable_optimizeDeps":false},"isSpaMode":true,"state":{"loaderData":{"root":null,"routes/_index":null},"actionData":null,"errors":null}};</script><script type="module" async="">import "/assets/manifest-950eb3be.js";
|
|
3
3
|
import * as route0 from "/assets/root-C4XmHinv.js";
|
|
4
4
|
|
|
5
5
|
window.__remixRouteModules = {"root":route0};
|
|
@@ -65,7 +65,9 @@ from solace_ai_connector.common.event import Event, EventType
|
|
|
65
65
|
from abc import abstractmethod
|
|
66
66
|
|
|
67
67
|
from ...common.middleware.registry import MiddlewareRegistry
|
|
68
|
-
from ...agent.utils.artifact_helpers import
|
|
68
|
+
from ...agent.utils.artifact_helpers import (
|
|
69
|
+
load_artifact_content_or_metadata,
|
|
70
|
+
)
|
|
69
71
|
|
|
70
72
|
info = {
|
|
71
73
|
"class_name": "BaseGatewayComponent",
|
|
@@ -157,6 +159,7 @@ class BaseGatewayComponent(ComponentBase):
|
|
|
157
159
|
self.shared_artifact_service: Optional[BaseArtifactService] = (
|
|
158
160
|
initialize_artifact_service(self)
|
|
159
161
|
)
|
|
162
|
+
|
|
160
163
|
self.task_context_manager: TaskContextManager = TaskContextManager()
|
|
161
164
|
self.internal_event_queue: queue.Queue = queue.Queue()
|
|
162
165
|
self.message_processor_thread: Optional[threading.Thread] = None
|
|
@@ -340,7 +343,17 @@ class BaseGatewayComponent(ComponentBase):
|
|
|
340
343
|
)
|
|
341
344
|
external_request_context["a2a_session_id"] = a2a_session_id
|
|
342
345
|
|
|
343
|
-
|
|
346
|
+
a2a_metadata = {}
|
|
347
|
+
invoked_artifacts = external_request_context.get("invoked_with_artifacts")
|
|
348
|
+
if invoked_artifacts:
|
|
349
|
+
a2a_metadata["invoked_with_artifacts"] = invoked_artifacts
|
|
350
|
+
log.debug(
|
|
351
|
+
"%s Found %d artifact identifiers in external context to pass to agent.",
|
|
352
|
+
log_id_prefix,
|
|
353
|
+
len(invoked_artifacts),
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
a2a_message = A2AMessage(role="user", parts=a2a_parts, metadata=a2a_metadata)
|
|
344
357
|
reply_topic_pattern = get_gateway_response_topic(
|
|
345
358
|
self.namespace, self.gateway_id, "{task_id}"
|
|
346
359
|
)
|
|
@@ -6,6 +6,8 @@ import asyncio
|
|
|
6
6
|
import threading
|
|
7
7
|
from typing import Dict, List, Any
|
|
8
8
|
import json
|
|
9
|
+
import datetime
|
|
10
|
+
import math
|
|
9
11
|
|
|
10
12
|
from solace_ai_connector.common.log import log
|
|
11
13
|
|
|
@@ -46,6 +48,23 @@ class SSEManager:
|
|
|
46
48
|
)
|
|
47
49
|
return self._locks[current_loop]
|
|
48
50
|
|
|
51
|
+
def _sanitize_json(self, obj):
|
|
52
|
+
if isinstance(obj, dict):
|
|
53
|
+
return {k: self._sanitize_json(v) for k, v in obj.items()}
|
|
54
|
+
elif isinstance(obj, list):
|
|
55
|
+
return [self._sanitize_json(v) for v in obj]
|
|
56
|
+
elif isinstance(obj, (float, int)):
|
|
57
|
+
if math.isnan(obj) or math.isinf(obj):
|
|
58
|
+
return None
|
|
59
|
+
return obj
|
|
60
|
+
elif isinstance(obj, (str, bool, type(None))):
|
|
61
|
+
return obj
|
|
62
|
+
elif isinstance(obj, (datetime.datetime, datetime.date)):
|
|
63
|
+
return obj.isoformat()
|
|
64
|
+
else:
|
|
65
|
+
return str(obj)
|
|
66
|
+
|
|
67
|
+
|
|
49
68
|
async def create_sse_connection(self, task_id: str) -> asyncio.Queue:
|
|
50
69
|
"""
|
|
51
70
|
Creates a new queue for an SSE connection subscribing to a task.
|
|
@@ -136,7 +155,10 @@ class SSEManager:
|
|
|
136
155
|
|
|
137
156
|
queues_to_remove = []
|
|
138
157
|
try:
|
|
139
|
-
serialized_data = json.dumps(
|
|
158
|
+
serialized_data = json.dumps(
|
|
159
|
+
self._sanitize_json(event_data),
|
|
160
|
+
allow_nan=False
|
|
161
|
+
)
|
|
140
162
|
except Exception as json_err:
|
|
141
163
|
log.error(
|
|
142
164
|
"%s Failed to JSON serialize event data for Task ID %s: %s",
|
|
@@ -102,7 +102,7 @@ apps:
|
|
|
102
102
|
session_service: *default_session_service
|
|
103
103
|
artifact_service: *default_artifact_service
|
|
104
104
|
|
|
105
|
-
artifact_handling_mode: "
|
|
105
|
+
artifact_handling_mode: "reference"
|
|
106
106
|
enable_embed_resolution: true
|
|
107
107
|
enable_artifact_content_instruction: true
|
|
108
108
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: solace-agent-mesh
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
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
|
|
@@ -257,10 +257,6 @@ Requires-Dist: prompt-toolkit>=3.0; extra == 'cli'
|
|
|
257
257
|
Requires-Dist: rich>=13.0; extra == 'cli'
|
|
258
258
|
Provides-Extra: database
|
|
259
259
|
Requires-Dist: sqlalchemy>=2.0; extra == 'database'
|
|
260
|
-
Provides-Extra: dev
|
|
261
|
-
Requires-Dist: pytest-asyncio>=0.20; extra == 'dev'
|
|
262
|
-
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
263
|
-
Requires-Dist: ruff; extra == 'dev'
|
|
264
260
|
Provides-Extra: employee-tools
|
|
265
261
|
Requires-Dist: holidays>=0.24; extra == 'employee-tools'
|
|
266
262
|
Provides-Extra: gcs
|
|
@@ -300,30 +296,33 @@ Description-Content-Type: text/markdown
|
|
|
300
296
|
|
|
301
297
|
---
|
|
302
298
|
|
|
303
|
-
|
|
299
|
+
**Solace Agent Mesh** is a framework that supports building AI applications where multiple specialized AI agents work together to solve complex problems. It uses the event messaging of [Solace Platform](https://solace.com) for true scalability and reliability.
|
|
304
300
|
|
|
305
|
-
|
|
301
|
+
With Solace Agent Mesh (SAM), you can create teams of AI agents, each having distinct skills and access to specific tools. For example, you could have a Database Agent that can make SQL queries to fetch data or a MultiModal Agent that can help create images, audio files and reports.
|
|
306
302
|
|
|
307
|
-
|
|
308
|
-
|
|
303
|
+
The framework handles the communication between agents automatically, so you can focus on building great AI experiences.
|
|
304
|
+
|
|
305
|
+
SAM creates a standardized communication layer where AI agents can:
|
|
306
|
+
* Delegate tasks to peer agents
|
|
307
|
+
* Share data and artifacts
|
|
309
308
|
* Connect with diverse user interfaces and external systems
|
|
310
|
-
* Execute
|
|
309
|
+
* Execute multi-step workflows with minimal coupling
|
|
310
|
+
|
|
311
|
+
SAM is built on top of the Solace AI Connector (SAC) which allows Solace Platform Event Brokers to connect to AI models and services and Google's Agent Development Kit (ADK) for AI logic and tool integrations.
|
|
311
312
|
|
|
312
|
-
|
|
313
|
+
The result? A fully asynchronous, event-driven and decoupled AI agent architecture ready for production deployment. It is robust, reliable and easy to maintain.
|
|
313
314
|
|
|
314
315
|
---
|
|
315
316
|
|
|
316
|
-
##
|
|
317
|
-
-
|
|
318
|
-
-
|
|
319
|
-
-
|
|
320
|
-
-
|
|
321
|
-
-
|
|
322
|
-
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
- 🔗 **[Dynamic Embeds](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds)** – Include dynamic placeholders in responses that are resolved by the framework with support for modifier chains.
|
|
326
|
-
- 🤝 **[Agent-to-Agent Communication](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/architecture)** – Agents can discover and delegate tasks to peer agents using the A2A protocol over Solace.
|
|
317
|
+
## 🔑 Key Features
|
|
318
|
+
- **[Multi-Agent Event-Driven Architecture](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/component-overview)** – Agents communicate via the Solace Event Mesh for true scalability
|
|
319
|
+
- **[Agent Orchestration](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents)** – Complex tasks are automatically broken down and delegated by the [Orchestrator](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/orchestrator) agent
|
|
320
|
+
- **[Flexible Interfaces](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways)** – Integrate with REST API, web UI, [Slack](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/slack-integration), or build your own integration
|
|
321
|
+
- **[Extensible](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/plugins)** – Add your own agents, gateways, or services with minimal code
|
|
322
|
+
- **[Agent-to-Agent Communication](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/architecture)** – Agents can discover and delegate tasks to each other seamlessly using the Agent2Agent (A2A) Protocol
|
|
323
|
+
- **[Dynamic Embeds](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds)** – Embed dynamic content like real-time data, calculations and file contents in responses
|
|
324
|
+
|
|
325
|
+
📚 **Want to know more?** Check out the full Solace Agent Mesh [documentation](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction/).
|
|
327
326
|
|
|
328
327
|
---
|
|
329
328
|
|
|
@@ -342,39 +341,53 @@ To run Solace Agent Mesh locally, you'll need:
|
|
|
342
341
|
|
|
343
342
|
### 💻 Setup Steps
|
|
344
343
|
|
|
344
|
+
#### 1. Create a directory for a new project
|
|
345
345
|
```bash
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
346
|
+
mkdir my-sam && cd my-sam
|
|
347
|
+
```
|
|
348
|
+
#### 2. Create and activate a Python virtual environment
|
|
349
|
+
```bash
|
|
350
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
351
|
+
```
|
|
352
|
+
#### 3. Install Solace Agent Mesh (SAM)
|
|
353
|
+
Check if you have a version of SAM already installed.
|
|
354
|
+
```bash
|
|
355
|
+
sam -v
|
|
356
|
+
```
|
|
357
|
+
If you have an earlier version, uninstall it and **start from scratch**:
|
|
358
|
+
```bash
|
|
359
|
+
pip3 uninstall solace-agent-mesh
|
|
360
|
+
```
|
|
361
|
+
Note: Optionally, you can try to upgrade versions but this action is not officially supported at this time. (`pip3 install --upgrade solace-agent-mesh`)
|
|
352
362
|
|
|
353
|
-
|
|
354
|
-
|
|
363
|
+
If no previous version exists, install the latest version with:
|
|
364
|
+
```bash
|
|
365
|
+
pip3 install solace-agent-mesh
|
|
366
|
+
```
|
|
367
|
+
#### 4. Initialize the new project via a GUI interface
|
|
368
|
+
```bash
|
|
355
369
|
sam init --gui
|
|
356
|
-
|
|
357
|
-
|
|
370
|
+
```
|
|
371
|
+
Note: This initialization UI runs on port 5002
|
|
372
|
+
#### 5. Run the project
|
|
373
|
+
```bash
|
|
358
374
|
sam run
|
|
359
375
|
```
|
|
376
|
+
#### 6. Verify SAM is running
|
|
377
|
+
Open the Web UI at [http://localhost:8000](http://localhost:8000) for the chat inteface and ask a question
|
|
360
378
|
|
|
361
|
-
### 🔧
|
|
379
|
+
### 🔧 Customize SAM
|
|
362
380
|
|
|
381
|
+
#### New agents can be added via a GUI interface
|
|
363
382
|
```bash
|
|
364
|
-
# Add a new agent with GUI interface
|
|
365
383
|
sam add agent --gui
|
|
366
384
|
```
|
|
367
385
|
|
|
368
|
-
|
|
369
|
-
|
|
386
|
+
#### Existing plugins can be installed
|
|
370
387
|
```bash
|
|
371
388
|
sam plugin add <your-component-name> --plugin <plugin-name>
|
|
372
389
|
```
|
|
373
390
|
|
|
374
|
-
#### Once running:
|
|
375
|
-
|
|
376
|
-
Open the Web UI at [http://localhost:8000](http://localhost:8000) to talk with a chat interface.
|
|
377
|
-
|
|
378
391
|
---
|
|
379
392
|
|
|
380
393
|
## 🏗️ Architecture Overview
|
|
@@ -385,7 +398,7 @@ The system allows you to:
|
|
|
385
398
|
|
|
386
399
|
- Host AI agents developed with Google ADK within the SAC framework
|
|
387
400
|
- Define agent capabilities (LLM model, instructions, tools) primarily through SAC YAML configuration
|
|
388
|
-
-
|
|
401
|
+
- Use Solace Platform as the transport for standard Agent-to-Agent (A2A) protocol communication
|
|
389
402
|
- Enable dynamic discovery of peer agents running within the same ecosystem
|
|
390
403
|
- Allow agents to delegate tasks to discovered peers via the A2A protocol over Solace
|
|
391
404
|
- Manage file artifacts using built-in tools with automatic metadata injection
|
|
@@ -413,20 +426,24 @@ Want to go further? Here are some hands-on tutorials to help you get started:
|
|
|
413
426
|
| 🧠 **MCP Integration**<br>Integrating a Model Context Protocol (MCP) Servers into Solace Agent Mesh. | **~10–15 min** | [MCP Integration Tutorial](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mcp-integration) |
|
|
414
427
|
| 💬 **Slack Integration**<br>Chat with Solace Agent Mesh directly from Slack. | **~20–30 min** | [Slack Integration Tutorial](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/slack-integration) |
|
|
415
428
|
|
|
416
|
-
📚 Want to explore more? Check out the full [Solace Agent Mesh documentation](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction/).
|
|
417
|
-
|
|
418
429
|
---
|
|
419
430
|
|
|
420
431
|
## 👥 Contributors
|
|
421
432
|
|
|
422
|
-
Solace Agent Mesh is built with the help of our amazing community.
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
433
|
+
Solace Agent Mesh is built with the help of our amazing community. Thanks to everyone who has contributed ideas, code and time to make this project better!
|
|
434
|
+
|
|
435
|
+
View the full list of contributors here: [GitHub Contributors](https://github.com/SolaceLabs/solace-agent-mesh/graphs/contributors) 💚
|
|
436
|
+
|
|
437
|
+
**Looking to contribute?** Check out [CONTRIBUTING.md](CONTRIBUTING.md) to get started and see how you can help!
|
|
426
438
|
|
|
427
439
|
---
|
|
428
440
|
|
|
429
441
|
## 📄 License
|
|
430
442
|
|
|
431
|
-
This project is licensed under the **Apache 2.0 License**.
|
|
432
|
-
|
|
443
|
+
This project is licensed under the **Apache 2.0 License**. See the full license text in the [LICENSE](LICENSE) file.
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
<h3 align="center">
|
|
448
|
+
<img src="./docs/static/img/solace-logo-text.svg" alt="Solace Agent Mesh Logo" width="100"/>
|
|
449
|
+
</h3>
|