{
  "schemaVersion": "1.0",
  "item": {
    "slug": "weaviate",
    "name": "Weaviate",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/weaviate",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/weaviate",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/weaviate",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=weaviate",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "modules.md",
      "operations.md",
      "v4-syntax.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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/weaviate"
    },
    "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/weaviate",
    "agentPageUrl": "https://openagent3.xyz/skills/weaviate/agent",
    "manifestUrl": "https://openagent3.xyz/skills/weaviate/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/weaviate/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": "Critical: v4 Only (Dec 2024+)",
        "body": "v3 syntax is DEPRECATED. Before generating ANY Weaviate code:\n\nVerify client version — must be weaviate-client>=4.0\nUse context managers — with weaviate.connect_to_*() as client: or explicit client.close()\nNew imports — from weaviate.classes.config import Configure, Property\n\nIf you see v3 patterns (weaviate.Client(), client.schema.create_class(), path=[...] filters), stop and rewrite."
      },
      {
        "title": "Quick Reference",
        "body": "TopicFilev3→v4 migration tablev4-syntax.mdModule configurationmodules.mdBatch, hybrid, HNSWoperations.md"
      },
      {
        "title": "v4 Syntax Essentials",
        "body": "# Connection (ALWAYS close)\nwith weaviate.connect_to_local() as client:\n    # Collections (not classes)\n    collection = client.collections.get(\"Article\")\n    \n    # Queries\n    response = collection.query.hybrid(\"search term\", alpha=0.7)\n    \n    # Vector access\n    vector = obj.vector[\"default\"]  # Dict, not List\n    \n    # Filters\n    Filter.by_property(\"category\").equal(\"tech\")"
      },
      {
        "title": "Scope",
        "body": "This skill covers:\n\nSchema design for RAG and semantic search\nVectorizer and reranker module configuration\nBatch imports with error handling\nHybrid search tuning (alpha parameter)\nHNSW index configuration for scale"
      },
      {
        "title": "1. Always Verify Modules",
        "body": "Before using text2vec-openai, generative-openai, or rerankers, verify they're enabled:\n\n# docker-compose.yml\nENABLE_MODULES: 'text2vec-openai,generative-openai,reranker-cohere'"
      },
      {
        "title": "2. API Keys in Headers",
        "body": "client = weaviate.connect_to_local(\n    headers={\"X-OpenAI-Api-Key\": os.environ[\"OPENAI_API_KEY\"]}\n)"
      },
      {
        "title": "3. Batch with Context Manager",
        "body": "with client.batch.dynamic() as batch:\n    for item in data:\n        batch.add_object(properties=item, collection=\"Name\")"
      },
      {
        "title": "4. Hybrid Search Alpha",
        "body": "alpha=0 → BM25 only (keyword)\nalpha=1 → Vector only (semantic)\nalpha=0.5-0.75 → Balanced (typical for RAG)"
      },
      {
        "title": "5. Apply Filters BEFORE Vector Search",
        "body": "Filters in where reduce the search space first — always filter before near_text/near_vector."
      },
      {
        "title": "6. Named Vectors vs Single Vector",
        "body": "Choose one pattern per collection:\n\n# Single vector (simpler)\nvectorizer_config=Configure.Vectorizer.text2vec_openai()\n\n# Named vectors (multiple embeddings per object)\nvector_config=[\n    Configure.Vectors.text2vec_openai(name=\"content\", source_properties=[\"body\"]),\n]"
      },
      {
        "title": "7. Debug Empty Results",
        "body": "Check in order: schema exists → vectorizer ran → distance threshold → filter syntax.\nUse _additional { vector } to verify vectors were generated."
      }
    ],
    "body": "Critical: v4 Only (Dec 2024+)\n\nv3 syntax is DEPRECATED. Before generating ANY Weaviate code:\n\nVerify client version — must be weaviate-client>=4.0\nUse context managers — with weaviate.connect_to_*() as client: or explicit client.close()\nNew imports — from weaviate.classes.config import Configure, Property\n\nIf you see v3 patterns (weaviate.Client(), client.schema.create_class(), path=[...] filters), stop and rewrite.\n\nQuick Reference\nTopic\tFile\nv3→v4 migration table\tv4-syntax.md\nModule configuration\tmodules.md\nBatch, hybrid, HNSW\toperations.md\nv4 Syntax Essentials\n# Connection (ALWAYS close)\nwith weaviate.connect_to_local() as client:\n    # Collections (not classes)\n    collection = client.collections.get(\"Article\")\n    \n    # Queries\n    response = collection.query.hybrid(\"search term\", alpha=0.7)\n    \n    # Vector access\n    vector = obj.vector[\"default\"]  # Dict, not List\n    \n    # Filters\n    Filter.by_property(\"category\").equal(\"tech\")\n\nScope\n\nThis skill covers:\n\nSchema design for RAG and semantic search\nVectorizer and reranker module configuration\nBatch imports with error handling\nHybrid search tuning (alpha parameter)\nHNSW index configuration for scale\nCore Rules\n1. Always Verify Modules\n\nBefore using text2vec-openai, generative-openai, or rerankers, verify they're enabled:\n\n# docker-compose.yml\nENABLE_MODULES: 'text2vec-openai,generative-openai,reranker-cohere'\n\n2. API Keys in Headers\nclient = weaviate.connect_to_local(\n    headers={\"X-OpenAI-Api-Key\": os.environ[\"OPENAI_API_KEY\"]}\n)\n\n3. Batch with Context Manager\nwith client.batch.dynamic() as batch:\n    for item in data:\n        batch.add_object(properties=item, collection=\"Name\")\n\n4. Hybrid Search Alpha\nalpha=0 → BM25 only (keyword)\nalpha=1 → Vector only (semantic)\nalpha=0.5-0.75 → Balanced (typical for RAG)\n5. Apply Filters BEFORE Vector Search\n\nFilters in where reduce the search space first — always filter before near_text/near_vector.\n\n6. Named Vectors vs Single Vector\n\nChoose one pattern per collection:\n\n# Single vector (simpler)\nvectorizer_config=Configure.Vectorizer.text2vec_openai()\n\n# Named vectors (multiple embeddings per object)\nvector_config=[\n    Configure.Vectors.text2vec_openai(name=\"content\", source_properties=[\"body\"]),\n]\n\n7. Debug Empty Results\n\nCheck in order: schema exists → vectorizer ran → distance threshold → filter syntax. Use _additional { vector } to verify vectors were generated."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/weaviate",
    "publisherUrl": "https://clawhub.ai/ivangdavila/weaviate",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/weaviate",
    "downloadUrl": "https://openagent3.xyz/downloads/weaviate",
    "agentUrl": "https://openagent3.xyz/skills/weaviate/agent",
    "manifestUrl": "https://openagent3.xyz/skills/weaviate/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/weaviate/agent.md"
  }
}