[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"consumer-news-detail-835":3,"consumer-news-interaction-835":41,"consumer-news-related-835":44},{"detail":4,"item":36},{"card":5,"schemaVersion":23,"fields":24,"content":30},{"id":6,"kind":7,"targetType":8,"targetId":9,"subtype":7,"typeLabel":10,"title":11,"subtitle":12,"summary":13,"coverUrl":14,"badgeText":15,"href":16,"sourceName":12,"meta":17,"metrics":20,"tags":21,"resolved":22},"NEWS_ARTICLE:835","news","NEWS_ARTICLE",835,"资讯","体验向量数据库 qdrant","博客园","作者:张富春(ahfuzhang)，转载时请注明作者和引用链接，谢谢！ cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 背景 为了早点搞懂公司的百万行 C# 的祖传代码，我想在缺乏文档、缺乏帮手的情况下，先建立一个 企业知识库 来快速帮我理清头绪。 一开始，我是打算以 weav","https:\u002F\u002Fimg2022.cnblogs.com\u002Fblog\u002F1457949\u002F202202\u002F1457949-20220216153819145-1193738712.png","","\u002Fnews\u002F835",[18,19],"2026","人工智能",{},[19],true,"consumer-content-detail-v1",{"sourceName":12,"authorName":25,"categoryName":19,"summary":13,"description":13,"publishTime":26,"updateTime":27,"sourceUrl":28,"language":29},"ahfuzhang","2026-09-02T15:37","2026-09-02T20:37:48","https:\u002F\u002Fwww.cnblogs.com\u002Fahfuzhang\u002Fp\u002F22807976","中文",{"format":31,"policy":32,"normalized":22,"html":33,"text":34,"wordCount":35,"hasBody":22},"HTML","NEWS_CONTENT_V1","\u003Cp>\u003Cstrong>作者:张富春(ahfuzhang)，转载时请注明作者和引用链接，谢谢！\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n \u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.cnblogs.com\u002Fahfuzhang\u002F\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">cnblogs博客\u003C\u002Fa>\u003C\u002Fli>\n \u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fahfuzhang\u002Fposts\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">zhihu\u003C\u002Fa>\u003C\u002Fli>\n \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fahfuzhang\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Github\u003C\u002Fa>\u003C\u002Fli>\n \u003Cli>公众号:一本正经的瞎扯\u003Cbr>\u003Cimg alt=\"\" src=\"https:\u002F\u002Fi1.wp.com\u002Fimg2022.cnblogs.com\u002Fblog\u002F1457949\u002F202202\u002F1457949-20220216153819145-1193738712.png?w=720&amp;quality=65&amp;strip=all\">\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n背景\n\u003Cp>为了早点搞懂公司的百万行 C# 的祖传代码，我想在缺乏文档、缺乏帮手的情况下，先建立一个 \u003Ccode>企业知识库\u003C\u002Fcode> 来快速帮我理清头绪。\u003C\u002Fp>\n\u003Cp>\u003Cimg alt=\"image\" src=\"https:\u002F\u002Fi1.wp.com\u002Fimg2024.cnblogs.com\u002Fblog\u002F1457949\u002F202609\u002F1457949-20260902144229168-850771527.png?w=720&amp;quality=65&amp;strip=all\">\u003C\u002Fp>\n\u003Cp>一开始，我是打算以 weaviate 来作为向量数据库，然后把已有的文档和代码信息都写入向量数据库中；\u003Cbr>\n  最后，配合本地的大模型来写提示词进行 AI 总结就行了。\u003C\u002Fp>\n\u003Cp>第一期，我先整理了文档，并写入 weaviate。\u003Cbr>\n  并且打算也做一个拟人化的 AI 问答助手。\u003C\u002Fp>\n\u003Cp>终于在上周，实现了这个问答助手。长这样：\u003C\u002Fp>\n\u003Cp>\u003Cimg alt=\"image\" src=\"https:\u002F\u002Fi1.wp.com\u002Fimg2024.cnblogs.com\u002Fblog\u002F1457949\u002F202609\u002F1457949-20260902144843617-878885818.png?w=720&amp;quality=65&amp;strip=all\">\u003C\u002Fp>\n\u003Cp>(这个形象一看就给人一种聪明绝顶的感觉……)\u003C\u002Fp>\n\u003Cp>实际使用者发现 AI 汇总功能执行得非常慢，且结果也差强人意。\u003Cbr>\n  通过思考过程发现，codex 使用了 BM25（Best Matching 25）来在 weaviate 中检索。这也难怪，我为了导入方便，直接把整个文档导入到了 weaviate，没有先为文档计算向量。\u003C\u002Fp>\n\u003Cp>于是，我尝试使用了 qdrant 向量数据库。\u003Cbr>\n  直观的感受上，查询速度和查询结果都好了很多。\u003C\u002Fp>\n\u003Cp>下面是我部署的细节：\u003C\u002Fp>\nCooking 搞起\n\u003Ch2>qdrant 服务器\u003C\u002Fh2>\n\u003Cp>docker 命令如下:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>docker run -it --rm \\\n  --name qdrant \\\n  -p 6333:6333 \\\n  -p 6334:6334 \\\n  -v \"\u002FUsers\u002Fahfu\u002FDownloads\u002Ftemp\u002F2026\u002Fqdrant_storage:\u002Fqdrant\u002Fstorage\" \\\n  -e QDRANT__SERVICE__API_KEY='my-secret-key' \\\n  qdrant\u002Fqdrant:v1.15.4\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n \u003Cli>6333 是 http 端口\u003C\u002Fli>\n \u003Cli>6334 是 grpc 端口\u003C\u002Fli>\n \u003Cli>\u003Ccode>QDRANT__SERVICE__API_KEY\u003C\u002Fcode> 来为服务器设置一个 api key\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>但是，这个服务器并不提供 MCP 的接口，为了方便文档导入 + AI 检索，还需要再部署 MCP 服务器。\u003C\u002Fp>\n\u003Ch2>mcp-server-qdrant\u003C\u002Fh2>\n\u003Cp>官方提供的 MCP 服务器没有提供镜像，需要自己 clone 仓库并自己进行 docker build.\u003Cbr>\n  仓库地址是：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fqdrant\u002Fmcp-server-qdrant\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">https:\u002F\u002Fgithub.com\u002Fqdrant\u002Fmcp-server-qdrant\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>此外，还需要一个对中文友好的用于对文件计算向量值的工具。mcp-server-qdrant 内置了 FastEmbed 运行环境，可以在启动时下载 \u003Ccode>BAAI\u002Fbge-small-zh-v1.5\u003C\u002Fcode> 模型来做向量计算。\u003Cbr>\n  启动方法如下：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>docker build -t mcp-server-qdrant .\ndocker run -it --rm \\\n  --name mcp-server-qdrant  \\\n  -p 8098:8080 \\\n  -e QDRANT_URL=http:\u002F\u002Fhost.docker.internal:8099 \\\n  -e QDRANT_API_KEY=my-super-secret-key \\\n  -e FASTMCP_SERVER_HOST=\"0.0.0.0\" \\\n  -e FASTMCP_SERVER_PORT=\"8080\" \\\n  -e EMBEDDING_MODEL=\"BAAI\u002Fbge-small-zh-v1.5\" \\\n  -e QDRANT_READ_ONLY=false \\\n  -e QDRANT_CREATE_COLLECTION=true \\\n  mcp-server-qdrant \\\n    uvx mcp-server-qdrant --transport streamable-http\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>测试一下：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -i \\\n  -X POST \\\n  http:\u002F\u002F127.0.0.1:8098\u002Fmcp\u002F \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -H 'Accept: application\u002Fjson, text\u002Fevent-stream' \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"initialize\",\n    \"params\": {\n      \"protocolVersion\": \"2025-06-18\",\n      \"capabilities\": {},\n      \"clientInfo\": {\n        \"name\": \"curl\",\n        \"version\": \"1.0\"\n      }\n    }\n  }'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>但是， MCP 服务有两个问题：\u003C\u002Fp>\n\u003Col>\n \u003Cli>MCP 服务不提供 API KEY 的校验，部署后直接通过 qdrant 的 key 访问到后端，直接就裸奔了；\u003C\u002Fli>\n \u003Cli>每次启动都要花时间去下载模型，提早打包在镜像内更好\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>因此，我 folk 了这个仓库，增加了上述功能。地址在：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fahfuzhang\u002Fmcp-server-qdrant\u002Ftree\u002Fdev\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">https:\u002F\u002Fgithub.com\u002Fahfuzhang\u002Fmcp-server-qdrant\u002Ftree\u002Fdev\u003C\u002Fa>\u003Cbr>\n  也可以直接使用我构建好的镜像：\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fahfuzhang\u002Fmcp-server-qdrant\u002Ftags\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fahfuzhang\u002Fmcp-server-qdrant\u002Ftags\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>增加 MCP API KEY 校验方法的启动方式为：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>docker run -d --rm \\\n\t\t--name mcp-server-qdrant  \\\n\t\t-p 8098:8080 \\\n\t\t-e QDRANT_URL=http:\u002F\u002Fhost.docker.internal:6333 \\\n\t\t-e QDRANT_API_KEY=my-secret-key \\\n\t\t-e FASTMCP_SERVER_HOST=\"0.0.0.0\" \\\n\t\t-e FASTMCP_SERVER_PORT=\"8080\" \\\n\t\t-e EMBEDDING_MODEL=\"BAAI\u002Fbge-small-zh-v1.5\" \\\n\t\t-e QDRANT_READ_ONLY=false \\\n\t\t-e QDRANT_CREATE_COLLECTION=true \\\n\t\t-e MCP_API_KEY=\"ahfu_mcp_key\" \\\n\t\tahfuzhang\u002Fmcp-server-qdrant:v0.1.0 \\\n\t\t\tmcp-server-qdrant --transport streamable-http\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>在 K8s 中部署\u003C\u002Fh2>\n\u003Cp>可以使用 sidecar 的方式，把 qdrant 和 mcp-server-qdrant 部署在一个 stateful set 之中：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apiVersion: v1\nkind: Secret\nmetadata:\n  name: qdrant-secrets\n  namespace: our-team\ntype: Opaque\nstringData:\n  QDRANT_API_KEY: \"my-secret-key\"\n  MCP_API_KEY: \"ahfu_mcp_key\"\n\n----\n\napiVersion: apps\u002Fv1\nkind: StatefulSet\nmetadata:\n  name: qdrant-0\n  labels:\n    app: qdrant\n  namespace: our-team\nspec:\n  serviceName: qdrant-headless\n  replicas: 1\n  podManagementPolicy: Parallel\n  selector:\n    matchLabels:\n      app: qdrant\n  template:\n    metadata:\n      labels:\n        app: qdrant\n    spec:\n      containers:\n        - name: qdrant\n          image: qdrant\u002Fqdrant:v1.15.4\n          imagePullPolicy: IfNotPresent\n          ports:\n            - name: http\n              containerPort: 6333\n            - name: grpc\n              containerPort: 6334\n          env:\n            - name: QDRANT__SERVICE__API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: qdrant-secrets\n                  key: QDRANT_API_KEY\n          readinessProbe:\n            httpGet:\n              path: \u002Freadyz\n              port: 6333\n            initialDelaySeconds: 10\n            periodSeconds: 10\n          livenessProbe:\n            httpGet:\n              path: \u002Flivez\n              port: 6333\n            initialDelaySeconds: 30\n            periodSeconds: 20\n          resources:\n            limits:\n              cpu: \"8\"\n              memory: 8Gi\n            requests:\n              cpu: \"8\"\n              memory: 8Gi\n          volumeMounts:\n            - name: qdrant-data\n              mountPath: \u002Fqdrant\u002Fstorage\n        - name: mcp-server-qdrant\n          image: ahfuzhang\u002Fmcp-server-qdrant:v0.1.0\n          imagePullPolicy: IfNotPresent\n          command:\n            - mcp-server-qdrant\n            - --transport\n            - streamable-http\n          ports:\n            - name: mcp-http\n              containerPort: 8080\n          env:\n            - name: QDRANT_URL\n              value: \"http:\u002F\u002Flocalhost:6333\"\n            - name: QDRANT_API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: qdrant-secrets\n                  key: QDRANT_API_KEY\n            - name: MCP_API_KEY\n              valueFrom:\n                secretKeyRef:\n                  name: qdrant-secrets\n                  key: MCP_API_KEY\n            - name: FASTMCP_SERVER_HOST\n              value: \"0.0.0.0\"\n            - name: FASTMCP_SERVER_PORT\n              value: \"8080\"\n            - name: EMBEDDING_MODEL\n              value: \"BAAI\u002Fbge-small-zh-v1.5\"\n            - name: QDRANT_READ_ONLY\n              value: \"false\"\n            - name: QDRANT_CREATE_COLLECTION\n              value: \"true\"\n          resources:\n            limits:\n              cpu: \"2\"\n              memory: 2Gi\n            requests:\n              cpu: \"1\"\n              memory: 1Gi\n  volumeClaimTemplates:\n    - metadata:\n        name: qdrant-data\n      spec:\n        accessModes: [\"ReadWriteOnce\"]\n        storageClassName: alicloud-disk\n        resources:\n          requests:\n            storage: 20Gi\n----\napiVersion: v1\nkind: Service\nmetadata:\n  name: qdrant-headless\n  namespace: our-team\n  labels:\n    app: qdrant\nspec:\n  clusterIP: None\n  publishNotReadyAddresses: true\n  selector:\n    app: qdrant\n  ports:\n    - name: http\n      port: 6333\n    - name: grpc\n      port: 6334\n\n----\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: qdrant\n  namespace: our-team\n  labels:\n    app: qdrant\nspec:\n  type: NodePort\n  selector:\n    app: qdrant\n  ports:\n    - name: mcp-http\n      protocol: TCP\n      port: 8080\n      targetPort: 8080\n      nodePort: 30313\n\n\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>配置到 codex\u003C\u002Fh2>\n\u003Cp>在 $CODEX_HOME 的 config.toml 中增加:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[mcp_servers.qdrant]\nurl = \"http:\u002F\u002F10.105.xx.xx:30313\u002Fmcp\"\nbearer_token_env_var = \"MCP_API_KEY\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>然后 shell 中增加:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>export MCP_API_KEY=ahfu_mcp_key\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>提示词中指明需要使用向量数据库：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>回答下面的问题时，必须优先查询 MCP 中的企业知识库。\n\n 步骤：\n 1. 查看可用 collection。\n 2. 找到包含企业文档\u002F代码知识的 collection。\n 3. 使用 qdrant_qdrant-find 搜索相关内容。(支持向量搜索)\n 4. 如果第一次结果不足，修改关键词再次搜索。\n 5. 基于检索到的内容回答。\n 6. 告诉我答案依据了哪些文件\u002Fpath\u002Fdocument。\n 7. 如果查不到就返回查不到，不要做猜测\n\n 问题：\n\n \u002FGetUserInfo 这条接口，有哪些请求参数?\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>实在是太爽了，如果自己亲手去找，不知道要找多久！\u003C\u002Fp>\n总结\n\u003Cp>本文简单的尝试了一下 qdrant 数据库，初步的感觉是好于 weaviate 数据库的，只是部署和使用上比 weaviate 稍麻烦一些。\u003C\u002Fp>\n\u003Cul>\n \u003Cli>导入到 qdrant 中的文档，先经过 MCP 服务器内的 \u003Ccode>BAAI\u002Fbge-small-zh-v1.5\u003C\u002Fcode> 模型来为中文文本计算向量值\u003C\u002Fli>\n \u003Cli>支持向量值的搜索，其速度和质量比 \u003Ccode>BM25（Best Matching 25）\u003C\u002Fcode> 算法更好。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Have Fun.\u003Cbr>\n  😃\u003C\u002Fp>","作者:张富春(ahfuzhang)，转载时请注明作者和引用链接，谢谢！ cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 背景 为了早点搞懂公司的百万行 C# 的祖传代码，我想在缺乏文档、缺乏帮手的情况下，先建立一个 企业知识库 来快速帮我理清头绪。 一开始，我是打算以 weaviate 来作为向量数据库，然后把已有的文档和代码信息都写入向量数据库中； 最后，配合本地的大模型来写提示词进行 AI 总结就行了。 第一期，我先整理了文档，并写入 weaviate。 并且打算也做一个拟人化的 AI 问答助手。 终于在上周，实现了这个问答助手。长这样： (这个形象一看就给人一种聪明绝顶的感觉……) 实际使用者发现 AI 汇总功能执行得非常慢，且结果也差强人意。 通过思考过程发现，codex 使用了 BM25（Best Matching 25）来在 weaviate 中检索。这也难怪，我为了导入方便，直接把整个文档导入到了 weaviate，没有先为文档计算向量。 于是，我尝试使用了 qdrant 向量数据库。 直观的感受上，查询速度和查询结果都好了很多。 下面是我部署的细节： Cooking 搞起 qdrant 服务器 docker 命令如下: docker run -it --rm \\ --name qdrant \\ -p 6333:6333 \\ -p 6334:6334 \\ -v \"\u002FUsers\u002Fahfu\u002FDownloads\u002Ftemp\u002F2026\u002Fqdrant_storage:\u002Fqdrant\u002Fstorage\" \\ -e QDRANT__SERVICE__API_KEY='my-secret-key' \\ qdrant\u002Fqdrant:v1.15.4 6333 是 http 端口 6334 是 grpc 端口 QDRANT__SERVICE__API_KEY 来为服务器设置一个 api key 但是，这个服务器并不提供 MCP 的接口，为了方便文档导入 + AI 检索，还需要再部署 MCP 服务器。 mcp-server-qdrant 官方提供的 MCP 服务器没有提供镜像，需要自己 clone 仓库并自己进行 docker build. 仓库地址是：https:\u002F\u002Fgithub.com\u002Fqdrant\u002Fmcp-server-qdrant 此外，还需要一个对中文友好的用于对文件计算向量值的工具。mcp-server-qdrant 内置了 FastEmbed 运行环境，可以在启动时下载 BAAI\u002Fbge-small-zh-v1.5 模型来做向量计算。 启动方法如下： docker build -t mcp-server-qdrant . docker run -it --rm \\ --name mcp-server-qdrant \\ -p 8098:8080 \\ -e QDRANT_URL=http:\u002F\u002Fhost.docker.internal:8099 \\ -e QDRANT_API_KEY=my-super-secret-key \\ -e FASTMCP_SERVER_HOST=\"0.0.0.0\" \\ -e FASTMCP_SERVER_PORT=\"8080\" \\ -e EMBEDDING_MODEL=\"BAAI\u002Fbge-small-zh-v1.5\" \\ -e QDRANT_READ_ONLY=false \\ -e QDRANT_CREATE_COLLECTION=true \\ mcp-server-qdrant \\ uvx mcp-server-qdrant --transport streamable-http 测试一下： curl -i \\ -X POST \\ http:\u002F\u002F127.0.0.1:8098\u002Fmcp\u002F \\ -H 'Content-Type: application\u002Fjson' \\ -H 'Accept: application\u002Fjson, text\u002Fevent-stream' \\ -d '{ \"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"initialize\", \"params\": { \"protocolVersion\": \"2025-06-18\", \"capabilities\": {}, \"clientInfo\": { \"name\": \"curl\", \"version\": \"1.0\" } } }' 但是， MCP 服务有两个问题： MCP 服务不提供 API KEY 的校验，部署后直接通过 qdrant 的 key 访问到后端，直接就裸奔了； 每次启动都要花时间去下载模型，提早打包在镜像内更好 因此，我 folk 了这个仓库，增加了上述功能。地址在：https:\u002F\u002Fgithub.com\u002Fahfuzhang\u002Fmcp-server-qdrant\u002Ftree\u002Fdev 也可以直接使用我构建好的镜像：https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fahfuzhang\u002Fmcp-server-qdrant\u002Ftags 增加 MCP API KEY 校验方法的启动方式为： docker run -d --rm \\ --name mcp-server-qdrant \\ -p 8098:8080 \\ -e QDRANT_URL=http:\u002F\u002Fhost.docker.internal:6333 \\ -e QDRANT_API_KEY=my-secret-key \\ -e FASTMCP_SERVER_HOST=\"0.0.0.0\" \\ -e FASTMCP_SERVER_PORT=\"8080\" \\ -e EMBEDDING_MODEL=\"BAAI\u002Fbge-small-zh-v1.5\" \\ -e QDRANT_READ_ONLY=false \\ -e QDRANT_CREATE_COLLECTION=true \\ -e MCP_API_KEY=\"ahfu_mcp_key\" \\ ahfuzhang\u002Fmcp-server-qdrant:v0.1.0 \\ mcp-server-qdrant --transport streamable-http 在 K8s 中部署 可以使用 sidecar 的方式，把 qdrant 和 mcp-server-qdrant 部署在一个 stateful set 之中： apiVersion: v1 kind: Secret metadata: name: qdrant-secrets namespace: our-team type: Opaque stringData: QDRANT_API_KEY: \"my-secret-key\" MCP_API_KEY: \"ahfu_mcp_key\" ---- apiVersion: apps\u002Fv1 kind: StatefulSet metadata: name: qdrant-0 labels: app: qdrant namespace: our-team spec: serviceName: qdrant-headless replicas: 1 podManagementPolicy: Parallel selector: matchLabels: app: qdrant template: metadata: labels: app: qdrant spec: containers: - name: qdrant image: qdrant\u002Fqdrant:v1.15.4 imagePullPolicy: IfNotPresent ports: - name: http containerPort: 6333 - name: grpc containerPort: 6334 env: - name: QDRANT__SERVICE__API_KEY valueFrom: secretKeyRef: name: qdrant-secrets key: QDRANT_API_KEY readinessProbe: httpGet: path: \u002Freadyz port: 6333 initialDelaySeconds: 10 periodSeconds: 10 livenessProbe: httpGet: path: \u002Flivez port: 6333 initialDelaySeconds: 30 periodSeconds: 20 resources: limits: cpu: \"8\" memory: 8Gi requests: cpu: \"8\" memory: 8Gi volumeMounts: - name: qdrant-data mountPath: \u002Fqdrant\u002Fstorage - name: mcp-server-qdrant image: ahfuzhang\u002Fmcp-server-qdrant:v0.1.0 imagePullPolicy: IfNotPresent command: - mcp-server-qdrant - --transport - streamable-http ports: - name: mcp-http containerPort: 8080 env: - name: QDRANT_URL value: \"http:\u002F\u002Flocalhost:6333\" - name: QDRANT_API_KEY valueFrom: secretKeyRef: name: qdrant-secrets key: QDRANT_API_KEY - name: MCP_API_KEY valueFrom: secretKeyRef: name: qdrant-secrets key: MCP_API_KEY - name: FASTMCP_SERVER_HOST value: \"0.0.0.0\" - name: FASTMCP_SERVER_PORT value: \"8080\" - name: EMBEDDING_MODEL value: \"BAAI\u002Fbge-small-zh-v1.5\" - name: QDRANT_READ_ONLY value: \"false\" - name: QDRANT_CREATE_COLLECTION value: \"true\" resources: limits: cpu: \"2\" memory: 2Gi requests: cpu: \"1\" memory: 1Gi volumeClaimTemplates: - metadata: name: qdrant-data spec: accessModes: [\"ReadWriteOnce\"] storageClassName: alicloud-disk resources: requests: storage: 20Gi ---- apiVersion: v1 kind: Service metadata: name: qdrant-headless namespace: our-team labels: app: qdrant spec: clusterIP: None publishNotReadyAddresses: true selector: app: qdrant ports: - name: http port: 6333 - name: grpc port: 6334 ---- apiVersion: v1 kind: Service metadata: name: qdrant namespace: our-team labels: app: qdrant spec: type: NodePort selector: app: qdrant ports: - name: mcp-http protocol: TCP port: 8080 targetPort: 8080 nodePort: 30313 配置到 codex 在 $CODEX_HOME 的 config.toml 中增加: [mcp_servers.qdrant] url = \"http:\u002F\u002F10.105.xx.xx:30313\u002Fmcp\" bearer_token_env_var = \"MCP_API_KEY\" 然后 shell 中增加: export MCP_API_KEY=ahfu_mcp_key 提示词中指明需要使用向量数据库： 回答下面的问题时，必须优先查询 MCP 中的企业知识库。 步骤： 1. 查看可用 collection。 2. 找到包含企业文档\u002F代码知识的 collection。 3. 使用 qdrant_qdrant-find 搜索相关内容。(支持向量搜索) 4. 如果第一次结果不足，修改关键词再次搜索。 5. 基于检索到的内容回答。 6. 告诉我答案依据了哪些文件\u002Fpath\u002Fdocument。 7. 如果查不到就返回查不到，不要做猜测 问题： \u002FGetUserInfo 这条接口，有哪些请求参数? 实在是太爽了，如果自己亲手去找，不知道要找多久！ 总结 本文简单的尝试了一下 qdrant 数据库，初步的感觉是好于 weaviate 数据库的，只是部署和使用上比 weaviate 稍麻烦一些。 导入到 qdrant 中的文档，先经过 MCP 服务器内的 BAAI\u002Fbge-small-zh-v1.5 模型来为中文文本计算向量值 支持向量值的搜索，其速度和质量比 BM25（Best Matching 25） 算法更好。 Have Fun. 😃",5104,{"id":6,"kind":7,"title":11,"summary":13,"image":14,"href":16,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":40},"2026 · 人工智能","#2563eb","16 \u002F 10",[19],{"targetType":8,"targetId":9,"likedByMe":42,"likeCount":43,"commentCount":43,"contentLikeCount":43,"contentCommentCount":43,"sourceLikeCount":43,"sourceCommentCount":43},false,0,[45,52,59,65,71,78,85,92],{"id":46,"kind":7,"title":47,"summary":48,"image":49,"href":50,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":51},"NEWS_ARTICLE:827","MHS 三部曲（下）：谁允许 AI 行动？——权力、合规与中国厂商的答卷","我们总在等待一个像 ChatGPT 那样的机器人时刻。但具身智能真正的拐点，也许先发生在更不起眼的地方：一台陌生设备，第一次能把自己的能力、状态和边界完整告诉 AI；一个 Agent，第一次能把试出来的经验固化成可验证、可复用的机器技能。","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F510\u002F202608\u002F510-20260830153745229-1536981088.jpg","\u002Fnews\u002F827",[19],{"id":53,"kind":7,"title":54,"summary":55,"image":56,"href":57,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":58},"NEWS_ARTICLE:853","为什么团队用了 AI 之后，测试质量反而下降了！","一、AI 提效之后，往往先崩的是质量 前两天刷到一篇同行的复盘。 「AI 提效半年后，我们的测试团队规模反而更大了」 用AI 提效半年，人数不降，反而变更多了？ 这位老哥是认真做过团队实践的，观察写得很扎实。提测质量肉眼可见地下滑，需求做漏了，单位时间里测试捞出来的 bug 反而变多，最后测试团队加","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831223910845.png","\u002Fnews\u002F853",[19],{"id":60,"kind":7,"title":61,"summary":62,"image":15,"href":63,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":64},"NEWS_ARTICLE:856","AI生产力：从效率到工作流重构","当初学专业的笔记还在吗？相信大部分人都没保留，而能力在不断积累和更新，关注和思考的角度在变化，在AI蒸馏我们的同时。也可以用AI的能力，去蒸馏一下魔幻的职场。","\u002Fnews\u002F856",[19],{"id":66,"kind":7,"title":67,"summary":68,"image":15,"href":69,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":70},"NEWS_ARTICLE:861","个体看衰AI，企业加速转型","信息化数字化智能化，十年前的说法在逐步兑现。最后回到一个灵魂拷问：当业务运营更加高效。组织间的协作更加流畅，企业究竟想去拓宽市场，还是手起刀落降低成本？","\u002Fnews\u002F861",[19],{"id":72,"kind":7,"title":73,"summary":74,"image":75,"href":76,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":77},"NEWS_ARTICLE:864","阿里开源：skill-up，一款Agent Skill 评测工具！","2026 年走到现在，Agent Skill 已经成了 AI 领域的标配。 把个人经验沉淀成 SKILL.md，把团队最佳实践封装成可复用的技能包，这些都已经是很常规的操作了。最近在社区上看到有篇文章问了一个特别扎心的问题。 「一个 Skill 的『好坏』，到底由谁定义？评判它的标准又是什么？」 这","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831105634380.png","\u002Fnews\u002F864",[19],{"id":79,"kind":7,"title":80,"summary":81,"image":82,"href":83,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":84},"NEWS_ARTICLE:868","DeepSeekHarness-MCP-Manager 一款DSH超好用的MCP管理跟Skills管理插件","链接：https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager 设置 → MCP 管理&#160;管理项目级与全局&#160;cordis.patch.yml&#160;中的&#160;@deepseek-ai\u002Fdsh-mcp-client&#160;","https:\u002F\u002Fcamo.githubusercontent.com\u002F5d48b15e4e45c30746d4410bd5dd51552b20ed0294e6703d220931a8377c3ff8\u002F68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40787878797a2f6473682d6d63702d6d616e616765723f6c6f676f3d6e706d26636f6c6f723d636233383337","\u002Fnews\u002F868",[19],{"id":86,"kind":7,"title":87,"summary":88,"image":89,"href":90,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":91},"NEWS_ARTICLE:871","\"AgentOPSD: Recursive Self-Distillation for Agentic Reinforcement Learning\" 论文笔记","清华、浙大与美团 LongCat 团队合作的 AgentOPSD，目前挂在 Arxiv 26.08 上，做的是长程多轮 Agentic RL 里的回合级信用分配。可验证奖励的 RL 只在整条轨迹结束时给一个稀疏的 0\u002F1 信号，GRPO 这类方法把轨迹级优势均匀广播到每个 token，无法把成败真正","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F3614753\u002F202609\u002F3614753-20260901141154042-339903878.png","\u002Fnews\u002F871",[19],{"id":93,"kind":7,"title":94,"summary":95,"image":49,"href":96,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":97},"NEWS_ARTICLE:880","MHS 三部曲（中）：8 小时集成、六种被拦截的故障，和一次教科书级的翻车","四个案例合起来说明三件事：接入与编排成本可以数量级下降（CMU\u002FJanelia），闭环试错和跨设备补救是真的（CMU\u002FTetsuwan），但物理直觉仍是硬伤（Genentech），安全必须长在模型之外。","\u002Fnews\u002F880",[19]]