Should I add a plugin, topic, agent, mcp?

Hi everyone,

I’m experimenting with Solace Agent Mesh and wondering how others think about where to introduce a new capability. Concretely: when you have a new requirement, how do you decide between creating a new agent, a new MCP server, a new plugin, or “just” a new event/topic pattern?

I drafted this simple table as a starting point and would love feedback or corrections from the community:

When to use which construct?

Construct Use it when… Typical examples
New agent You are adding a new business behavior or workflow, with its own prompts, tools, and lifecycle, that should be independently deployable and observable. A risk-scoring agent, a document-ingestion agent, a retail-pricing agent, or a “router”/orchestrator agent coordinating others.
New MCP server You are exposing a new external system or tool surface (DB, SaaS API, internal service) that could be reused by multiple agents, and you want a clean, tool-like interface to it. Wrapping internal REST/gRPC services, databases, search indexes, or proprietary APIs that multiple agents should call uniformly.
New plugin You are extending or customizing SAM’s runtime behavior (e.g., logging, auth, routing, observability, storage) without changing business logic; typically cross-cutting concerns. Custom logging/metrics exporters, auth or policy hooks, custom storage backends, or specialized routing/transform hooks inside SAM.
New event/topic You are refining how agents and services communicate (who listens to what and when), not what they do, and you want clearer decoupling, routing, or filtering in the event mesh. Introducing dedicated topics for new workflows, separating high/low-priority streams, or modeling new domain events in the mesh.

Very roughly, I’m currently thinking:

  • “New behavior” → new agent.

  • “New reusable integration surface” → new MCP server.

  • “New cross-cutting SAM runtime capability” → plugin.

  • “New communication pattern between components” → event/topic design.

Does this mental model align with how the SAM team and experienced users think about it? Are there anti-patterns here (e.g., using agents where a topic or MCP server would be more appropriate)?

Thanks in advance for any insight or real-world examples!

1 Like

Hey @raphael thanks for the post and breakdown summary of the differences! I want to note that “creating topics” is not something you really have direct controls over in SAM (with caveats). The EDA component of SAM is abstracted away in the solace AI connector. The reason I say caveats is because you can configure the root the topic (i.e. Namespace), use event mesh tools in agents to publish events on topics, or configure an event mesh gateway that can set topics to subscribe to or publish on. That being said, since the framework is open source you can look into the topic structure and dissect that from the solace AI connector.

Now back to your question about the mental model and anti patterns, you have two main ways of adding components (Agents, Gateways, Services) to SAM:

  1. Agents (via sam add agent or agent builder) - this scaffolds the yaml skeleton needed for running an agent and places the configuration under the configs/agents dir. Like you said, add agents for a new business behavior and need independent deployability and observability. The tools configured (or “exposed”) to the agent could either be built-in tools, custom python tools, or MCP (stdio or remote) tools
  2. Plugins - use this when you want to package and deploy reusable agents, gateways, or services. You can a new plugin via sam plugin add <name of installed plugin>. Note that plugins follow a complete python project structure and could be used as a self contained package. A wheel is created from the plugin python structure vis sam plugin build and you can scaffold a plugin folder structure via sam plugin create. So while your definition of new plugin is correct, its not only for customizing the runtime behaviour. We have a catalog of plugins you can install from (accessed via sam plugin catalog )
    1. Core Solace supported plugins: GitHub - SolaceLabs/solace-agent-mesh-core-plugins
    2. Community Plugins: GitHub - solacecommunity/solace-agent-mesh-plugins: Solace Agent Mesh Community Plugins

And a note on Agent vs. Plugin, this page in the documentation does a good job at explaining the difference between the two: Plugins | Solace Agent Mesh

Hopefully this helps! Feel free to chime in on other thoughts of questions (and welcome to the community!)

1 Like