Swarmauri SDK
用可插拔的接口与命名空间包,组合出类型安全的 Python 智能体、模型与工具系统。
- Star 数
- ★ 105
- 最近更新
- 2 个月前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 41/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 需要在同一代码库中混用多个 LLM 提供商、嵌入模型与向量库,而不被某一供应商锁定的后端团队。
- 不适合
- 希望开箱即用、无需自行拼装组件与依赖的团队
- 需要单一供应商全家桶、拒绝插件式架构的项目
这个 Agent 能做什么,适合哪些场景?
Swarmauri SDK 是一个面向 Python 的可组合智能基础设施库,采用单仓库(monorepo)组织,包含 swarmauri 命名空间包、swarmauri_core 接口契约、swarmauri_base 可复用基类、swarmauri_standard 一方标准组件,以及社区、插件、标准与实验性包。它把智能体、链条、对话、文档、嵌入、LLM、解析器、提示词、工具、工具包、向量存储、签名、密钥提供者、传输、中间件与存储适配器等组件家族拆成可独立安装的发行包。运行时依赖命名空间导入与插件发现机制:导入 swarmauri 后,InterfaceRegistry 与 PluginCitizenshipRegistry 会列出已安装并可发现的组件映射。组件基于 Pydantic 与 ComponentBase 实现序列化与动态类型注册,可通过 SubclassUnion 在多态字段中反序列化为具体实现类。用户既可以用 pip/uv 安装全量组件包,也可以只安装所需的某个组件家族包,并直接以包级导入使用。
安装后导入 swarmauri 会激活命名空间发现,填充 InterfaceRegistry 与 PluginCitizenshipRegistry;开发者随后从 swarmauri.* 公共路径或 swarmauri_standard 等具体包导入组件,例如 Document、AdditionTool 或 Ed25519EnvelopeSigner,并直接实例化调用。组件作者基于 ComponentBase 注册类型标签(如 @ComponentBase.register_type(VectorStoreBase, "YourVectorStore")),从而让 Pydantic 模型通过 SubclassUnion[ComponentBase] 依据 JSON 中的 type 字段还原为具体类。插件包通过 pyproject.toml 中的 swarmauri.vectorstores 等 entry point 暴露实现,使命名空间导入在安装后可用。仓库本身不提供独立运行的智能体进程或服务端,产出的是一个可被 import 的 Python 库与组件生态。
- 需要在同一代码库中混用多个 LLM 提供商、嵌入模型与向量库,而不被某一供应商锁定的后端团队。
- 编写可插拔工具(如 Jupyter 导出、向量库写入)并希望以独立 PyPI 包分发的组件开发者。
- 构建 RAG 流程、需要解析器、嵌入与向量存储组件各自独立安装的 Python 应用。
- 需要 Ed25519 或 JWS 签名、密钥提供者与加密组件来加固数据交换的系统集成方。
- 以 Pydantic 多态序列化描述组件配置(如连接器、工具规格)并通过 JSON 反序列化的平台架构者。
如何安装或部署这个 Agent?
使用 uv 安装命名空间包:
uv add swarmauri或使用 pip:
pip install swarmauri需要更完整的组件集合时可安装 full 附加组:
uv add "swarmauri[full]"
pip install "swarmauri[full]"若只是编写组件,可只安装基础包:
uv add swarmauri_core swarmauri_base
pip install swarmauri_core swarmauri_base仅需单一组件家族时按需安装,例如:
uv add swarmauri_vectorstore_pinecone
uv add swarmauri_tool_jupyterexportlatex
uv add swarmauri_signing_ed25519运行环境需 Python 3.10–3.14;使用向量库、嵌入或 LLM 组件时,还需按对应第三方包的文档自行获取并配置提供商凭据。
如何使用这个 Agent?
导入 swarmauri 以激活命名空间发现并查看已注册组件:
import swarmauri
from swarmauri.interface_registry import InterfaceRegistry
from swarmauri.plugin_citizenship_registry import PluginCitizenshipRegistry
print(len(InterfaceRegistry.list_registered_namespaces()))
print(len(PluginCitizenshipRegistry.total_registry()))安装实现包后通过 namespace 使用具体组件:
import swarmauri
from swarmauri.signings.Ed25519EnvelopeSigner import Ed25519EnvelopeSigner
signer = Ed25519EnvelopeSigner()
print(signer.type)也可以直接按包导入以获得最窄依赖面:
from swarmauri_standard.documents import Document
from swarmauri_standard.tools import AdditionTool
doc = Document(content="Direct package import")
tool = AdditionTool()
print(doc.type)
print(tool("2+2"))借助 swarmauri_base 进行动态组件序列化与按 type 反序列化:
from typing import Literal
from pydantic import BaseModel
from swarmauri_base.ComponentBase import ComponentBase
from swarmauri_base.DynamicBase import SubclassUnion
@ComponentBase.register_model()
class ConnectorBase(ComponentBase):
type: Literal["ConnectorBase"] = "ConnectorBase"
label: str
@ComponentBase.register_type(ConnectorBase, "ApiConnector")
class ApiConnector(ConnectorBase):
type: Literal["ApiConnector"] = "ApiConnector"
endpoint: str
class ConnectorSpec(BaseModel):
connector: SubclassUnion[ConnectorBase]
spec = ConnectorSpec.model_validate_json(
'{"connector":{"type":"ApiConnector","label":"primary","endpoint":"https://api.example.test"}}'
)
assert isinstance(spec.connector, ApiConnector)自建插件包时,在 pyproject.toml 中注册 entry point 以便命名空间发现:
[project.entry-points.'swarmauri.vectorstores']
YourVectorStore = "swarmauri_vectorstore_yourplugin:YourVectorStore"这个 Agent 有哪些优点和局限?
- 接口与实现分离:swarmauri_core 定义契约,swarmauri_base 提供可复用行为,便于替换组件而不改业务代码。
- 命名空间导入 + entry point 插件发现,使可选依赖各自成包,避免一次安装所有提供商依赖。
- Pydantic 与 ComponentBase.register_type 支撑的 SubclassUnion 反序列化,可把 JSON 配置还原为具体组件实例。
- 组件家族覆盖面广,除 LLM、嵌入、向量存储外还包含签名、密钥提供者、传输、中间件与计费适配器。
- 包元数据声明支持 Python 3.10–3.14,安装方式同时兼容 uv 与 pip。
- 需要自行拼装组件与依赖,README 未提供端到端可直接运行的智能体示例或服务部署方式。
- 多数实际能力依赖第三方提供商包,使用前需另行获取并配置对应凭据与 SDK。
- 组件分布在大量独立 PyPI 包中,版本协同与兼容性需要使用者自行管理。
- 仓库文档以包级说明为主,缺少集中式的快速排错与完整配置参考。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Swarmauri SDK 当前 | 41 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 105 | 2 个月前 | Python | — |
| Rig | 70 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 9.1k | 今天 | Rust | OpenAI API |
| DemoGPT AgentHub | 30 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.9k | 7 个月前 | Python | OpenAI API |
| Atomic Agents | 64 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 6.3k | 6 天前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据仅显示一个模块化 SDK 框架:README 强调接口契约与可插拔组件,但未说明运行时权限边界、用户确认流程、数据流向披露或回滚机制。least_privilege 仅因接口优先架构暗示最小依赖面而给 1;user_confirmation 完全缺失给 0;data_flow_transparency 与 sensitive_data_handling 仅由 YamlMixin 测试中的 api_key 占位符替换间接体现,属薄证据给 1;dependency_security 有 license-scan 工作流但仅扫描许可证而非漏洞,给 1;external_effects 无副作用控制说明给 1;rollback 无任何证据给 0;source_attribution 有 LICENSE 版权署名但发布者身份未验证,给 1。
self_consistency 方面 README 的包结构、安装命令与测试文件中的导入路径相互一致,给 2;dependency_availability 仅列出 PyPI 包名与 uv/pip 命令,未固定版本或提供锁文件证据,给 1;failure_messages 测试中未见错误处理或诊断信息设计,仅 license-scan 工作流有错误注解,给 1。
audience_and_scenarios 明确区分组件作者、应用开发者与插件作者场景,给 2;capability_boundaries 列出组件族但未界定 Agent 能力边界或安全限制,给 1;trigger_precision 无触发条件或调用精度说明,给 1;environment_fit 明确支持 Python 3.10–3.14 并给出 uv/pip 安装,给 2。
information_architecture 有清晰的包分区与文档链接,给 2;install_notes 提供多种安装方式,给 2;naming_stability 强调稳定 swarmauri.* 命名空间,给 2;examples_and_faq 有 FAQ 与多段代码示例,给 2;known_limitations 完全缺失,给 0;license 有完整 Apache-2.0 文本与版权署名,给 3;versioning_changelog 仅工作流文件名含 v0.10.0,无正式变更日志,给 1;maintenance_responsibility 有 CONTRIBUTING 链接但发布者未验证、责任归属不清,给 1。
output_usability 示例代码可直接运行且展示序列化与注册用法,给 2;marginal_value 作为通用 SDK 框架价值存在但缺乏差异化证据,给 1;cost_benefit 依赖面广、可选包多,未说明资源开销,给 1。
claim_traceability README 声明可对应到测试文件与工作流,但多数功能声明无对应证据,给 1;cross_source_corroboration README、测试与工作流部分互证,给 1;fact_inference_separation 文档未明确区分事实与推断,给 1。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者身份未经 FollowAgents 企业注册表验证,维护责任与更新路径不明确。
- 缺少已知限制、变更日志与版本固定策略,生产使用前需自行评估依赖风险。
- license-scan 工作流仅检查许可证合规,不覆盖依赖漏洞扫描。
- 未发现用户确认、回滚或数据流向披露机制,涉及敏感数据或外部副作用时需额外防护。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。