Moss

Polar Sponsor
爱发电 赞助
.NET 9.0

Moss语义搜索的文档与功能参考。用于了解Moss API、SDK及集成模式。

Moss Agent Swills 6

功能概述

Moss Agent Swills 6是一项面向实际任务的技能,主要用于Capabilitys.;Moss是对话AI的实时语义搜索运行时间. 它提供子- 10ms的搜索和即时索引更新,运行在浏览器, 在线设备, 或者。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Moss Agent 技能

能力

Moss 是面向对话式 AI 的实时语义搜索运行时。它提供低于 10 毫秒的查找延迟与即时索引更新能力,可在浏览器、终端设备或云端运行——无论您的 agent 部署在何处。Agent 可自主创建索引、嵌入文档、执行语义/混合搜索,并管理文档生命周期,无需运维基础设施。平台自动处理嵌入生成、索引持久化及可选的云同步,使 agent 能专注于检索逻辑,而非底层设施。

技能

索引管理

  • 创建索引:使用文档与嵌入模型选择构建新的语义索引
  • 加载索引:从持久化存储中加载已有索引以供查询
  • 获取索引:检索指定索引的元数据(如文档数量、模型类型等)
  • 列出索引:枚举项目下的全部索引
  • 删除索引:移除索引及其所有关联数据

文档操作

  • 添加文档:向已有索引插入或更新(upsert)文档,并支持可选元数据
  • 获取文档:按 ID 检索已存储文档,或获取全部文档
  • 删除文档:根据 ID 从索引中移除特定文档

搜索与检索

  • 语义搜索:使用自然语言进行查询,基于向量相似度匹配
  • 关键词搜索:采用 BM25 算法进行关键词精确匹配
  • 混合搜索:融合语义与关键词搜索,支持通过 alpha 参数配置权重(Python SDK)
  • 元数据过滤:按文档元数据(如 category、language、tags)约束检索结果
  • Top-K 结果:返回指定数量的最佳匹配文档及其相关性得分

嵌入模型

  • moss-minilm:轻量快速模型,专为边缘端/离线场景优化(默认)
  • moss-mediumlm:更高精度模型,在对准确性要求严苛的场景中保持合理性能

SDK 方法

JavaScript Python 描述
createIndex() create_index() 创建含文档的索引
loadIndex() load_index() 从存储加载索引
getIndex() get_index() 获取索引元数据
listIndexes() list_indexes() 列出全部索引
deleteIndex() delete_index() 删除索引
addDocs() add_docs() 添加/更新文档
getDocs() get_docs() 检索文档
deleteDocs() delete_docs() 移除文档
query() query() 语义 / 混合搜索

API 动作

