Swarmauri SDK

用可插拔的接口与命名空间包,组合出类型安全的 Python 智能体、模型与工具系统。

Star 数
★ 105
最近更新
2 个月前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
通用 · 跨平台
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.10–3.14uv 或 pip可选组件包对应的第三方服务 SDKShell / 命令行网络访问本地文件系统
典型场景
需要在同一代码库中混用多个 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 库与组件生态。

  1. 需要在同一代码库中混用多个 LLM 提供商、嵌入模型与向量库,而不被某一供应商锁定的后端团队。
  2. 编写可插拔工具(如 Jupyter 导出、向量库写入)并希望以独立 PyPI 包分发的组件开发者。
  3. 构建 RAG 流程、需要解析器、嵌入与向量存储组件各自独立安装的 Python 应用。
  4. 需要 Ed25519 或 JWS 签名、密钥提供者与加密组件来加固数据交换的系统集成方。
  5. 以 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?

FollowAgents 源码审查 · FARS-2.1
缺口较多
41/ 100 五分制 2.1 / 5
信任安全 7/29
可靠稳定 6/14
适用触发 9/18
规范维护 10/18
有效结果 6/13
证据核验 3/8
查看各维度的扣分理由
信任安全7 / 29 · 1.2/5

证据仅显示一个模块化 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。

可靠稳定6 / 14 · 2.1/5

self_consistency 方面 README 的包结构、安装命令与测试文件中的导入路径相互一致,给 2;dependency_availability 仅列出 PyPI 包名与 uv/pip 命令,未固定版本或提供锁文件证据,给 1;failure_messages 测试中未见错误处理或诊断信息设计,仅 license-scan 工作流有错误注解,给 1。

适用触发9 / 18 · 2.5/5

audience_and_scenarios 明确区分组件作者、应用开发者与插件作者场景,给 2;capability_boundaries 列出组件族但未界定 Agent 能力边界或安全限制,给 1;trigger_precision 无触发条件或调用精度说明,给 1;environment_fit 明确支持 Python 3.10–3.14 并给出 uv/pip 安装,给 2。

规范维护10 / 18 · 2.8/5

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。

有效结果6 / 13 · 2.3/5

output_usability 示例代码可直接运行且展示序列化与注册用法,给 2;marginal_value 作为通用 SDK 框架价值存在但缺乏差异化证据,给 1;cost_benefit 依赖面广、可选包多,未说明资源开销,给 1。

证据核验3 / 8 · 1.9/5

claim_traceability README 声明可对应到测试文件与工作流,但多数功能声明无对应证据,给 1;cross_source_corroboration README、测试与工作流部分互证,给 1;fact_inference_separation 文档未明确区分事实与推断,给 1。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 发布者身份未经 FollowAgents 企业注册表验证,维护责任与更新路径不明确。
  • 缺少已知限制、变更日志与版本固定策略,生产使用前需自行评估依赖风险。
  • license-scan 工作流仅检查许可证合规,不覆盖依赖漏洞扫描。
  • 未发现用户确认、回滚或数据流向披露机制,涉及敏感数据或外部副作用时需额外防护。
证据充分度:低 评估于 2026年11月1日 审查版本 f5580ff6d612
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. swarmauri_pop_cwt==0.11.0.dev5 预发布
    发布说明摘录
    Initial release.
    在 GitHub 查看 ↗

常见问题

Swarmauri 会替我托管智能体服务吗?
不会。它是以库和命名空间包形式分发的 SDK,智能体逻辑与部署边界由使用者在自己的 Python 应用中实现与承载。
只装 swarmauri 这一个包够用吗?
swarmauri 提供命名空间导入与插件发现层,具体组件需按需安装 swarmauri_standard 或某个组件家族包,例如 swarmauri_vectorstore_pinecone。
使用它需要付费吗?
SDK 以 Apache-2.0 许可开源;但接入 LLM、嵌入或向量数据库时,费用取决于所选第三方提供商,需自行承担。
怎样让自建组件能被公共路径导入?
在 pyproject.toml 里注册 swarmauri.vectorstores 等 entry point,并用 ComponentBase.register_type 绑定类型标签,安装后即可被命名空间发现。
支持哪些 Python 版本?
包元数据与徽章声明支持 Python 3.10、3.11、3.12、3.13 与 3.14。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents