<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://zengliangyi.com/</loc></url><url><loc>https://zengliangyi.com/about/</loc></url><url><loc>https://zengliangyi.com/blog/</loc></url><url><loc>https://zengliangyi.com/blog/agent-knowledge-memory-loop/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/agent-knowledge-memory-loop.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ai-conversation-data-formats/</loc><lastmod>2026-09-24T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-data-formats.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ai-conversation-format-divergence/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-format-divergence.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ai-conversation-management-options/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-management-options.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ai-conversation-parser-boundaries/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-parser-boundaries.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ai-sdk-provider-abstraction/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-sdk-provider-abstraction.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ai-sdk-structured-notes/</loc><lastmod>2026-10-05T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-sdk-structured-notes.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/audiocontext-stream-sync-gate/</loc><lastmod>2026-03-16T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/audiocontext-stream-sync-gate.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/bulk-import-performance-plan/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/bulk-import-performance-plan.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/carousel-subpixel-1px-seam/</loc><lastmod>2026-10-21T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/carousel-subpixel-1px-seam.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/chatcrystal-getting-started/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/chatcrystal-getting-started.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/chatcrystal-mcp-setup/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/chatcrystal-mcp-setup.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/chatcrystal-to-obsidian/</loc><lastmod>2026-09-24T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/chatcrystal-to-obsidian.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/claude-code-conversation-import/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/claude-code-conversation-import.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/claude-code-jsonl-noise-filter/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/claude-code-jsonl-noise-filter.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/claude-code-memory-workflow/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/claude-code-memory-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/cli-knowledge-workflow/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cli-knowledge-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/cloud-llm-configuration/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cloud-llm-configuration.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/codex-trae-copilot-import/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/codex-trae-copilot-import.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/conversation-import-memory-budget/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/conversation-import-memory-budget.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/conversation-knowledge-retrospective/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/conversation-knowledge-retrospective.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/cursor-conversation-import/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cursor-conversation-import.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/cursor-sqlite-parser-pitfalls/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cursor-sqlite-parser-pitfalls.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/electron-app-basics/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/electron-app-basics.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/electron-tray-window-state/</loc><lastmod>2026-10-05T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/electron-tray-window-state.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/embedding-model-configuration/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/embedding-model-configuration.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/embedding-retrieval-evaluation/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/embedding-retrieval-evaluation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/embedding-service-design/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/embedding-service-design.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/fastify-electron-service-lifecycle/</loc><lastmod>2026-10-08T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/fastify-electron-service-lifecycle.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/fastify-production-static-service/</loc><lastmod>2026-10-05T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/fastify-production-static-service.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/google-indexing-incremental-cache/</loc><lastmod>2026-10-21T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/google-indexing-incremental-cache.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/graph-assisted-refactoring/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/graph-assisted-refactoring.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/learn-fastify-with-chatcrystal/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/learn-fastify-with-chatcrystal.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/lint-format-tooling/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/lint-format-tooling.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/llm-and-embedding-separation/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/llm-and-embedding-separation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/llm-summary-evaluation/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/llm-summary-evaluation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/local-first-ai-data-boundaries/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/local-first-ai-data-boundaries.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/local-vector-database-selection/</loc><lastmod>2026-09-24T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/local-vector-database-selection.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/mcp-protocol-boundaries/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/mcp-protocol-boundaries.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/mcp-server-implementation/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/mcp-server-implementation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/multi-format-conversation-parsing/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/multi-format-conversation-parsing.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/note-relations-and-graph/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/note-relations-and-graph.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/npm-release-ci/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/npm-release-ci.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/ollama-local-workflow/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ollama-local-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/paddleocr-vl-api-proofreading/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/paddleocr-vl-api-proofreading.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/page/2/</loc></url><url><loc>https://zengliangyi.com/blog/page/3/</loc></url><url><loc>https://zengliangyi.com/blog/page/4/</loc></url><url><loc>https://zengliangyi.com/blog/page/5/</loc></url><url><loc>https://zengliangyi.com/blog/page/6/</loc></url><url><loc>https://zengliangyi.com/blog/pqueue-task-queues/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/pqueue-task-queues.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/rag-and-knowledge-graphs/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/rag-and-knowledge-graphs.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/react-stable-event-subscriptions/</loc><lastmod>2026-03-16T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/react-stable-event-subscriptions.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/recover-debugging-notes/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/recover-debugging-notes.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/semantic-search-relation-context/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/semantic-search-relation-context.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/semantic-search-workflow/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/semantic-search-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/source-adapter-design/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/source-adapter-design.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/source-adapter-internals/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/source-adapter-internals.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/sqljs-wasm-basics/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/sqljs-wasm-basics.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/sqljs-wasm-persistence/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/sqljs-wasm-persistence.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/structured-json-prompts/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/structured-json-prompts.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/tag/%E4%BA%8B%E4%BB%B6%E8%AE%A2%E9%98%85/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E5%85%B3%E7%B3%BB/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E5%90%91%E9%87%8F%E6%90%9C%E7%B4%A2/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E5%90%91%E9%87%8F%E6%A3%80%E7%B4%A2/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E5%AF%BC%E5%85%A5/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E5%B9%B6%E5%8F%91/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%9C%AC%E5%9C%B0%E4%BC%98%E5%85%88/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%9E%84%E5%BB%BA/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%9E%B6%E6%9E%84/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%80%A7%E8%83%BD/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%95%B0%E6%8D%AE%E8%A7%A3%E6%9E%90/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%96%87%E6%A1%A3%E8%A7%A3%E6%9E%90/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%A1%8C%E9%9D%A2%E5%BA%94%E7%94%A8/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E6%A3%80%E7%B4%A2/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E8%87%AA%E5%8A%A8%E5%8C%96/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E8%AE%A4%E8%AF%81/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E8%AF%84%E6%B5%8B/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E8%AF%AD%E4%B9%89%E6%90%9C%E7%B4%A2/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E8%B0%83%E8%AF%95/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E9%9A%90%E7%A7%81/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E9%9F%B3%E8%A7%86%E9%A2%91%E5%90%8C%E6%AD%A5/</loc></url><url><loc>https://zengliangyi.com/blog/tag/%E9%85%8D%E7%BD%AE/</loc></url><url><loc>https://zengliangyi.com/blog/tag/ai-agent/</loc></url><url><loc>https://zengliangyi.com/blog/tag/ai/</loc></url><url><loc>https://zengliangyi.com/blog/tag/astro/</loc></url><url><loc>https://zengliangyi.com/blog/tag/automation/</loc></url><url><loc>https://zengliangyi.com/blog/tag/chatcrystal/</loc></url><url><loc>https://zengliangyi.com/blog/tag/claude-code/</loc></url><url><loc>https://zengliangyi.com/blog/tag/cli/</loc></url><url><loc>https://zengliangyi.com/blog/tag/css/</loc></url><url><loc>https://zengliangyi.com/blog/tag/cursor/</loc></url><url><loc>https://zengliangyi.com/blog/tag/electron/</loc></url><url><loc>https://zengliangyi.com/blog/tag/embedding/</loc></url><url><loc>https://zengliangyi.com/blog/tag/evaluation/</loc></url><url><loc>https://zengliangyi.com/blog/tag/fastify/</loc></url><url><loc>https://zengliangyi.com/blog/tag/github-actions/</loc></url><url><loc>https://zengliangyi.com/blog/tag/google/</loc></url><url><loc>https://zengliangyi.com/blog/tag/hooks/</loc></url><url><loc>https://zengliangyi.com/blog/tag/javascript/</loc></url><url><loc>https://zengliangyi.com/blog/tag/jsonl/</loc></url><url><loc>https://zengliangyi.com/blog/tag/knowledge-graph/</loc></url><url><loc>https://zengliangyi.com/blog/tag/knowledge-management/</loc></url><url><loc>https://zengliangyi.com/blog/tag/llm/</loc></url><url><loc>https://zengliangyi.com/blog/tag/mcp/</loc></url><url><loc>https://zengliangyi.com/blog/tag/node-js/</loc></url><url><loc>https://zengliangyi.com/blog/tag/obsidian/</loc></url><url><loc>https://zengliangyi.com/blog/tag/ollama/</loc></url><url><loc>https://zengliangyi.com/blog/tag/paddleocr-vl/</loc></url><url><loc>https://zengliangyi.com/blog/tag/performance/</loc></url><url><loc>https://zengliangyi.com/blog/tag/python/</loc></url><url><loc>https://zengliangyi.com/blog/tag/rag/</loc></url><url><loc>https://zengliangyi.com/blog/tag/react/</loc></url><url><loc>https://zengliangyi.com/blog/tag/security/</loc></url><url><loc>https://zengliangyi.com/blog/tag/seo/</loc></url><url><loc>https://zengliangyi.com/blog/tag/sqlite/</loc></url><url><loc>https://zengliangyi.com/blog/tag/swiper/</loc></url><url><loc>https://zengliangyi.com/blog/tag/tailwind-css/</loc></url><url><loc>https://zengliangyi.com/blog/tag/tailwind/</loc></url><url><loc>https://zengliangyi.com/blog/tag/testing/</loc></url><url><loc>https://zengliangyi.com/blog/tag/typescript/</loc></url><url><loc>https://zengliangyi.com/blog/tag/vectra/</loc></url><url><loc>https://zengliangyi.com/blog/tag/vite/</loc></url><url><loc>https://zengliangyi.com/blog/tag/web-audio-api/</loc></url><url><loc>https://zengliangyi.com/blog/tag/webassembly/</loc></url><url><loc>https://zengliangyi.com/blog/tailwind-translate-minifier-css-layer/</loc><lastmod>2026-09-15T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/tailwind-translate-minifier-css-layer.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/tailwind-v4-vite-setup/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/tailwind-v4-vite-setup.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/tanstack-query-data-flow/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/tanstack-query-data-flow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/team-knowledge-sharing-plan/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/team-knowledge-sharing-plan.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/testing-strategy/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/testing-strategy.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/token-refresh-race-condition/</loc><lastmod>2026-10-08T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/token-refresh-race-condition.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/typescript-monorepo-configuration/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/typescript-monorepo-configuration.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/vectra-index-recovery/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/vectra-index-recovery.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/vectra-local-search/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/vectra-local-search.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/blog/vectra-search-internals/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/vectra-search-internals.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/contact/</loc></url><url><loc>https://zengliangyi.com/en/</loc></url><url><loc>https://zengliangyi.com/en/about/</loc></url><url><loc>https://zengliangyi.com/en/blog/</loc></url><url><loc>https://zengliangyi.com/en/blog/agent-knowledge-memory-loop/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/agent-knowledge-memory-loop.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ai-conversation-data-formats/</loc><lastmod>2026-09-24T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-data-formats.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ai-conversation-format-divergence/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-format-divergence.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ai-conversation-management-options/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-management-options.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ai-conversation-parser-boundaries/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-conversation-parser-boundaries.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ai-sdk-provider-abstraction/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-sdk-provider-abstraction.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ai-sdk-structured-notes/</loc><lastmod>2026-10-05T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ai-sdk-structured-notes.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/audiocontext-stream-sync-gate/</loc><lastmod>2026-03-16T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/audiocontext-stream-sync-gate.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/bulk-import-performance-plan/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/bulk-import-performance-plan.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/carousel-subpixel-1px-seam/</loc><lastmod>2026-10-21T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/carousel-subpixel-1px-seam.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/chatcrystal-getting-started/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/chatcrystal-getting-started.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/chatcrystal-mcp-setup/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/chatcrystal-mcp-setup.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/chatcrystal-to-obsidian/</loc><lastmod>2026-09-24T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/chatcrystal-to-obsidian.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/claude-code-conversation-import/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/claude-code-conversation-import.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/claude-code-jsonl-noise-filter/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/claude-code-jsonl-noise-filter.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/claude-code-memory-workflow/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/claude-code-memory-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/cli-knowledge-workflow/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cli-knowledge-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/cloud-llm-configuration/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cloud-llm-configuration.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/codex-trae-copilot-import/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/codex-trae-copilot-import.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/conversation-import-memory-budget/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/conversation-import-memory-budget.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/conversation-knowledge-retrospective/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/conversation-knowledge-retrospective.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/cursor-conversation-import/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cursor-conversation-import.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/cursor-sqlite-parser-pitfalls/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/cursor-sqlite-parser-pitfalls.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/electron-app-basics/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/electron-app-basics.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/electron-tray-window-state/</loc><lastmod>2026-10-05T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/electron-tray-window-state.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/embedding-model-configuration/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/embedding-model-configuration.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/embedding-retrieval-evaluation/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/embedding-retrieval-evaluation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/embedding-service-design/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/embedding-service-design.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/fastify-electron-service-lifecycle/</loc><lastmod>2026-10-08T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/fastify-electron-service-lifecycle.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/fastify-production-static-service/</loc><lastmod>2026-10-05T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/fastify-production-static-service.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/google-indexing-incremental-cache/</loc><lastmod>2026-10-21T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/google-indexing-incremental-cache.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/graph-assisted-refactoring/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/graph-assisted-refactoring.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/learn-fastify-with-chatcrystal/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/learn-fastify-with-chatcrystal.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/lint-format-tooling/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/lint-format-tooling.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/llm-and-embedding-separation/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/llm-and-embedding-separation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/llm-summary-evaluation/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/llm-summary-evaluation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/local-first-ai-data-boundaries/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/local-first-ai-data-boundaries.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/local-vector-database-selection/</loc><lastmod>2026-09-24T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/local-vector-database-selection.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/mcp-protocol-boundaries/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/mcp-protocol-boundaries.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/mcp-server-implementation/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/mcp-server-implementation.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/multi-format-conversation-parsing/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/multi-format-conversation-parsing.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/note-relations-and-graph/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/note-relations-and-graph.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/npm-release-ci/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/npm-release-ci.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/ollama-local-workflow/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/ollama-local-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/paddleocr-vl-api-proofreading/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/paddleocr-vl-api-proofreading.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/page/2/</loc></url><url><loc>https://zengliangyi.com/en/blog/page/3/</loc></url><url><loc>https://zengliangyi.com/en/blog/page/4/</loc></url><url><loc>https://zengliangyi.com/en/blog/page/5/</loc></url><url><loc>https://zengliangyi.com/en/blog/page/6/</loc></url><url><loc>https://zengliangyi.com/en/blog/pqueue-task-queues/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/pqueue-task-queues.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/rag-and-knowledge-graphs/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/rag-and-knowledge-graphs.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/react-stable-event-subscriptions/</loc><lastmod>2026-03-16T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/react-stable-event-subscriptions.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/recover-debugging-notes/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/recover-debugging-notes.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/semantic-search-relation-context/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/semantic-search-relation-context.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/semantic-search-workflow/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/semantic-search-workflow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/source-adapter-design/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/source-adapter-design.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/source-adapter-internals/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/source-adapter-internals.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/sqljs-wasm-basics/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/sqljs-wasm-basics.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/sqljs-wasm-persistence/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/sqljs-wasm-persistence.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/structured-json-prompts/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/structured-json-prompts.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/tag/a-v-sync/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/ai-agent/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/ai/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/architecture/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/astro/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/authentication/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/automation/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/build/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/chatcrystal/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/claude-code/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/cli/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/concurrency/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/configuration/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/css/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/cursor/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/data-parsing/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/debugging/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/desktop-apps/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/document-parsing/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/electron/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/embedding/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/evaluation/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/event-subscriptions/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/fastify/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/github-actions/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/google/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/hooks/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/import/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/javascript/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/jsonl/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/knowledge-graph/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/knowledge-graphs/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/knowledge-management/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/llm/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/local-first/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/mcp/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/node-js/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/obsidian/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/ollama/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/paddleocr-vl/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/performance/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/privacy/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/python/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/rag/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/react/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/relations/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/retrieval/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/security/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/semantic-search/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/seo/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/sqlite/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/swiper/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/tailwind-css/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/tailwind/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/testing/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/troubleshooting/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/typescript/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/vector-search/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/vectra/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/vite/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/web-audio-api/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/web-development/</loc></url><url><loc>https://zengliangyi.com/en/blog/tag/webassembly/</loc></url><url><loc>https://zengliangyi.com/en/blog/tailwind-translate-minifier-css-layer/</loc><lastmod>2026-09-15T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/tailwind-translate-minifier-css-layer.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/tailwind-v4-vite-setup/</loc><lastmod>2026-10-04T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/tailwind-v4-vite-setup.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/tanstack-query-data-flow/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/tanstack-query-data-flow.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/team-knowledge-sharing-plan/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/team-knowledge-sharing-plan.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/testing-strategy/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/testing-strategy.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/token-refresh-race-condition/</loc><lastmod>2026-10-08T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/token-refresh-race-condition.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/typescript-monorepo-configuration/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/typescript-monorepo-configuration.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/vectra-index-recovery/</loc><lastmod>2026-10-03T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/vectra-index-recovery.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/vectra-local-search/</loc><lastmod>2026-10-06T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/vectra-local-search.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/blog/vectra-search-internals/</loc><lastmod>2026-10-07T00:00:00.000Z</lastmod><image:image><image:loc>https://zengliangyi.com/images/blog/vectra-search-internals.svg</image:loc></image:image></url><url><loc>https://zengliangyi.com/en/contact/</loc></url><url><loc>https://zengliangyi.com/en/privacy/</loc></url><url><loc>https://zengliangyi.com/en/projects/</loc></url><url><loc>https://zengliangyi.com/en/projects/chatcrystal/</loc></url><url><loc>https://zengliangyi.com/en/projects/image-tool/</loc></url><url><loc>https://zengliangyi.com/en/projects/network-error-reporter/</loc></url><url><loc>https://zengliangyi.com/en/projects/paddleocr-vl/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/ai/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/canvas/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/chrome-extension/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/developer-tools/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/document-ai/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/html/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/javascript/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/mcp/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/offline-tools/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/python/</loc></url><url><loc>https://zengliangyi.com/en/projects/tag/typescript/</loc></url><url><loc>https://zengliangyi.com/en/services/</loc></url><url><loc>https://zengliangyi.com/privacy/</loc></url><url><loc>https://zengliangyi.com/projects/</loc></url><url><loc>https://zengliangyi.com/projects/chatcrystal/</loc></url><url><loc>https://zengliangyi.com/projects/image-tool/</loc></url><url><loc>https://zengliangyi.com/projects/network-error-reporter/</loc></url><url><loc>https://zengliangyi.com/projects/paddleocr-vl/</loc></url><url><loc>https://zengliangyi.com/projects/tag/ai/</loc></url><url><loc>https://zengliangyi.com/projects/tag/canvas/</loc></url><url><loc>https://zengliangyi.com/projects/tag/chrome-extension/</loc></url><url><loc>https://zengliangyi.com/projects/tag/developer-tools/</loc></url><url><loc>https://zengliangyi.com/projects/tag/document-ai/</loc></url><url><loc>https://zengliangyi.com/projects/tag/html/</loc></url><url><loc>https://zengliangyi.com/projects/tag/javascript/</loc></url><url><loc>https://zengliangyi.com/projects/tag/mcp/</loc></url><url><loc>https://zengliangyi.com/projects/tag/offline-tools/</loc></url><url><loc>https://zengliangyi.com/projects/tag/python/</loc></url><url><loc>https://zengliangyi.com/projects/tag/typescript/</loc></url><url><loc>https://zengliangyi.com/services/</loc></url></urlset>