Moss
面向 AI 智能体的亚 10 毫秒语义检索运行时,无需向量数据库,可嵌入浏览器、边缘与云端。
- 源仓库
- usemoss/moss
- Star 数
- ★ 682
- 最近更新
- 2 天前
- License
- BSD-2-Clause
- 主语言
- Python
- FA 评分
- 59/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 语音客服或实时对话智能体开发者:需要把检索延迟压到 10 毫秒以内,否则会打断对话节奏。
- 不适合
- 无法接受索引托管在 Moss Cloud 的团队
- 完全不联网或需在气隙环境运行的场景
这个 Agent 能做什么,适合哪些场景?
Moss 是一个把检索和嵌入直接跑在应用进程内的搜索运行时。它由三部分组成:Moss Cloud 负责文档摄取、嵌入、存储与分发;Index 是把文档与向量打包成的单一产物;Runtime 嵌入在你的 Python、TypeScript、Elixir 或 C 应用中,通过 HTTPS 拉取索引并在本地内存中应答查询。SDK 提供 create_index、load_index、query 等接口,支持语义加关键词的混合检索、内置嵌入模型、元数据过滤($eq、$and、$in、$near),另有 WebAssembly 版本 @moss-dev/moss-web 可完全在浏览器端运行。官方基准显示 10 万文档上端到端 P50 为 3.1 毫秒,明显快于远程向量库的数百毫秒往返。仓库同时提供 CLI、多种数据库连接器以及 LangChain、LlamaIndex、Pipecat、LiveKit、Vapi、ElevenLabs 等框架集成示例,采用 BSD-2-Clause 许可。
使用 Moss 的典型流程是:先在 moss.dev 注册获得 project_id 与 project_key,然后用 MossClient 的 create_index 方法写入带 id 与 text 的文档,Moss Cloud 负责生成嵌入并打包成可分发索引。客户端调用 load_index 通过 HTTPS 把索引拉到本地内存,随后 query 在本进程内完成嵌入与检索,返回 docs 列表以及 time_taken_ms,单次查询延迟在个位数毫秒。查询支持 QueryOptions(top_k=...) 或 { topK } 指定返回条数,并通过元数据操作符做条件过滤。浏览器场景改用 @moss-dev/moss-web 这个 WebAssembly 构建,索引下载后完全在客户端查询,无需服务端。仓库还包含 packages/moss-cli 的命令行工具、packages/moss-data-connector 的 SQLite/MongoDB/MySQL/Supabase 摄取连接器,以及 examples 与 apps 下可直接运行的语言、语音智能体和框架集成样例。
- 语音客服或实时对话智能体开发者:需要把检索延迟压到 10 毫秒以内,否则会打断对话节奏。
- 要构建 RAG 的后端团队:希望避免自建与管理向量数据库集群,直接用 SDK 在进程内查询索引。
- 做静态站点或浏览器扩展的前端团队:需要客户端语义搜索,使用 @moss-dev/moss-web 在浏览器内离线查询。
- 已在用 LangChain、LlamaIndex、DSPy 或 CrewAI 的团队:想给现有检索链换成低延迟运行时。
- 搭 Pipecat、LiveKit、Vapi、ElevenLabs 语音管线的团队:需要把低延迟检索接入实时音频流程。
- 从 SQLite、MongoDB、MySQL 或 Supabase 同步数据的团队:希望用现成连接器把业务数据摄入索引。
如何安装或部署这个 Agent?
服务端先安装对应语言的 SDK,并在 moss.dev 注册取得 project_id 与 project_key。Python 需要 3.10+:
pip install mossTypeScript / Node.js 需要 20+:
npm install @moss-dev/moss浏览器端使用独立的 WebAssembly 包:
npm install @moss-dev/moss-web运行仓库自带示例前,需要把凭证写进 .env(复制 .env.example 后填写):
cd examples/python
pip install -r requirements.txt
cp ../../.env.example .env
python load_and_query_sample.py如何使用这个 Agent?
Python 端到端示例:
from moss import MossClient, QueryOptions
client = MossClient("your_project_id", "your_project_key")
await client.create_index("support-docs", [
{"id": "1", "text": "Refunds are processed within 3-5 business days."},
{"id": "2", "text": "You can track your order on the dashboard."},
{"id": "3", "text": "We offer 24/7 live chat support."},
])
await client.load_index("support-docs")
results = await client.query("support-docs", "how long do refunds take?", QueryOptions(top_k=3))TypeScript 端到端示例:
import { MossClient } from "@moss-dev/moss";
const client = new MossClient("your_project_id", "your_project_key");
await client.createIndex("support-docs", [
{ id: "1", text: "Refunds are processed within 3-5 business days." },
{ id: "2", text: "You can track your order on the dashboard." },
{ id: "3", text: "We offer 24/7 live chat support." },
]);
await client.loadIndex("support-docs");
const results = await client.query("support-docs", "how long do refunds take?", { topK: 3 });这个 Agent 有哪些优点和局限?
- 查询在应用进程内完成,官方基准中 10 万文档端到端 P50 为 3.1 毫秒,比远程向量库快两个数量级
- 内置嵌入模型,无需 OpenAI 密钥即可生成向量,也支持自带嵌入
- 同时提供服务端 SDK 与 @moss-dev/moss-web 的 WebAssembly 构建,浏览器内即可离线检索
- Python、TypeScript、Elixir、C 多语言 SDK,配套 CLI、数据库连接器和大量框架/语音智能体集成样例
- BSD-2-Clause 许可,SDK、示例与集成代码完全开源
- 索引的摄取、嵌入、存储与分发依赖 Moss Cloud,使用 project_id 与 project_key,本地无法完全脱离该服务构建索引
- 基准是官方数字,且竞品在对比中使用外部嵌入服务,实际相对优势需自行复现验证
- 文档以英文为主,中文资料有限,团队需自行承担翻译成本
- Python SDK 需要 3.10+、Node.js 需要 20+,旧运行时无法直接使用
这个 Agent 与同类方案有什么区别?
README 在基准中直接对比了 Pinecone(端到端 P50 432.6 毫秒)、Qdrant(597.6 毫秒)与 ChromaDB(351.8 毫秒),指出这些系统需要远程向量数据库往返,而 Moss 把检索与嵌入放进进程内;README 也明确说明 Moss 不是数据库,不涉及集群管理、HNSW 参数调优或分片。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Moss 当前 | 59 · 缺口较多 | 代码库 / SDK免费版 + 付费版 | ★ 682 | 2 天前 | Python | — |
| MCP Memory Service | 68 · 存在缺口 | MCP 服务器免费 | ★ 2k | 今天 | Python | ChatGPT · Codex · Claude Code · Claude.ai |
| RAGLight | 63 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 672 | 1 个月前 | Python | OpenAI API |
| AgentOS | 52 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 673 | 今天 | TypeScript | Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
权限面较克制:SDK 嵌入应用、查询在进程内完成,CI 工作流均设 contents: read,Codex 审核工作流对 fork 代码采取不签出、仅读 diff 的结构性隔离并固定 action SHA,值得肯定;扣分点:无索引删除或配置变更的回滚/恢复机制说明(rollback 0),README 未提示 project_key 在浏览器 WASM 场景下的泄露风险(sensitive_data_handling 仅 1),依赖安全仅有版本 override 与 ruff 固定,无审计证据(1),create_index 等外部写入效果仅一句带过(1),工具型场景缺乏用户确认设计(1)。归属信息明确(Moss 团队、YC、贡献者图),但发布者身份未经注册表验证(2)。
CI 覆盖 Python 多版本矩阵、Node 矩阵、lint/type-check/pytest,ruff 固定并附回归原因注释,lockfile 与 engines 声明齐全(dependency_availability 2);agora 中间件测试展示失败路径、fail-open 流式行为、doctor 自检入口与 401 鉴权(failure_messages 2)。扣分:README 称 Elixir/C SDK 已可用,Contributing 又把 Elixir 列为待开发绑定,且 PyPI 下载徽章指向 inferedge-moss-core 旧包名,存在自述不一致(self_consistency 1)。
场景覆盖非常充分:语音代理、浏览器 WASM、Docker 本地栈、MCP、20+ 框架集成,Python 3.10–3.14 与 Node 20/22 均有适配(audience 3, environment_fit 3);明确说明'不是数据库而是搜索运行时'划定了边界(2)。扣分:工具触发精度仅依赖少量 MCP 示例,未见触发词/意图路由的系统性设计(1),性能之外的容量/一致性局限基本未披露。
目录结构、docs 站点、快速上手、.env 示例、逐示例运行说明齐全(information_architecture 3, install_notes 3);BSD-2-Clause LICENSE 文件在库且与 README 一致(license 3);SECURITY.md 含支持版本表与响应时间表(maintenance 2)。扣分:无 CHANGELOG(versioning 1),命名不稳定——PyPI 徽章用 inferedge-moss-core 而 npm 用 @moss-dev/moss(1),已知局限章节缺失(1),示例丰富但无 FAQ(2)。
查询结果带 score、top_k、耗时字段并可直接打印(output_usability 2);相对向量数据库的进程内检索差异化清晰,附对齐基准表(marginal_value 2)。扣分:强依赖 Moss Cloud 账号与托管索引,迁移成本与供应商锁定未讨论(cost_benefit 2 而非更高)。
基准声明附复现路径 ./benchmarks/ 且说明硬件、查询数与测量口径(claim_traceability 2);营销性断言与基准结果基本区分(2)。扣分:所有性能与集成声明均来自本仓库自述,静态评审无法跨源印证(cross_source_corroboration 1)。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 所有性能数据(<10ms、基准对比)均为项目自述,本次为静态评审未执行复现,采用前应自行跑通 benchmarks/ 目录验证。
- README 未提示在浏览器 WASM 场景下 project_key 会暴露于客户端,部署前端检索前需评估密钥泄露与配额滥用风险。
- 索引与分发完全依赖 Moss Cloud 托管,存在供应商锁定;无本地索引持久化或回滚机制的公开说明。
- 包命名存在历史迁移痕迹(inferedge-moss-core 与 moss 并存),安装时确认所装包与版本一致。
- 依赖安全仅见版本 override 与 ruff 固定,未提供 lockfile 审计或 SBOM,生产引入前建议自行审计。