所有 REST API 操作均通过 POST /v1/manage(基础 URL:https://service.usemoss.dev/v1)发起,请求体中需包含 action 字段:

动作 用途 额外必需字段
initUpload 获取用于上传索引数据的预签名 URL indexName、modelId、docCount、dimension
startBuild 在数据上传完成后触发索引构建 jobId
getJobStatus 检查异步构建任务的状态 jobId
getIndex 获取单个索引的元数据 indexName
listIndexes 枚举项目下的全部索引 —
deleteIndex 移除索引记录及其关联资源 indexName
getIndexUrl 获取已构建索引的下载 URL indexName
addDocs 向已有索引 upsert 文档 indexName、docs
deleteDocs 按 ID 移除文档 indexName、docIds
getDocs 检索已存储文档(不含嵌入向量) indexName

工作流

基础语义搜索工作流

  1. 使用项目凭据初始化 MossClient
  2. 调用 createIndex() 并传入文档与模型选项(JavaScript 中为 { modelId: 'moss-minilm' };Python 中为字符串 "moss-minilm")
  3. 调用 loadIndex() 以准备索引用于查询
  4. 调用 query() 并传入搜索文本及 topK(JavaScript)或 QueryOptions(top_k=...)(Python)
  5. 处理返回的带得分的文档结果

混合搜索工作流(Python)

Python SDK 中通过 QueryOptions 提供 alpha 加权混合功能:

  1. 按上述方式创建并加载索引
  2. 调用 query() 时传入含 alpha 参数的 QueryOptions 对象
  3. alpha=1.0 表示纯语义搜索,alpha=0.0 表示纯关键词搜索,alpha=0.6 表示 60/40 混合
  4. 默认偏向语义搜索,适用于对话式场景

文档更新工作流

  1. 初始化 client 并确保索引已存在
  2. 调用 addDocs() 传入新文档(默认为 upsert —— 相同 ID 的文档将被更新)
  3. 调用 deleteDocs() 按 ID 删除过时文档

语音 Agent 上下文注入工作流

此为语音 Agent 流水线的可选集成模式,并非本技能的自动行为。

  1. 在 Agent 启动时初始化 MossClient 并加载索引
  2. 在应用代码中,对每个用户消息调用 query() 以检索相关上下文
  3. 在 LLM 生成响应前,将搜索结果注入其上下文
  4. 以知识增强的方式响应(无工具调用延迟)

离线优先搜索工作流

  1. 使用本地嵌入模型与文档创建索引
  2. 从本地存储加载索引
  3. 查询完全在设备端执行,延迟低于 10 毫秒
  4. 可选地同步至云端以实现备份与共享

集成

语音 Agent 框架

  • LiveKit:通过 inferedge-moss SDK 将上下文注入语音 Agent 流水线
  • Pipecat:通过 pipecat-moss 包提供流水线处理器,自动注入检索结果

上下文

认证

SDK 需要项目凭据:

  • MOSS_PROJECT_ID:来自 Moss Portal 的项目标识符
  • MOSS_PROJECT_KEY:来自 Moss Portal 的项目访问密钥
export MOSS_PROJECT_ID=your_project_id
export MOSS_PROJECT_KEY=your_project_key

REST API 要求每次请求包含以下内容:

  • x-project-key 请求头:项目访问密钥
  • x-service-version: v1 请求头:API 版本
  • JSON 请求体中的 projectId 字段
curl -X POST "https://service.usemoss.dev/v1/manage" 
  -H "Content-Type: application/json" 
  -H "x-service-version: v1" 
  -H "x-project-key: moss_access_key_xxxxx" 
  -d '{"action": "listIndexes", "projectId": "project_123"}'

包安装

语言 包 安装命令
JavaScript/TypeScript @inferedge/moss npm install @inferedge/moss
Python inferedge-moss pip install inferedge-moss
Pipecat 集成 pipecat-moss pip install pipecat-moss

文档结构

interface DocumentInfo {
  id: string;        // 必填:唯一标识符
  text: string;      // 必填:待嵌入与检索的内容
  metadata?: object; // 可选:用于过滤的键值对
}

查询参数

参数 SDK 类型 默认值 描述
indexName JS + Python string — 目标索引名称(必填)
query JS + Python string — 自然语言搜索文本(必填)
topK JS number 5 最多返回结果数
top_k Python int 5 最多返回结果数
alpha 仅 Python float ~0.8 混合加权:0.0=关键词,1.0=语义
filters JS + Python object — 元数据约束条件

模型选择

模型 适用场景 权衡考量
moss-minilm 边缘端、离线、浏览器、速度优先 快速、轻量
moss-mediumlm 精度关键型、更高准确率需求 略慢

性能预期

  • 本地查询延迟低于 10 毫秒(依赖硬件)
  • 索引更新即时生效,无需全量重建语料库
  • 同步为可选功能;计算保留在设备端
  • 无需管理任何基础设施

分块最佳实践

  • 每块建议约 200–500 个 token
  • 块间重叠 10–20%,以保留上下文连贯性
  • 标准化空白字符并清除模板内容(boilerplate)

常见错误

错误 原因 修复方法
Unauthorized(未授权) 缺失凭据 设置 MOSS_PROJECT_ID 和 MOSS_PROJECT_KEY
Index not found(索引未找到) 在创建前执行查询 先调用 createIndex()
Index not loaded(索引未加载) 在加载前执行查询 在 query() 前调用 loadIndex()
Missing embeddings runtime(缺少嵌入运行时) 模型无效 使用 moss-minilm 或 moss-mediumlm

异步模式

所有 SDK 方法均为异步 —— 务必始终使用 await:

// JavaScript
import { MossClient, DocumentInfo } from '@inferedge/moss'
const client = new MossClient(process.env.MOSS_PROJECT_ID!, process.env.MOSS_PROJECT_KEY!)
await client.createIndex('faqs', docs, { modelId: 'moss-minilm' })
await client.loadIndex('faqs')
const results = await client.query('faqs', 'search text', { topK: 5 })
# Python
import os
from inferedge_moss import MossClient, QueryOptions
client = MossClient(os.getenv('MOSS_PROJECT_ID'), os.getenv('MOSS_PROJECT_KEY'))
await client.create_index('faqs', docs, 'moss-minilm')
await client.load_index('faqs')
results = await client.query('faqs', 'search text', QueryOptions(top_k=5, alpha=0.6))

更多文档与导航,请参阅:https://docs.moss.dev/llms.txt

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习