Doramagic 项目包 · 项目说明书
solace-agent-mesh 项目
一个用于构建和编排多 agent AI 系统的事件驱动框架,可将 AI agent 与真实数据源及业务系统无缝集成,实现复杂的多步骤工作流。
Framework Overview & Architecture
Solace Agent Mesh (SAM) 是一个用于构建多智能体协作应用的框架,旨在让多个具有不同专长与工具访问权限的 AI Agent 协同完成复杂任务 资料来源:[README.md:38-58]()。框架以 Solace Platform 的事件消息中间件为底层通信底座,借助 Solace AI Connector (SAC) 实现横向扩展与高可靠交付。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
项目定位与核心价值
Solace Agent Mesh (SAM) 是一个用于构建多智能体协作应用的框架,旨在让多个具有不同专长与工具访问权限的 AI Agent 协同完成复杂任务 资料来源:README.md:38-58。框架以 Solace Platform 的事件消息中间件为底层通信底座,借助 Solace AI Connector (SAC) 实现横向扩展与高可靠交付。
SAM 在 Agent 之间建立了一套标准化通信层,让不同形态的 Agent 能够:
- 任务委派:将子任务派发给具有相应能力的对等 Agent;
- 数据与产物共享:在多个 Agent 之间交换 Artifact 与上下文;
- 多端接入:连接不同的用户界面(如 Web、Slack、Microsoft Teams)与外部系统;
- 工作流编排:以松耦合方式执行多步工作流。
SAM 同时原生支持 A2A (Agent-to-Agent) 与 MCP (Model Context Protocol) 协议,但社区议题 #1507 指出,跨协议 Agent 间仍需要桥接逻辑(如提议中的 IACP)。
系统架构总览
整个项目以 Python 编写的后端为核心、配合 React 19 前端以及可选的 REST 网关组成。下面的架构图概括了主要运行时组件及其交互关系:
flowchart TB
subgraph Client["前端 Web UI (React 19 + Vite)"]
UI[ChatPage / ChatInputArea]
Flow[FlowChartPanel]
end
subgraph Backend["Python 后端 (FastAPI)"]
PlatAPI["Platform Service API<br/>(/api/v1/platform/*)"]
SharedAPI["Shared API Utilities<br/>(pagination, response_utils)"]
WebuiAPI["WebUI REST API<br/>(/api/v1/sessions, /api/v1/...)"]
Eval["Evaluation Framework<br/>(sam eval)"]
end
subgraph Bus["Solace Event Mesh"]
Broker[(Solace Broker<br/>PubSub+ Event Broker)]
end
AgentA[A2A Agent]
AgentB[MCP Agent]
Gateway[sam-rest-gateway]
UI -- "SSE / REST" --> WebuiAPI
Flow -- "SSE" --> WebuiAPI
UI -- "REST" --> PlatAPI
SharedAPI --- PlatAPI
SharedAPI --- WebuiAPI
WebuiAPI --> Broker
PlatAPI --> Broker
Broker <--> AgentA
Broker <--> AgentB
Gateway --> Broker
Eval -. "订阅事件" .-> Broker图中的 Shared API Utilities 是后端各路由的公共基础——它统一了分页响应结构与错误处理 资料来源:src/solace_agent_mesh/shared/api/__init__.py:1-39;Platform Service API 负责模型配置、健康检查与 Provider 注册等平台级能力 资料来源:src/solace_agent_mesh/services/platform/api/routers/__init__.py:21-43。
核心模块与组件
3.1 共享 API 工具层
shared/api 包提供了所有 REST 接口共用的基础模型与响应构造器。分页模型 PaginationParams 默认 page_number=1、page_size=20,最大页大小 MAX_PAGE_SIZE=100,并通过 offset 属性计算数据库偏移量 资料来源:src/solace_agent_mesh/shared/api/pagination.py:9-40。响应包装器 PaginatedResponse.create() 会自动计算 total_pages 与 next_page,从而保证所有列表接口返回 { data: [...], meta: { pagination: { ... } } } 这一统一结构 资料来源:src/solace_agent_mesh/shared/api/response_utils.py:30-72。get_pagination_or_default() 则让端点可以接受可选分页参数并在缺失时安全地回落到默认值 资料来源:src/solace_agent_mesh/shared/api/pagination.py:42-63。
3.2 Platform Service
Platform Service 是部署期/运行期都需要的“平台面”能力集合。它通过 get_community_platform_routers() 暴露三类路由器:Health、Models、Providers,统一挂载在 /api/v1/platform 前缀下,特性开关在端点内部判断并对未启用特性返回 501 Not Implemented 资料来源:src/solace_agent_mesh/services/platform/api/routers/__init__.py:21-43。组件启动阶段通过 set_component_instance() 注入 PlatformServiceComponent 引用,并在 init_database() 中按方言(SQLite 走 NullPool + WAL,PostgreSQL/MySQL 走连接池 + pre_ping)初始化数据库 资料来源:src/solace_agent_mesh/services/platform/api/dependencies.py:33-72。
3.3 前端 Web UI
前端位于 client/webui/frontend/,使用 React 19 + TypeScript + Vite + Tailwind CSS + shadcn/ui 栈构建 资料来源:client/webui/frontend/README.md:50-78。它通过两类通道与后端通信:
- Server-Sent Events (SSE):实时获取 Agent 的通信流;
- REST API:用于会话、模型配置等同步请求。
前端按职责划分为 components、hooks、types、contexts、providers、utils 等子目录 资料来源:client/webui/frontend/README.md:64-78。例如 lib/api/sessions/service.ts 会调用 /api/v1/sessions?pageNumber=...&pageSize=...&agent_id=... 并解析后端返回的 PaginatedSessionsResponse 结构 资料来源:client/webui/frontend/src/lib/api/sessions/service.ts:9-36。
3.4 评估与集成生态
evaluation/ 目录提供基于 sam CLI 的评测框架,通过 sam eval <suite.json> 触发测试套件,依赖 SOLACE_BROKER_URL 等环境变量连接事件总线 资料来源:evaluation/README.md:1-38。仓库 README 还列出了一组官方教程,覆盖 Weather Agent、SQL 数据库、MCP、Slack 以及 Microsoft Teams(Enterprise)等集成场景 资料来源:README.md:10-30。
社区关注与发展动态
从最近 12 个版本的变更(v1.24.1 → v1.28.3)可以看到项目主线集中在 安全合规、MCP/TLS 可配置性、Web UI 体验 以及 工作流节点稳定性:
- v1.25.1 修复
gitpython漏洞; - v1.24.1 支持在 MCP 集成中跳过 TLS 校验;
- v1.27.0 修复工作流节点 Agent 误报工具名的缺陷;
- v1.28.0/1.28.2 持续完善用户标识、会话反查与 SSRF 防护。
社区议题 #141 反映了用户对向量数据库接入(Couchbase)教程的强烈诉求;议题 #1507 与 #1582 则聚焦在 A2A↔MCP 互通 与外部 A2A 网络(如 Nautilus)的桥接。此外,src/solace_agent_mesh/agent/utils/artifact_helpers.py 中模块级 _METADATA_LOAD_SEMAPHORE 被多个事件循环共享的隐患(#1591)提醒开发者:当前异步原语在跨循环复用时存在语义风险,应关注其使用边界。
See Also
- Pagination & Response Utilities
- Platform Service Routers
- Frontend Web UI Architecture
- Evaluation Framework
来源:https://github.com/SolaceLabs/solace-agent-mesh / 项目说明书
Agents, Orchestration, Workflows & A2A Protocol
Solace Agent Mesh(简称 SAM)是一个面向多智能体 AI 应用的协作框架,由 Solace AI Connector(SAC)与 Google Agent Development Kit(ADK)深度集成而成。它以 Solace 事件代理作为标准 Agent‑to‑Agent(A2A)协议传输层,使多个专业智能体可以异步、事件驱动地协同完成复杂任务 资料来...
继续阅读本节完整说明和来源证据。
智能体、编排、工作流与 A2A 协议
概述
Solace Agent Mesh(简称 SAM)是一个面向多智能体 AI 应用的协作框架,由 Solace AI Connector(SAC)与 Google Agent Development Kit(ADK)深度集成而成。它以 Solace 事件代理作为标准 Agent‑to‑Agent(A2A)协议传输层,使多个专业智能体可以异步、事件驱动地协同完成复杂任务 资料来源:README.md。
框架提供以下关键能力 资料来源:README.md:
- 多智能体事件驱动架构:智能体通过 Solace Event Mesh 通信,具备规模伸缩性与可靠性。
- 智能体编排:内置 Orchestrator 智能体,可自动分解任务并委派给其他智能体。
- 灵活的接口层:支持 REST API、Web UI、Slack、Microsoft Teams 等多种接入方式。
- 智能体间通信:基于 A2A 协议实现任务委派、数据共享与制品交换。
- 可扩展性:可通过插件机制添加自定义智能体、网关或服务。
整体架构示意如下:
flowchart LR
Client[外部客户端/网关] -->|REST/SSE| Gateway[SAM REST Gateway]
Gateway -->|A2A over Solace| AgentA[智能体 A]
AgentA <-->|A2A 协议| AgentB[智能体 B]
AgentA -->|委派任务| Orch[Orchestrator]
Orch -->|分解与协调| AgentB
AgentA -.->|动态发现| Mesh[(Solace Event Mesh)]
AgentB -.->|动态发现| Mesh模型配置与平台服务
智能体在运行时需要绑定 LLM 模型配置。平台服务(Platform Service)通过 FastAPI 路由器对模型配置进行统一管理,并在配置变更时发布更新事件,使正在运行的智能体能够热加载新模型 资料来源:src/solace_agent_mesh/services/platform/api/routers/model_configurations_router.py。
模型配置的核心字段定义(前端 TypeScript 类型)资料来源:client/webui/frontend/src/lib/api/models/types.ts:
| 字段 | 类型 | 说明 | |
|---|---|---|---|
id | string | 模型唯一标识 | |
alias | string | 模型别名,便于按语义引用 | |
provider | string \ | null | 提供商(如 OpenAI、Anthropic) |
modelName | string \ | null | 具体模型名称 |
apiBase | string \ | null | 自定义 API 基础地址 |
authType | string \ | null | 认证类型 |
authConfig | Record | 认证参数(如 API Key) | |
modelParams | Record | 模型参数(如 temperature) | |
maxInputTokens | number \ | null | 最大输入 token 数 |
description | string \ | null | 描述信息 |
当模型配置发生变更时,路由调用 _emit_model_config_update 函数,将更新事件同时发布到 ID 主题与别名主题,确保通过任意方式引用模型的智能体都能收到通知 资料来源:src/solace_agent_mesh/services/platform/api/routers/model_configurations_router.py。
REST 客户端与任务调用
外部系统可通过官方 Python 客户端 SAMRestClient 与智能体交互。该客户端基于 httpx.AsyncClient,支持 Bearer Token 认证与异步/同步两种调用模式 资料来源:client/sam-rest-client/src/sam_rest_client/client.py。
典型调用流程 资料来源:client/sam-rest-client/src/sam_rest_client/client.py:
- 实例化客户端:
SAMRestClient(base_url, auth_token) - 调用
invoke(agent_name, prompt, files, mode, timeout_seconds, polling_interval_seconds)提交任务 mode可选'async'或'sync',决定立即返回任务句柄还是阻塞等待结果- 返回
SAMResult对象,可提取文本响应、制品(artifacts)列表以及原始数据结构
该客户端同时暴露 get_artifacts() 方法,用于下载智能体生成的制品(如报告、图片、音频等)。
API 标准与分页响应
为保证不同智能体网关与平台端点之间的一致性,框架在 shared/api 模块中定义了统一的分页与响应工具 资料来源:src/solace_agent_mesh/shared/api/__init__.py。
分页默认值 资料来源:src/solace_agent_mesh/shared/api/pagination.py:
DEFAULT_PAGE_NUMBER = 1DEFAULT_PAGE_SIZE = 20MAX_PAGE_SIZE = 100
PaginationParams 使用 Pydantic 字段别名(pageNumber、pageSize)兼容前端调用约定,并通过 offset 属性自动计算数据库查询偏移量 资料来源:src/solace_agent_mesh/shared/api/pagination.py。
响应工具函数位于 src/solace_agent_mesh/shared/api/response_utils.py:
create_data_response(data)→ 包装为{data: T}结构create_paginated_response(data, total_count, params)→ 包装为{data: [T], meta: {pagination: {...}}}结构
所有 API 工具通过 src/solace_agent_mesh/shared/api/__init__.py 统一导出,便于在智能体网关、平台服务及自定义插件中复用 资料来源:src/solace_agent_mesh/shared/api/__init__.py。
社区讨论与已知问题
围绕智能体编排与协议互通,社区近期关注以下话题:
- A2A 与 MCP 互通:Issue #1507 提议引入 IACP(Inter‑Agent Communication Protocol)作为 A2A + MCP 智能体网格之间的桥接协议,解决不同协议智能体之间无法直接通信的问题。
- 跨生态互操作性:Issue #1582 探讨 Solace Agent Mesh 与 Nautilus A2A 之间的桥接方案,并提供 NAU 代币激励。
- 工作流节点智能体工具名幻觉:v1.27.0 修复了工作流节点智能体在编排过程中编造工具名的问题(PR #1551)。
- MCP TLS 跳过支持:v1.24.1 为 MCP 集成增加了跳过 TLS 验证的能力(PR #1495)。
另请参阅
来源:https://github.com/SolaceLabs/solace-agent-mesh / 项目说明书
Gateways, HTTP/SSE Platform & Artifact Management
Solace Agent Mesh(SAM)通过 Gateway 组件将内部的 A2A(Agent-to-Agent)协议与外部 HTTP/SSE 通道对接,向 Web UI、REST 客户端和第三方集成暴露统一的接口。Gateway 既承担协议转换的角色,也通过嵌入的 Platform Service 暴露模型配置、会话、项目、提示词与工件(artifact)管理等后端能...
继续阅读本节完整说明和来源证据。
1. 概览与定位
Solace Agent Mesh(SAM)通过 Gateway 组件将内部的 A2A(Agent-to-Agent)协议与外部 HTTP/SSE 通道对接,向 Web UI、REST 客户端和第三方集成暴露统一的接口。Gateway 既承担协议转换的角色,也通过嵌入的 Platform Service 暴露模型配置、会话、项目、提示词与工件(artifact)管理等后端能力 资料来源:README.md:31-37。
平台服务基于 FastAPI 构建,使用全局组件实例进行依赖注入,并通过统一的分页与响应工具保证 API 形态的一致性 资料来源:src/solace_agent_mesh/services/platform/api/dependencies.py:18-39。前端 Web UI 则使用 React 19 + Vite + TanStack Query 实现,对接后端 REST 与 SSE 通道,提供实时聊天、可视化流图与工件浏览能力 资料来源:client/webui/frontend/README.md:42-68。
2. HTTP/SSE Gateway 与 Platform Service 架构
Gateway 内部将 HTTP/SSE 入口与业务能力解耦为多个子模块:会话、项目、提示词、SSE 流以及 Platform Service。Platform Service 是一个挂载在 /api/v1/platform 路径前缀下的 FastAPI 子应用,统一注册 Health、Models、Providers 等社区路由 资料来源:src/solace_agent_mesh/services/platform/api/routers/__init__.py:15-39。
graph LR
UI[Web UI / REST Client] -->|HTTPS + SSE| GW[HTTP/SSE Gateway]
GW --> PS[Platform Service<br/>/api/v1/platform]
GW --> SSES[SSE Stream Router]
PS --> MC[Model Configurations]
PS --> PR[Providers]
PS --> H[Health]
SSES --> A2A[A2A Bus / Agents]
PS --> DB[(SQLAlchemy Session)]Platform Service 的依赖层在启动时通过 set_component_instance 缓存组件引用,并由 init_database 按方言分别配置连接池(SQLite 使用 NullPool + WAL,PostgreSQL/MySQL 使用带 pre-ping 的标准连接池) 资料来源:src/solace_agent_mesh/services/platform/api/dependencies.py:31-58。这使得同一份 Platform Service 既能本地嵌入式运行,也能作为独立服务部署。
3. 统一 API 模型:分页、响应与 DTO
所有 REST 端点共享 PaginationParams、DataResponse 与 PaginatedResponse 三类基础模型,强制以 {data: ...} 或 {data: [...], meta: {pagination: {...}}} 的结构返回,避免各路由自行约定导致前端解析碎片化 资料来源:src/solace_agent_mesh/shared/api/pagination.py:14-22、资料来源:src/solace_agent_mesh/shared/api/response_utils.py:12-40。
| 工具 / 模型 | 默认值 | 约束 | 作用 |
|---|---|---|---|
PaginationParams.pageNumber | 1 | ge=1 | 当前页号 |
PaginationParams.pageSize | 20 | 1 ≤ size ≤ 100 | 每页大小 |
MAX_PAGE_SIZE | 100 | — | 硬上限 |
create_data_response(data) | — | — | 包裹单值响应 |
create_paginated_response(items, total, params) | — | — | 包裹分页响应 |
这些工具通过 solace_agent_mesh.shared.api 包统一导出,配合模型配置路由的 ModelConfigurationResponse、ModelConfigurationTestResponse、ModelConfigStatusResponse 等 DTO 构成完整的请求/响应契约 资料来源:src/solace_agent_mesh/shared/api/__init__.py:1-39、资料来源:src/solace_agent_mesh/services/platform/api/routers/dto/responses/__init__.py:1-9。模型配置路由在响应前会通过 ModelConfigService 业务层过滤 API Key、OAuth Secret 等敏感字段,确保安全 资料来源:src/solace_agent_mesh/services/platform/api/routers/model_configurations_router.py:1-40。
4. 工件(Artifact)管理与前端集成
前端在 client/webui/frontend/src/lib/api/artifacts 下聚合了工件的键、类型、服务、Hook 与并发控制工具,并通过 barrel index 统一导出 资料来源:client/webui/frontend/src/lib/api/artifacts/index.ts:1-5。批量工件接口的响应结构包含 artifacts、totalCount、hasMore 与 nextPage,并附带会话/项目等上下文信息,便于前端在“全部工件”视图中做去重与分页续拉 资料来源:client/webui/frontend/src/lib/api/artifacts/types.ts:1-31。
useAllArtifacts Hook 使用 useInfiniteQuery 触发分页请求,并在 useMemo 内通过 ${filename}::${sessionId} 做跨页去重,避免在并发拉取过程中出现重复条目 资料来源:client/webui/frontend/src/lib/api/artifacts/hooks.ts:1-44。这与后端的 _METADATA_LOAD_SEMAPHORE 限制遥相呼应:社区 issue #1591 指出 artifact_helpers.py 中模块级 asyncio.Semaphore(50) 可能被跨事件循环复用,建议在重构时将信号量与事件循环绑定以避免潜在争用 资料来源:community_context #1591。
模型配置前端侧则使用 fetchModelConfigs、fetchModelById、fetchSupportedModelsByProvider 等函数,在“编辑模式”下传 modelId 复用存储凭据,在“创建模式”下使用请求中临时传入的凭据;服务端会合并两者后再探测可用模型 资料来源:client/webui/frontend/src/lib/api/models/service.ts:1-60、资料来源:client/webui/frontend/src/lib/api/models/types.ts:1-32。@tanstack/react-query 负责状态缓存与失效,@a2a-js/sdk 用于 Agent Card 与流式任务的对接 资料来源:client/webui/frontend/package.json:42-90。
5. 失败模式与运维提示
- 敏感凭据泄漏:模型配置响应必须经
ModelConfigService过滤后再下发;新增字段时需要同步更新 DTO 与前端ModelConfig类型 资料来源:src/solace_agent_mesh/services/platform/api/routers/model_configurations_router.py:1-40。 - 分页越界:
pageSize超过 100 将被PaginationParams直接拒绝;前端应使用get_pagination_or_default兜底 资料来源:src/solace_agent_mesh/shared/api/pagination.py:38-50。 - 跨循环信号量:升级到 v1.28.x 后若发现工件列表偶发卡顿,可参考 issue #1591 评估
artifact_helpers.py中_METADATA_LOAD_SEMAPHORE的归属 资料来源:community_context #1591。 - SSRF / TLS 防护:v1.28.3 重新校验了 SSRF Guard,v1.24.1 为 MCP 增加了跳过 TLS 校验的开关,相关变更需要结合部署侧网络策略同步评估 资料来源:community_context v1.28.3 / v1.24.1。
See Also
来源:https://github.com/SolaceLabs/solace-agent-mesh / 项目说明书
CLI, Plugins, Platform Services, Evaluation & Deployment
Solace Agent Mesh(SAM)是一个面向多智能体协作 AI 应用的框架。它使用 Solace 平台的事件消息机制实现智能体间的可扩展、可靠通信,使多个具备专长技能的智能体能够相互委派任务、共享制品、连接外部 UI 与系统,并以低耦合方式执行多步骤工作流。SAM 构建于 Solace AI Connector(SAC)之上。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
CLI、插件、平台服务、评估与部署
概述
Solace Agent Mesh(SAM)是一个面向多智能体协作 AI 应用的框架。它使用 Solace 平台的事件消息机制实现智能体间的可扩展、可靠通信,使多个具备专长技能的智能体能够相互委派任务、共享制品、连接外部 UI 与系统,并以低耦合方式执行多步骤工作流。SAM 构建于 Solace AI Connector(SAC)之上。
资料来源:README.md:1-50
平台服务(Platform Services)
FastAPI 应用与模块结构
平台服务以 FastAPI 为基础,入口模块位于 src/solace_agent_mesh/services/platform/api/,其 __init__.py 将自身声明为 "Platform Service FastAPI application and supporting modules",统一承载 HTTP API 端点、依赖注入与 DTO 响应模型。
资料来源:src/solace_agent_mesh/services/platform/api/__init__.py:1-4
依赖注入与数据库配置
dependencies.py 实现了平台服务的 FastAPI 依赖注入:
set_component_instance(component):在PlatformServiceComponent启动阶段存储其单例引用,供后续路由通过Depends访问,重复设置会产生告警。init_database(database_url):根据 SQLAlchemy URL 自动选择连接策略——SQLite 使用NullPool并启用 WAL 模式以支持多线程;PostgreSQL/MySQL 则启用连接池与 pre-ping 健康检查。
资料来源:src/solace_agent_mesh/services/platform/api/dependencies.py:1-60
响应 DTO 模型
平台服务响应 DTO 集中于 routers/dto/responses/__init__.py,主要导出以下模型:
| DTO 类 | 用途 |
|---|---|
ModelConfigurationResponse | 模型配置详情 |
ModelConfigStatusResponse | 模型配置启用状态 |
ModelConfigurationTestResponse | 模型连通性测试结果 |
SupportedParamsResponse | 某模型支持的参数列表 |
ModelDependentResponse | 模型依赖项响应 |
资料来源:src/solace_agent_mesh/services/platform/api/routers/dto/responses/__init__.py:1-12
共享 API 工具
分页与响应模型
shared/api/pagination.py 提供了跨端点统一的分页与响应模式:
- 常量
DEFAULT_PAGE_NUMBER = 1、DEFAULT_PAGE_SIZE = 20、MAX_PAGE_SIZE = 100。 PaginationParams通过 PydanticField别名接受pageNumber/pageSize,并提供offset属性计算 SQL 偏移量。get_pagination_or_default()帮助函数确保分页端点在未传参时回退到默认值,避免空指针。PaginatedResponse[T]自动计算total_pages与next_page并以Meta包装返回。DataResponse[T]配套create()工厂方法用于非分页场景。
资料来源:src/solace_agent_mesh/shared/api/pagination.py:1-120
公共导出与鉴权
shared/api/__init__.py 集中导出分页模型、响应工具与 get_current_user 鉴权工具,便于路由层统一引用:
from .pagination import (PaginationParams, PaginatedResponse, DataResponse, ...)
from .response_utils import (create_data_response, create_paginated_response,)
from .auth_utils import get_current_user
资料来源:src/solace_agent_mesh/shared/api/__init__.py:1-30
评估框架(Evaluation)
运行评估
评估框架位于 evaluation/,通过 sam CLI 执行:
- 快速启动:在仓库根目录执行
make test-eval-local,自动创建 Python 3.12 虚拟环境、安装依赖并运行本地评估。 - 手动方式:先
pip install .,再pip install sam-rest-gateway安装 REST 网关。 - 执行命令:
sam eval tests/evaluation/local_example.json。
必需环境变量
评估需配置 Solace Broker 连接信息(如 SOLACE_BROKER_URL),这些变量定义在测试套件 JSON 中,必须先 export 到环境才能正确运行。
资料来源:evaluation/README.md:1-50
前端 WebUI
技术栈与目录结构
前端位于 client/webui/frontend/,采用 React 19 + TypeScript + Vite,配合 Tailwind CSS、shadcn/ui 与 OpenFeature 进行构建。目录包含 components(UI 组件)、api(接口客户端与 React Query hooks)、types(TS 类型)、contexts/providers(全局状态与依赖注入)、utils(工具函数)。测试栈使用 Vitest、Storybook 与 Cypress,预提交钩子由 .hooks 配置启用。
资料来源:client/webui/frontend/README.md:1-30、client/webui/frontend/package.json:1-100
与后端的集成
- Server-Sent Events (SSE):从智能体接收实时事件流。
- REST API:用于配置管理与数据请求。
模型配置 API 客户端
client/webui/frontend/src/lib/api/models/service.ts 实现了模型配置管理的 API 客户端:
fetchModelConfigs()调用GET /api/v1/platform/models获取所有模型配置。fetchModelById(id)按 ID 获取单个模型配置。fetchSupportedModelsByProvider(provider, modelId?, options?)支持两种模式:编辑时传modelId使用数据库中的存储凭据;创建时传authConfig/modelParams使用请求中的临时凭据。
资料来源:client/webui/frontend/src/lib/api/models/service.ts:1-50
部署与安全
核心能力
SAM 在部署层面为多智能体协作提供标准化通信层,智能体可以委派任务、共享制品、连接 UI/外部系统,并以低耦合方式执行多步骤工作流,整体运行在 Solace AI Connector 之上。
资料来源:README.md:1-50
近期安全更新
最新发布版本持续修复依赖与网关层面的安全问题:
- v1.28.3 升级 Python 依赖与镜像 OS 包以清除 CVE,并重新验证 SSRF 防护(PR #1587)。
- v1.26.1 将
mako升级至 1.3.12 修复模板引擎漏洞(PR #1554)。 - v1.25.1 修复
gitpython漏洞(PR #1527)。 - v1.24.1 允许在 MCP 集成中跳过 TLS 验证(PR #1495)。
相关社区讨论
- #1591:模块级
_METADATA_LOAD_SEMAPHORE跨事件循环使用可能存在并发风险。 - #1507:提议引入 IACP 作为 A2A + MCP 智能体网格之间的桥接协议。
- #141:社区请求增加 Couchbase 作为向量数据库的集成教程。
另请参阅
- 平台服务 API:src/solace_agent_mesh/services/platform/api/
- 共享 API 工具:src/solace_agent_mesh/shared/api/
- 评估框架说明:evaluation/README.md
- 前端项目说明:client/webui/frontend/README.md
资料来源:README.md:1-50
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能阻塞安装或首次运行。
假设不成立时,用户拿不到承诺的能力。
可能增加新用户试用和生产接入成本。
Pitfall Log / 踩坑日志
项目:SolaceLabs/solace-agent-mesh
摘要:发现 10 个潜在踩坑项,其中 1 个为 high/blocking;最高优先级:安装坑 - 来源证据:Proposal: IACP as a bridge protocol for A2A + MCP agent meshes。
1. 安装坑 · 来源证据:Proposal: IACP as a bridge protocol for A2A + MCP agent meshes
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Proposal: IACP as a bridge protocol for A2A + MCP agent meshes
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/SolaceLabs/solace-agent-mesh/issues/1507 | 来源讨论提到 python 相关条件,需在安装/试用前复核。
2. 配置坑 · 来源证据:Blocking socket.getaddrinfo in async webhook path causes event loop starvation
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:Blocking socket.getaddrinfo in async webhook path causes event loop starvation
- 对用户的影响:可能阻塞安装或首次运行。
- 证据:community_evidence:github | https://github.com/SolaceLabs/solace-agent-mesh/issues/1593 | 来源讨论提到 python 相关条件,需在安装/试用前复核。
3. 能力坑 · 能力判断依赖假设
- 严重度:medium
- 证据强度:source_linked
- 发现:README/documentation is current enough for a first validation pass.
- 对用户的影响:假设不成立时,用户拿不到承诺的能力。
- 证据:capability.assumptions | https://github.com/SolaceLabs/solace-agent-mesh | README/documentation is current enough for a first validation pass.
4. 运行坑 · 来源证据:Shared module-level _METADATA_LOAD_SEMAPHORE may be used across multiple event loops
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Shared module-level _METADATA_LOAD_SEMAPHORE may be used across multiple event loops
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/SolaceLabs/solace-agent-mesh/issues/1591 | 来源类型 github_issue 暴露的待验证使用条件。
5. 维护坑 · 维护活跃度未知
- 严重度:medium
- 证据强度:source_linked
- 发现:未记录 last_activity_observed。
- 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
- 证据:evidence.maintainer_signals | https://github.com/SolaceLabs/solace-agent-mesh | last_activity_observed missing
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 证据:downstream_validation.risk_items | https://github.com/SolaceLabs/solace-agent-mesh | no_demo; severity=medium
7. 安全/权限坑 · 存在评分风险
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:风险会影响是否适合普通用户安装。
- 证据:risks.scoring_risks | https://github.com/SolaceLabs/solace-agent-mesh | no_demo; severity=medium
8. 安全/权限坑 · 来源证据:Bridging Solace Agent Mesh ↔ Nautilus A2A — interoperability probe + 10 NAU bounty
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Bridging Solace Agent Mesh ↔ Nautilus A2A — interoperability probe + 10 NAU bounty
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/SolaceLabs/solace-agent-mesh/issues/1582 | 来源类型 github_issue 暴露的待验证使用条件。
9. 维护坑 · issue/PR 响应质量未知
- 严重度:low
- 证据强度:source_linked
- 发现:issue_or_pr_quality=unknown。
- 对用户的影响:用户无法判断遇到问题后是否有人维护。
- 证据:evidence.maintainer_signals | https://github.com/SolaceLabs/solace-agent-mesh | issue_or_pr_quality=unknown
10. 维护坑 · 发布节奏不明确
- 严重度:low
- 证据强度:source_linked
- 发现:release_recency=unknown。
- 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
- 证据:evidence.maintainer_signals | https://github.com/SolaceLabs/solace-agent-mesh | release_recency=unknown
来源:Doramagic 发现、验证与编译记录