{
  "schemaVersion": "1.0",
  "item": {
    "slug": "moss",
    "name": "Moss",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/CoderOMaster/moss",
    "canonicalUrl": "https://clawhub.ai/CoderOMaster/moss",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/moss",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=moss",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "_meta.json",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/moss"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/moss",
    "agentPageUrl": "https://openagent3.xyz/skills/moss/agent",
    "manifestUrl": "https://openagent3.xyz/skills/moss/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/moss/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Capabilities",
        "body": "Moss is the real-time semantic search runtime for conversational AI. It delivers sub-10ms lookups and instant index updates that run in the browser, on-device, or in the cloud - wherever your agent lives. Agents can create indexes, embed documents, perform semantic/hybrid searches, and manage document lifecycles without managing infrastructure. The platform handles embedding generation, index persistence, and optional cloud sync - allowing agents to focus on retrieval logic rather than infrastructure."
      },
      {
        "title": "Index Management",
        "body": "Create Index: Build a new semantic index with documents and embedding model selection\nLoad Index: Load an existing index from persistent storage for querying\nGet Index: Retrieve metadata about a specific index (document count, model, etc.)\nList Indexes: Enumerate all indexes under a project\nDelete Index: Remove an index and all associated data"
      },
      {
        "title": "Document Operations",
        "body": "Add Documents: Insert or upsert documents into an existing index with optional metadata\nGet Documents: Retrieve stored documents by ID or fetch all documents\nDelete Documents: Remove specific documents from an index by their IDs"
      },
      {
        "title": "Search & Retrieval",
        "body": "Semantic Search: Query using natural language with vector similarity matching\nKeyword Search: Use BM25-based keyword matching for exact term lookups\nHybrid Search: Blend semantic and keyword search with configurable alpha weighting (Python SDK)\nMetadata Filtering: Constrain results by document metadata (category, language, tags)\nTop-K Results: Return configurable number of best-matching documents with scores"
      },
      {
        "title": "Embedding Models",
        "body": "moss-minilm: Fast, lightweight model optimized for edge/offline use (default)\nmoss-mediumlm: Higher accuracy model with reasonable performance for precision-critical use cases"
      },
      {
        "title": "SDK Methods",
        "body": "JavaScriptPythonDescriptioncreateIndex()create_index()Create index with documentsloadIndex()load_index()Load index from storagegetIndex()get_index()Get index metadatalistIndexes()list_indexes()List all indexesdeleteIndex()delete_index()Delete an indexaddDocs()add_docs()Add/upsert documentsgetDocs()get_docs()Retrieve documentsdeleteDocs()delete_docs()Remove documentsquery()query()Semantic / hybrid search"
      },
      {
        "title": "API Actions",
        "body": "All REST API operations go through POST /v1/manage (base URL: https://service.usemoss.dev/v1) with an action field:\n\nActionPurposeExtra required fieldsinitUploadGet a presigned URL to upload index dataindexName, modelId, docCount, dimensionstartBuildTrigger an index build after uploading datajobIdgetJobStatusCheck the status of an async build jobjobIdgetIndexFetch metadata for a single indexindexNamelistIndexesEnumerate every index under the project—deleteIndexRemove an index record and assetsindexNamegetIndexUrlGet download URLs for a built indexindexNameaddDocsUpsert documents into an existing indexindexName, docsdeleteDocsRemove documents by IDindexName, docIdsgetDocsRetrieve stored documents (without embeddings)indexName"
      },
      {
        "title": "Basic Semantic Search Workflow",
        "body": "Initialize MossClient with project credentials\nCall createIndex() with documents and model options ({ modelId: 'moss-minilm' } in JS; \"moss-minilm\" string in Python)\nCall loadIndex() to prepare index for queries\nCall query() with search text and topK (JS) or QueryOptions(top_k=...) (Python)\nProcess returned documents with scores"
      },
      {
        "title": "Hybrid Search Workflow (Python)",
        "body": "Hybrid blending via alpha is available in the Python SDK via QueryOptions:\n\nCreate and load index as above\nCall query() with a QueryOptions object specifying alpha\nalpha=1.0 = pure semantic, alpha=0.0 = pure keyword, alpha=0.6 = 60/40 blend\nDefault is semantic-heavy for conversational use cases"
      },
      {
        "title": "Document Update Workflow",
        "body": "Initialize client and ensure index exists\nCall addDocs() with new documents (upserts by default — existing IDs are updated)\nCall deleteDocs() to remove outdated documents by ID"
      },
      {
        "title": "Voice Agent Context Injection Workflow",
        "body": "This is an opt-in integration pattern for voice agent pipelines — it is not automatic behavior of this skill.\n\nInitialize MossClient and load index at agent startup\nIn your application code, call query() on each user message to retrieve relevant context\nInject search results into the LLM context before generating a response\nRespond with knowledge-grounded answer (no tool-calling latency)"
      },
      {
        "title": "Offline-First Search Workflow",
        "body": "Create index with documents using local embedding model\nLoad index from local storage\nQuery runs entirely on-device with sub-10ms latency\nOptionally sync to cloud for backup and sharing"
      },
      {
        "title": "Voice Agent Frameworks",
        "body": "LiveKit: Context injection into voice agent pipeline with inferedge-moss SDK\nPipecat: Pipeline processor via pipecat-moss package that auto-injects retrieval results"
      },
      {
        "title": "Authentication",
        "body": "SDK requires project credentials:\n\nMOSS_PROJECT_ID: Project identifier from Moss Portal\nMOSS_PROJECT_KEY: Project access key from Moss Portal\n\nexport MOSS_PROJECT_ID=your_project_id\nexport MOSS_PROJECT_KEY=your_project_key\n\nREST API requires the following on every request:\n\nx-project-key header: project access key\nx-service-version: v1 header: API version\nprojectId field in the JSON body\n\ncurl -X POST \"https://service.usemoss.dev/v1/manage\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-service-version: v1\" \\\n  -H \"x-project-key: moss_access_key_xxxxx\" \\\n  -d '{\"action\": \"listIndexes\", \"projectId\": \"project_123\"}'"
      },
      {
        "title": "Package Installation",
        "body": "LanguagePackageInstall CommandJavaScript/TypeScript@inferedge/mossnpm install @inferedge/mossPythoninferedge-mosspip install inferedge-mossPipecat Integrationpipecat-mosspip install pipecat-moss"
      },
      {
        "title": "Document Schema",
        "body": "interface DocumentInfo {\n  id: string;        // Required: unique identifier\n  text: string;      // Required: content to embed and search\n  metadata?: object; // Optional: key-value pairs for filtering\n}"
      },
      {
        "title": "Query Parameters",
        "body": "ParameterSDKTypeDefaultDescriptionindexNameJS + Pythonstring—Target index name (required)queryJS + Pythonstring—Natural language search text (required)topKJSnumber5Max results to returntop_kPythonint5Max results to returnalphaPython onlyfloat~0.8Hybrid weighting: 0.0=keyword, 1.0=semanticfiltersJS + Pythonobject—Metadata constraints"
      },
      {
        "title": "Model Selection",
        "body": "ModelUse CaseTradeoffmoss-minilmEdge, offline, browser, speed-firstFast, lightweightmoss-mediumlmPrecision-critical, higher accuracySlightly slower"
      },
      {
        "title": "Performance Expectations",
        "body": "Sub-10ms local queries (hardware-dependent)\nInstant index updates without reindexing entire corpus\nSync is optional; compute stays on-device\nNo infrastructure to manage"
      },
      {
        "title": "Chunking Best Practices",
        "body": "Aim for ~200–500 tokens per chunk\nOverlap 10–20% to preserve context\nNormalize whitespace and strip boilerplate"
      },
      {
        "title": "Common Errors",
        "body": "ErrorCauseFixUnauthorizedMissing credentialsSet MOSS_PROJECT_ID and MOSS_PROJECT_KEYIndex not foundQuery before createCall createIndex() firstIndex not loadedQuery before loadCall loadIndex() before query()Missing embeddings runtimeInvalid modelUse moss-minilm or moss-mediumlm"
      },
      {
        "title": "Async Pattern",
        "body": "All SDK methods are async — always use await:\n\n// JavaScript\nimport { MossClient, DocumentInfo } from '@inferedge/moss'\nconst client = new MossClient(process.env.MOSS_PROJECT_ID!, process.env.MOSS_PROJECT_KEY!)\nawait client.createIndex('faqs', docs, { modelId: 'moss-minilm' })\nawait client.loadIndex('faqs')\nconst results = await client.query('faqs', 'search text', { topK: 5 })\n\n# Python\nimport os\nfrom inferedge_moss import MossClient, QueryOptions\nclient = MossClient(os.getenv('MOSS_PROJECT_ID'), os.getenv('MOSS_PROJECT_KEY'))\nawait client.create_index('faqs', docs, 'moss-minilm')\nawait client.load_index('faqs')\nresults = await client.query('faqs', 'search text', QueryOptions(top_k=5, alpha=0.6))\n\nFor additional documentation and navigation, see: https://docs.moss.dev/llms.txt"
      }
    ],
    "body": "Moss Agent Skills\nCapabilities\n\nMoss is the real-time semantic search runtime for conversational AI. It delivers sub-10ms lookups and instant index updates that run in the browser, on-device, or in the cloud - wherever your agent lives. Agents can create indexes, embed documents, perform semantic/hybrid searches, and manage document lifecycles without managing infrastructure. The platform handles embedding generation, index persistence, and optional cloud sync - allowing agents to focus on retrieval logic rather than infrastructure.\n\nSkills\nIndex Management\nCreate Index: Build a new semantic index with documents and embedding model selection\nLoad Index: Load an existing index from persistent storage for querying\nGet Index: Retrieve metadata about a specific index (document count, model, etc.)\nList Indexes: Enumerate all indexes under a project\nDelete Index: Remove an index and all associated data\nDocument Operations\nAdd Documents: Insert or upsert documents into an existing index with optional metadata\nGet Documents: Retrieve stored documents by ID or fetch all documents\nDelete Documents: Remove specific documents from an index by their IDs\nSearch & Retrieval\nSemantic Search: Query using natural language with vector similarity matching\nKeyword Search: Use BM25-based keyword matching for exact term lookups\nHybrid Search: Blend semantic and keyword search with configurable alpha weighting (Python SDK)\nMetadata Filtering: Constrain results by document metadata (category, language, tags)\nTop-K Results: Return configurable number of best-matching documents with scores\nEmbedding Models\nmoss-minilm: Fast, lightweight model optimized for edge/offline use (default)\nmoss-mediumlm: Higher accuracy model with reasonable performance for precision-critical use cases\nSDK Methods\nJavaScript\tPython\tDescription\ncreateIndex()\tcreate_index()\tCreate index with documents\nloadIndex()\tload_index()\tLoad index from storage\ngetIndex()\tget_index()\tGet index metadata\nlistIndexes()\tlist_indexes()\tList all indexes\ndeleteIndex()\tdelete_index()\tDelete an index\naddDocs()\tadd_docs()\tAdd/upsert documents\ngetDocs()\tget_docs()\tRetrieve documents\ndeleteDocs()\tdelete_docs()\tRemove documents\nquery()\tquery()\tSemantic / hybrid search\nAPI Actions\n\nAll REST API operations go through POST /v1/manage (base URL: https://service.usemoss.dev/v1) with an action field:\n\nAction\tPurpose\tExtra required fields\ninitUpload\tGet a presigned URL to upload index data\tindexName, modelId, docCount, dimension\nstartBuild\tTrigger an index build after uploading data\tjobId\ngetJobStatus\tCheck the status of an async build job\tjobId\ngetIndex\tFetch metadata for a single index\tindexName\nlistIndexes\tEnumerate every index under the project\t—\ndeleteIndex\tRemove an index record and assets\tindexName\ngetIndexUrl\tGet download URLs for a built index\tindexName\naddDocs\tUpsert documents into an existing index\tindexName, docs\ndeleteDocs\tRemove documents by ID\tindexName, docIds\ngetDocs\tRetrieve stored documents (without embeddings)\tindexName\nWorkflows\nBasic Semantic Search Workflow\nInitialize MossClient with project credentials\nCall createIndex() with documents and model options ({ modelId: 'moss-minilm' } in JS; \"moss-minilm\" string in Python)\nCall loadIndex() to prepare index for queries\nCall query() with search text and topK (JS) or QueryOptions(top_k=...) (Python)\nProcess returned documents with scores\nHybrid Search Workflow (Python)\n\nHybrid blending via alpha is available in the Python SDK via QueryOptions:\n\nCreate and load index as above\nCall query() with a QueryOptions object specifying alpha\nalpha=1.0 = pure semantic, alpha=0.0 = pure keyword, alpha=0.6 = 60/40 blend\nDefault is semantic-heavy for conversational use cases\nDocument Update Workflow\nInitialize client and ensure index exists\nCall addDocs() with new documents (upserts by default — existing IDs are updated)\nCall deleteDocs() to remove outdated documents by ID\nVoice Agent Context Injection Workflow\n\nThis is an opt-in integration pattern for voice agent pipelines — it is not automatic behavior of this skill.\n\nInitialize MossClient and load index at agent startup\nIn your application code, call query() on each user message to retrieve relevant context\nInject search results into the LLM context before generating a response\nRespond with knowledge-grounded answer (no tool-calling latency)\nOffline-First Search Workflow\nCreate index with documents using local embedding model\nLoad index from local storage\nQuery runs entirely on-device with sub-10ms latency\nOptionally sync to cloud for backup and sharing\nIntegration\nVoice Agent Frameworks\nLiveKit: Context injection into voice agent pipeline with inferedge-moss SDK\nPipecat: Pipeline processor via pipecat-moss package that auto-injects retrieval results\nContext\nAuthentication\n\nSDK requires project credentials:\n\nMOSS_PROJECT_ID: Project identifier from Moss Portal\nMOSS_PROJECT_KEY: Project access key from Moss Portal\nexport MOSS_PROJECT_ID=your_project_id\nexport MOSS_PROJECT_KEY=your_project_key\n\n\nREST API requires the following on every request:\n\nx-project-key header: project access key\nx-service-version: v1 header: API version\nprojectId field in the JSON body\ncurl -X POST \"https://service.usemoss.dev/v1/manage\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-service-version: v1\" \\\n  -H \"x-project-key: moss_access_key_xxxxx\" \\\n  -d '{\"action\": \"listIndexes\", \"projectId\": \"project_123\"}'\n\nPackage Installation\nLanguage\tPackage\tInstall Command\nJavaScript/TypeScript\t@inferedge/moss\tnpm install @inferedge/moss\nPython\tinferedge-moss\tpip install inferedge-moss\nPipecat Integration\tpipecat-moss\tpip install pipecat-moss\nDocument Schema\ninterface DocumentInfo {\n  id: string;        // Required: unique identifier\n  text: string;      // Required: content to embed and search\n  metadata?: object; // Optional: key-value pairs for filtering\n}\n\nQuery Parameters\nParameter\tSDK\tType\tDefault\tDescription\nindexName\tJS + Python\tstring\t—\tTarget index name (required)\nquery\tJS + Python\tstring\t—\tNatural language search text (required)\ntopK\tJS\tnumber\t5\tMax results to return\ntop_k\tPython\tint\t5\tMax results to return\nalpha\tPython only\tfloat\t~0.8\tHybrid weighting: 0.0=keyword, 1.0=semantic\nfilters\tJS + Python\tobject\t—\tMetadata constraints\nModel Selection\nModel\tUse Case\tTradeoff\nmoss-minilm\tEdge, offline, browser, speed-first\tFast, lightweight\nmoss-mediumlm\tPrecision-critical, higher accuracy\tSlightly slower\nPerformance Expectations\nSub-10ms local queries (hardware-dependent)\nInstant index updates without reindexing entire corpus\nSync is optional; compute stays on-device\nNo infrastructure to manage\nChunking Best Practices\nAim for ~200–500 tokens per chunk\nOverlap 10–20% to preserve context\nNormalize whitespace and strip boilerplate\nCommon Errors\nError\tCause\tFix\nUnauthorized\tMissing credentials\tSet MOSS_PROJECT_ID and MOSS_PROJECT_KEY\nIndex not found\tQuery before create\tCall createIndex() first\nIndex not loaded\tQuery before load\tCall loadIndex() before query()\nMissing embeddings runtime\tInvalid model\tUse moss-minilm or moss-mediumlm\nAsync Pattern\n\nAll SDK methods are async — always use await:\n\n// JavaScript\nimport { MossClient, DocumentInfo } from '@inferedge/moss'\nconst client = new MossClient(process.env.MOSS_PROJECT_ID!, process.env.MOSS_PROJECT_KEY!)\nawait client.createIndex('faqs', docs, { modelId: 'moss-minilm' })\nawait client.loadIndex('faqs')\nconst results = await client.query('faqs', 'search text', { topK: 5 })\n\n# Python\nimport os\nfrom inferedge_moss import MossClient, QueryOptions\nclient = MossClient(os.getenv('MOSS_PROJECT_ID'), os.getenv('MOSS_PROJECT_KEY'))\nawait client.create_index('faqs', docs, 'moss-minilm')\nawait client.load_index('faqs')\nresults = await client.query('faqs', 'search text', QueryOptions(top_k=5, alpha=0.6))\n\n\nFor additional documentation and navigation, see: https://docs.moss.dev/llms.txt"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/CoderOMaster/moss",
    "publisherUrl": "https://clawhub.ai/CoderOMaster/moss",
    "owner": "CoderOMaster",
    "version": "1.0.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/moss",
    "downloadUrl": "https://openagent3.xyz/downloads/moss",
    "agentUrl": "https://openagent3.xyz/skills/moss/agent",
    "manifestUrl": "https://openagent3.xyz/skills/moss/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/moss/agent.md"
  }
}