# abcliyew/agent-mesh architecture

> Architecture diagram of the GitHub repository abcliyew/agent-mesh, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abcliyew/agent-mesh
- Repository: https://github.com/abcliyew/agent-mesh

## Overview

Agent Mesh is a Spring Boot backend for configuring and running reusable AI agents. Its main user path is a chat request into the unified agent engine, which plans and executes work and returns a response; the README documents an OpenAI-compatible API with streaming and tool calls. Separate capabilities cover agent/tool networks, RAG document ingestion and retrieval, workflow execution, MCP integrations, skills, and cost monitoring. Source excerpts show engine planning and direct-response handling, workflow node dispatch, RAG vector-store access, and skill controller-to-service calls; links between unsampled subsystems are limited to documented product relationships.

Main entry points: [`src/main/java/com/esdllm/agentmesh/service/unified/impl/UnifiedAgentEngineImpl.java`](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/UnifiedAgentEngineImpl.java) (Unified engine), [`src/main/java/com/esdllm/agentmesh/service/workflow/impl/WorkflowEngineImpl.java`](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/workflow/impl/WorkflowEngineImpl.java) (Workflow engine), [`src/main/java/com/esdllm/agentmesh/repository/mapper`](https://github.com/abcliyew/agent-mesh/tree/master/src/main/java/com/esdllm/agentmesh/repository/mapper) (PostgreSQL data), [`src/main/java/com/esdllm/agentmesh/controller/UnifiedAgentController.java`](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/UnifiedAgentController.java) (Unified agent API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_agent_runtime["Agent runtime"]
  node_chat_api["Unified agent API"]
  node_engine["Unified engine"]
  node_planner["Task planner<br/>[TaskPlanner.java]"]
  node_agent_services["Agent network"]
  node_tool_runtime["Tool invocation<br/>[ToolInvoker.java]"]
  node_model_selection["Model selection"]
  node_model_provider["Model providers"]
  node_ai_models["AI model services"]
end

subgraph group_knowledge["Knowledge and retrieval"]
  node_kb_api["Knowledge base API"]
  node_document_processing["Document processing"]
  node_rag["RAG retrieval"]
  node_vector_store["Vector search"]
end

subgraph group_extensions["Extensions and workflows"]
  node_workflow_api["Workflow API"]
  node_workflow_engine["Workflow engine"]
  node_mcp_api["MCP services API"]
  node_mcp_service["MCP integration"]
  node_skill_api["Skill market API"]
  node_skill_service["Skill market"]
end

subgraph group_operations["Management and monitoring"]
  node_cost_monitor["Cost monitoring"]
end

subgraph group_persistence["Persistence"]
  node_relational_store[("PostgreSQL data")]
end

node_user(("API consumer"))
node_external_models{{"LLM providers"}}
node_pgvector[("PostgreSQL pgvector")]
node_external_mcp{{"MCP endpoints"}}

node_user -->|"sends chat"| node_chat_api
node_chat_api -->|"invokes"| node_engine
node_engine -->|"plans tasks"| node_planner
node_engine -->|"selects model"| node_model_selection
node_engine -->|"executes tools"| node_tool_runtime
node_engine -->|"uses agents"| node_agent_services
node_model_selection -->|"selects from"| node_ai_models
node_ai_models -->|"uses provider"| node_model_provider
node_model_provider -.->|"calls models"| node_external_models
node_user -->|"manages documents"| node_kb_api
node_kb_api -->|"processes"| node_document_processing
node_document_processing -->|"embeds chunks"| node_rag
node_rag -->|"searches and stores"| node_vector_store
node_vector_store -->|"reads and writes"| node_pgvector
node_user -->|"submits workflow"| node_workflow_api
node_workflow_api -->|"executes"| node_workflow_engine
node_workflow_engine -->|"dispatches tools"| node_tool_runtime
node_user -->|"configures MCP"| node_mcp_api
node_mcp_api -->|"manages servers"| node_mcp_service
node_mcp_service -.->|"connects"| node_external_mcp
node_user -->|"manages skills"| node_skill_api
node_skill_api -->|"invokes"| node_skill_service
node_user -->|"reviews costs"| node_cost_monitor
node_engine -->|"tracks usage"| node_cost_monitor
node_engine -->|"reads agent data"| node_relational_store
node_workflow_engine -->|"loads tools"| node_relational_store
node_skill_service -->|"stores skill data"| node_relational_store

click node_chat_api "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/UnifiedAgentController.java"
click node_engine "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/UnifiedAgentEngineImpl.java"
click node_planner "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/TaskPlanner.java"
click node_agent_services "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/AgentNetworkServiceImpl.java"
click node_tool_runtime "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/agent/ToolInvoker.java"
click node_model_selection "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/model/impl/ModelSelectionServiceImpl.java"
click node_model_provider "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/ModelProviderServiceImpl.java"
click node_ai_models "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/AiModelServiceImpl.java"
click node_kb_api "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/KnowledgeBaseDocumentController.java"
click node_document_processing "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/DocumentProcessingService.java"
click node_rag "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/rag/impl/RagRetrievalServiceImpl.java"
click node_vector_store "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/VectorSearchService.java"
click node_workflow_api "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/WorkflowController.java"
click node_workflow_engine "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/workflow/impl/WorkflowEngineImpl.java"
click node_mcp_api "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/McpServerController.java"
click node_mcp_service "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/McpServerServiceImpl.java"
click node_skill_api "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/SkillMarketController.java"
click node_skill_service "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/SkillMarketServiceImpl.java"
click node_cost_monitor "https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/CostMonitoringServiceImpl.java"
click node_relational_store "https://github.com/abcliyew/agent-mesh/tree/master/src/main/java/com/esdllm/agentmesh/repository/mapper"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_chat_api,node_engine,node_planner,node_agent_services,node_tool_runtime,node_model_selection,node_model_provider,node_ai_models toneBlue
class node_kb_api,node_document_processing,node_rag,node_vector_store,node_pgvector toneAmber
class node_workflow_api,node_workflow_engine,node_mcp_api,node_mcp_service,node_skill_api,node_skill_service,node_user toneMint
class node_cost_monitor toneRose
class node_relational_store,node_external_models,node_external_mcp toneIndigo
```

## Components

### Agent runtime

- [Unified agent API](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/UnifiedAgentController.java): `src/main/java/com/esdllm/agentmesh/controller/UnifiedAgentController.java`
- [Unified engine](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/UnifiedAgentEngineImpl.java): `src/main/java/com/esdllm/agentmesh/service/unified/impl/UnifiedAgentEngineImpl.java`
- [Task planner](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/TaskPlanner.java): `src/main/java/com/esdllm/agentmesh/service/unified/impl/TaskPlanner.java`
- [Agent network](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/AgentNetworkServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/impl/AgentNetworkServiceImpl.java`
- [Tool invocation](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/agent/ToolInvoker.java): `src/main/java/com/esdllm/agentmesh/service/agent/ToolInvoker.java`
- [Model selection](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/model/impl/ModelSelectionServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/model/impl/ModelSelectionServiceImpl.java`
- [Model providers](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/ModelProviderServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/impl/ModelProviderServiceImpl.java`
- [AI model services](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/AiModelServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/impl/AiModelServiceImpl.java`

### Knowledge and retrieval

- [Knowledge base API](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/KnowledgeBaseDocumentController.java): `src/main/java/com/esdllm/agentmesh/controller/KnowledgeBaseDocumentController.java`
- [Document processing](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/DocumentProcessingService.java): `src/main/java/com/esdllm/agentmesh/service/DocumentProcessingService.java`
- [RAG retrieval](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/rag/impl/RagRetrievalServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/rag/impl/RagRetrievalServiceImpl.java`
- [Vector search](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/VectorSearchService.java): `src/main/java/com/esdllm/agentmesh/service/VectorSearchService.java`

### Extensions and workflows

- [Workflow API](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/WorkflowController.java): `src/main/java/com/esdllm/agentmesh/controller/WorkflowController.java`
- [Workflow engine](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/workflow/impl/WorkflowEngineImpl.java): `src/main/java/com/esdllm/agentmesh/service/workflow/impl/WorkflowEngineImpl.java`
- [MCP services API](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/McpServerController.java): `src/main/java/com/esdllm/agentmesh/controller/McpServerController.java`
- [MCP integration](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/McpServerServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/impl/McpServerServiceImpl.java`
- [Skill market API](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/controller/SkillMarketController.java): `src/main/java/com/esdllm/agentmesh/controller/SkillMarketController.java`
- [Skill market](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/unified/impl/SkillMarketServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/unified/impl/SkillMarketServiceImpl.java`

### Management and monitoring

- [Cost monitoring](https://github.com/abcliyew/agent-mesh/blob/master/src/main/java/com/esdllm/agentmesh/service/impl/CostMonitoringServiceImpl.java): `src/main/java/com/esdllm/agentmesh/service/impl/CostMonitoringServiceImpl.java`

### Persistence

- [PostgreSQL data](https://github.com/abcliyew/agent-mesh/tree/master/src/main/java/com/esdllm/agentmesh/repository/mapper): `src/main/java/com/esdllm/agentmesh/repository/mapper`

### Other components

- **API consumer**
- **LLM providers**
- **PostgreSQL pgvector**
- **MCP endpoints**

## Connections

- API consumer → Unified agent API: sends chat
- Unified agent API → Unified engine: invokes
- Unified engine → Task planner: plans tasks
- Unified engine → Model selection: selects model
- Unified engine → Tool invocation: executes tools
- Unified engine → Agent network: uses agents
- Model selection → AI model services: selects from
- AI model services → Model providers: uses provider
- Model providers → LLM providers: calls models
- API consumer → Knowledge base API: manages documents
- Knowledge base API → Document processing: processes
- Document processing → RAG retrieval: embeds chunks
- RAG retrieval → Vector search: searches and stores
- Vector search → PostgreSQL pgvector: reads and writes
- API consumer → Workflow API: submits workflow
- Workflow API → Workflow engine: executes
- Workflow engine → Tool invocation: dispatches tools
- API consumer → MCP services API: configures MCP
- MCP services API → MCP integration: manages servers
- MCP integration → MCP endpoints: connects
- API consumer → Skill market API: manages skills
- Skill market API → Skill market: invokes
- API consumer → Cost monitoring: reviews costs
- Unified engine → Cost monitoring: tracks usage
- Unified engine → PostgreSQL data: reads agent data
- Workflow engine → PostgreSQL data: loads tools
- Skill market → PostgreSQL data: stores skill data
