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) 实现横向扩展与高可靠交付。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 3.1 共享 API 工具层

继续阅读本节完整说明和来源证据。

章节 3.2 Platform Service

继续阅读本节完整说明和来源证据。

章节 3.3 前端 Web UI

继续阅读本节完整说明和来源证据。

项目定位与核心价值

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-39Platform Service API 负责模型配置、健康检查与 Provider 注册等平台级能力 资料来源:src/solace_agent_mesh/services/platform/api/routers/__init__.py:21-43

核心模块与组件

3.1 共享 API 工具层

shared/api 包提供了所有 REST 接口共用的基础模型与响应构造器。分页模型 PaginationParams 默认 page_number=1page_size=20,最大页大小 MAX_PAGE_SIZE=100,并通过 offset 属性计算数据库偏移量 资料来源:src/solace_agent_mesh/shared/api/pagination.py:9-40。响应包装器 PaginatedResponse.create() 会自动计算 total_pagesnext_page,从而保证所有列表接口返回 { data: [...], meta: { pagination: { ... } } } 这一统一结构 资料来源:src/solace_agent_mesh/shared/api/response_utils.py:30-72get_pagination_or_default() 则让端点可以接受可选分页参数并在缺失时安全地回落到默认值 资料来源:src/solace_agent_mesh/shared/api/pagination.py:42-63

3.2 Platform Service

Platform Service 是部署期/运行期都需要的“平台面”能力集合。它通过 get_community_platform_routers() 暴露三类路由器:HealthModelsProviders,统一挂载在 /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:用于会话、模型配置等同步请求。

前端按职责划分为 componentshookstypescontextsprovidersutils 等子目录 资料来源: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

字段类型说明
idstring模型唯一标识
aliasstring模型别名,便于按语义引用
providerstring \null提供商(如 OpenAI、Anthropic)
modelNamestring \null具体模型名称
apiBasestring \null自定义 API 基础地址
authTypestring \null认证类型
authConfigRecord认证参数(如 API Key)
modelParamsRecord模型参数(如 temperature)
maxInputTokensnumber \null最大输入 token 数
descriptionstring \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

  1. 实例化客户端:SAMRestClient(base_url, auth_token)
  2. 调用 invoke(agent_name, prompt, files, mode, timeout_seconds, polling_interval_seconds) 提交任务
  3. mode 可选 'async''sync',决定立即返回任务句柄还是阻塞等待结果
  4. 返回 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 = 1
  • DEFAULT_PAGE_SIZE = 20
  • MAX_PAGE_SIZE = 100

PaginationParams 使用 Pydantic 字段别名(pageNumberpageSize)兼容前端调用约定,并通过 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 子应用,统一注册 HealthModelsProviders 等社区路由 资料来源: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 端点共享 PaginationParamsDataResponsePaginatedResponse 三类基础模型,强制以 {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.pageNumber1ge=1当前页号
PaginationParams.pageSize201 ≤ size ≤ 100每页大小
MAX_PAGE_SIZE100硬上限
create_data_response(data)包裹单值响应
create_paginated_response(items, total, params)包裹分页响应

这些工具通过 solace_agent_mesh.shared.api 包统一导出,配合模型配置路由的 ModelConfigurationResponseModelConfigurationTestResponseModelConfigStatusResponse 等 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。批量工件接口的响应结构包含 artifactstotalCounthasMorenextPage,并附带会话/项目等上下文信息,便于前端在“全部工件”视图中做去重与分页续拉 资料来源: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。

模型配置前端侧则使用 fetchModelConfigsfetchModelByIdfetchSupportedModelsByProvider 等函数,在“编辑模式”下传 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)之上。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 FastAPI 应用与模块结构

继续阅读本节完整说明和来源证据。

章节 依赖注入与数据库配置

继续阅读本节完整说明和来源证据。

章节 响应 DTO 模型

继续阅读本节完整说明和来源证据。

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 = 1DEFAULT_PAGE_SIZE = 20MAX_PAGE_SIZE = 100
  • PaginationParams 通过 Pydantic Field 别名接受 pageNumber/pageSize,并提供 offset 属性计算 SQL 偏移量。
  • get_pagination_or_default() 帮助函数确保分页端点在未传参时回退到默认值,避免空指针。
  • PaginatedResponse[T] 自动计算 total_pagesnext_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-30client/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 作为向量数据库的集成教程。

另请参阅

资料来源:README.md:1-50

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

high 来源证据:Proposal: IACP as a bridge protocol for A2A + MCP agent meshes

可能增加新用户试用和生产接入成本。

medium 来源证据:Blocking socket.getaddrinfo in async webhook path causes event loop starvation

可能阻塞安装或首次运行。

medium 能力判断依赖假设

假设不成立时,用户拿不到承诺的能力。

medium 来源证据:Shared module-level _METADATA_LOAD_SEMAPHORE may be used across multiple event loops

可能增加新用户试用和生产接入成本。

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 发现、验证与编译记录