[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-liveblocks--liveblocks":3,"tool-liveblocks--liveblocks":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":67,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":67,"owner_website":81,"owner_url":82,"languages":83,"stars":120,"forks":121,"last_commit_at":122,"license":123,"difficulty_score":23,"env_os":124,"env_gpu":124,"env_ram":124,"env_deps":125,"category_tags":139,"github_topics":140,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":156,"updated_at":157,"faqs":158,"releases":189},2450,"liveblocks\u002Fliveblocks","liveblocks","Realtime infrastructure for multiplayer apps and agents","Liveblocks 是一套专为构建多人协作应用和 AI 智能体交互而设计的实时基础设施。简单来说，它就像是为你的应用程序提供了一套“即插即用”的协作引擎，让开发者能够轻松实现类似 Google Docs 或 Figma 那样的多人实时互动体验。\n\n在开发协作类软件时，处理实时数据同步、冲突解决以及用户状态管理往往极其复杂且耗时。Liveblocks 正是为了解决这一痛点而生。它将底层的复杂性封装起来，提供了一系列开箱即用的功能模块，包括上下文评论、实时多人协作、AI 智能体集成以及通知系统。这意味着开发者无需从零开始搭建 WebSocket 服务或处理棘手的数据一致性问题，从而可以将精力集中在打造产品独特的用户体验上。\n\nLiveblocks 主要面向前端和全栈开发者，特别是那些希望在其产品中快速集成协作功能的团队。无论你是正在构建协同文本编辑器、设计工具，还是希望引入 AI 助手与用户共同工作的创新应用，Liveblocks 都能提供强有力的支持。其技术亮点在于提供了丰富的 SDK 和预构建组件，深度适配 React、Vue 等主流前端框架，并支持与 Tiptap、Lexical、","Liveblocks 是一套专为构建多人协作应用和 AI 智能体交互而设计的实时基础设施。简单来说，它就像是为你的应用程序提供了一套“即插即用”的协作引擎，让开发者能够轻松实现类似 Google Docs 或 Figma 那样的多人实时互动体验。\n\n在开发协作类软件时，处理实时数据同步、冲突解决以及用户状态管理往往极其复杂且耗时。Liveblocks 正是为了解决这一痛点而生。它将底层的复杂性封装起来，提供了一系列开箱即用的功能模块，包括上下文评论、实时多人协作、AI 智能体集成以及通知系统。这意味着开发者无需从零开始搭建 WebSocket 服务或处理棘手的数据一致性问题，从而可以将精力集中在打造产品独特的用户体验上。\n\nLiveblocks 主要面向前端和全栈开发者，特别是那些希望在其产品中快速集成协作功能的团队。无论你是正在构建协同文本编辑器、设计工具，还是希望引入 AI 助手与用户共同工作的创新应用，Liveblocks 都能提供强有力的支持。其技术亮点在于提供了丰富的 SDK 和预构建组件，深度适配 React、Vue 等主流前端框架，并支持与 Tiptap、Lexical、ProseMirror 等流行编辑器库无缝集成。此外，它还兼容 Redux、Zustand 等状态管理工具以及 Yjs 等 CRDT 库，甚至提供了 Python SDK 和 REST API，展现了极高的灵活性和广泛的生态兼容性。通过 Liveblocks，开发者可以以更低的成本、更高的效率，为用户带来流畅、自然的实时协作与 AI 互动体验。","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fliveblocks.io#gh-light-mode-only\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fliveblocks\u002Fliveblocks\u002Fmain\u002F.github\u002Fassets\u002Fheader-wordmark-light.svg\" alt=\"Liveblocks\"   \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fliveblocks.io#gh-dark-mode-only\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fliveblocks\u002Fliveblocks\u002Fmain\u002F.github\u002Fassets\u002Fheader-wordmark-dark.svg\" alt=\"Liveblocks\"   \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fliveblocks\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fliveblocks-message?style=flat&logo=x&color=555&logoColor=fff\" alt=\"X\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fliveblocks.io\u002Fdiscord\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F913109211746009108?style=flat&label=discord&logo=discord&color=85f&logoColor=fff\" alt=\"Discord\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCDXT5skWxzOorIQrWG5OT2w\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fyoutube\u002Fchannel\u002Fsubscribers\u002FUCDXT5skWxzOorIQrWG5OT2w?style=flat&label=youtube&logo=youtube&color=e14&logoColor=fff\" alt=\"YouTube\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicenses-Apache--2.0%2C%20AGPL--3.0-green\" alt=\"License\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n**[Liveblocks](https:\u002F\u002Fliveblocks.io) gives you the building blocks and\ninfrastructure to enable people and AI to work together inside your app.**\n\n**[Get started for free](https:\u002F\u002Fliveblocks.io\u002Fsignup)**\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fliveblocks_liveblocks_readme_08fd9b6a1be1.png\" alt=\"Liveblocks Collaboration Infrastructure\"   \u002F>\n\n## Ready-made features\n\nLiveblocks includes a set of collaboration building blocks you can use\nindividually or together. These ready-made features provide pre-built\ncomponents, hooks, and APIs that handle the complexity of realtime\ncollaboration, allowing you to focus on building your product’s unique\nexperience.\n\n- [Comments](https:\u002F\u002Fliveblocks.io\u002Fcomments) - Add contextual comments directly\n  inside your product\n- [Multiplayer](https:\u002F\u002Fliveblocks.io\u002Fmultiplayer) - Add realtime collaboration\n  to your product experience\n- [AI Agents](https:\u002F\u002Fliveblocks.io\u002Fai-agents) - Add AI collaborators to your\n  product\n- [Notifications](https:\u002F\u002Fliveblocks.io\u002Fnotifications) - Add notifications to\n  your app to keep users coming back\n\n## SDKs and packages\n\nPackages for specific libraries and frameworks to add Liveblocks-powered\ncollaborative experiences to your product. Integrations are designed to serve\nvarious collaboration use cases such as collaborative text editors, comments,\nnotifications, and more.\n\n- [`@liveblocks\u002Fclient`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-client)\n- [`@liveblocks\u002Freact`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react)\n- [`@liveblocks\u002Freact-ui`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-ui)\n- [`@liveblocks\u002Freact-tiptap`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-tiptap)\n- [`@liveblocks\u002Freact-blocknote`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-blocknote)\n- [`@liveblocks\u002Fnode-prosemirror`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-node-prosemirror)\n- [`@liveblocks\u002Freact-lexical`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-lexical)\n- [`@liveblocks\u002Fnode-lexical`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-node-lexical)\n- [`@liveblocks\u002Fredux`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-redux)\n- [`@liveblocks\u002Fzustand`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-zustand)\n- [`@liveblocks\u002Fyjs`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-yjs)\n- [`@liveblocks\u002Fnode`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-node)\n- [`@liveblocks\u002Femails`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-emails)\n- [`@liveblocks\u002Femails`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-emails)\n- [`@liveblocks\u002Fchat-sdk-adapter`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-chat-sdk-adapter)\n- [Python SDK](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-python)\n- [`REST API`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Frest-api-endpoints)\n\n## Developers\n\n- [Documentation](https:\u002F\u002Fliveblocks.io\u002Fdocs) - [`\u002Fdocs`](.\u002Fdocs)\n- [Guides](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fguides) - [`\u002Fguides`](.\u002Fguides)\n- [Tutorial](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Ftutorial\u002Freact\u002Fgetting-started) -\n  [`\u002Ftutorial`](.\u002Ftutorial)\n- [Examples](https:\u002F\u002Fliveblocks.io\u002Fexamples) - [`\u002Fexamples`](.\u002Fexamples)\n- [Changelog](https:\u002F\u002Fliveblocks.io\u002Fchangelog)\n\n## Community and support\n\n- [GitHub issues](https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues) to file bugs\n  and errors you encounter using Liveblocks.\n- [Discord](https:\u002F\u002Fliveblocks.io\u002Fdiscord) to get involved with the Liveblocks\n  community, ask questions and share tips.\n- [Email](https:\u002F\u002Fliveblocks.io\u002Fcontact) to contact us directly for support and\n  sales enquiries.\n- [X](https:\u002F\u002Fx.com\u002Fliveblocks) to receive updates, announcements, blog posts,\n  and general Liveblocks tips.\n\n## License\n\nMost of this repository is licensed under the Apache License 2.0, Copyright ©\n2021-present [Liveblocks](https:\u002F\u002Fliveblocks.io). Some components are licensed\nunder AGPL-3.0-or-later.\n\nSee [LICENSE](.\u002FLICENSE) for details.\n","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fliveblocks.io#gh-light-mode-only\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fliveblocks\u002Fliveblocks\u002Fmain\u002F.github\u002Fassets\u002Fheader-wordmark-light.svg\" alt=\"Liveblocks\"   \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fliveblocks.io#gh-dark-mode-only\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fliveblocks\u002Fliveblocks\u002Fmain\u002F.github\u002Fassets\u002Fheader-wordmark-dark.svg\" alt=\"Liveblocks\"   \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fliveblocks\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fliveblocks-message?style=flat&logo=x&color=555&logoColor=fff\" alt=\"X\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fliveblocks.io\u002Fdiscord\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F913109211746009108?style=flat&label=discord&logo=discord&color=85f&logoColor=fff\" alt=\"Discord\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCDXT5skWxzOorIQrWG5OT2w\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fyoutube\u002Fchannel\u002Fsubscribers\u002FUCDXT5skWxzOorIQrWG5OT2w?style=flat&label=youtube&logo=youtube&color=e14&logoColor=fff\" alt=\"YouTube\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicenses-Apache--2.0%2C%20AGPL--3.0-green\" alt=\"License\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n**[Liveblocks](https:\u002F\u002Fliveblocks.io) 为您提供构建模块和基础设施，使您应用中的用户与 AI 能够协同工作。**\n\n**[立即免费开始](https:\u002F\u002Fliveblocks.io\u002Fsignup)**\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fliveblocks_liveblocks_readme_08fd9b6a1be1.png\" alt=\"Liveblocks 协作基础设施\"   \u002F>\n\n## 现成功能\n\nLiveblocks 包含一系列协作构建模块，您可以单独使用或组合使用。这些现成的功能提供了预构建的组件、钩子和 API，能够处理实时协作的复杂性，让您专注于打造产品独特的用户体验。\n\n- [评论](https:\u002F\u002Fliveblocks.io\u002Fcomments) - 直接在您的产品中添加上下文相关的评论\n- [多人游戏](https:\u002F\u002Fliveblocks.io\u002Fmultiplayer) - 为您的产品体验添加实时协作功能\n- [AI 助手](https:\u002F\u002Fliveblocks.io\u002Fai-agents) - 在您的产品中加入 AI 合作者\n- [通知](https:\u002F\u002Fliveblocks.io\u002Fnotifications) - 为您的应用添加通知，以保持用户的活跃度\n\n## SDK 和软件包\n\n针对特定库和框架的软件包，用于将 Liveblocks 驱动的协作体验集成到您的产品中。这些集成旨在满足各种协作用例，例如协作文本编辑器、评论、通知等。\n\n- [`@liveblocks\u002Fclient`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-client)\n- [`@liveblocks\u002Freact`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react)\n- [`@liveblocks\u002Freact-ui`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-ui)\n- [`@liveblocks\u002Freact-tiptap`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-tiptap)\n- [`@liveblocks\u002Freact-blocknote`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-blocknote)\n- [`@liveblocks\u002Fnode-prosemirror`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-node-prosemirror)\n- [`@liveblocks\u002Freact-lexical`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-react-lexical)\n- [`@liveblocks\u002Fnode-lexical`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-node-lexical)\n- [`@liveblocks\u002Fredux`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-redux)\n- [`@liveblocks\u002Fzustand`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-zustand)\n- [`@liveblocks\u002Fyjs`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-yjs)\n- [`@liveblocks\u002Fnode`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-node)\n- [`@liveblocks\u002Femails`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-emails)\n- [`@liveblocks\u002Fchat-sdk-adapter`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-chat-sdk-adapter)\n- [Python SDK](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Fliveblocks-python)\n- [`REST API`](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fapi-reference\u002Frest-api-endpoints)\n\n## 开发者资源\n\n- [文档](https:\u002F\u002Fliveblocks.io\u002Fdocs) - [`\u002Fdocs`](.\u002Fdocs)\n- [指南](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Fguides) - [`\u002Fguides`](.\u002Fguides)\n- [教程](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Ftutorial\u002Freact\u002Fgetting-started) - [`\u002Ftutorial`](.\u002Ftutorial)\n- [示例](https:\u002F\u002Fliveblocks.io\u002Fexamples) - [`\u002Fexamples`](.\u002Fexamples)\n- [变更日志](https:\u002F\u002Fliveblocks.io\u002Fchangelog)\n\n## 社区与支持\n\n- [GitHub 问题](https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues) 用于报告您在使用 Liveblocks 时遇到的 bug 和错误。\n- [Discord](https:\u002F\u002Fliveblocks.io\u002Fdiscord) 是参与 Liveblocks 社区、提问和分享技巧的好地方。\n- [电子邮件](https:\u002F\u002Fliveblocks.io\u002Fcontact) 可直接联系我们获取支持和销售咨询。\n- [X](https:\u002F\u002Fx.com\u002Fliveblocks) 提供更新、公告、博客文章以及 Liveblocks 的实用技巧。\n\n## 许可证\n\n本仓库的大部分内容采用 Apache License 2.0 许可证，版权 © 2021 至今归 [Liveblocks](https:\u002F\u002Fliveblocks.io) 所有。部分组件则采用 AGPL-3.0 或更高版本许可证。\n\n详细信息请参阅 [LICENSE](.\u002FLICENSE)。","# Liveblocks 快速上手指南\n\nLiveblocks 是一套用于在应用中构建实时协作体验的基础设施，支持多人编辑、评论、通知及 AI 代理等功能。本指南将帮助你快速集成 Liveblocks 到 React 项目中。\n\n## 环境准备\n\n*   **Node.js**: 建议版本 18.0 或更高。\n*   **包管理器**: npm, yarn, pnpm 或 bun。\n*   **前端框架**: 本示例以 React 为主（Liveblocks 也支持 Vue、Svelte 等，但 React 生态集成最完善）。\n*   **Liveblocks 账号**: 访问 [Liveblocks 官网](https:\u002F\u002Fliveblocks.io\u002Fsignup) 注册并获取 Public Key。\n\n## 安装步骤\n\n根据你的项目需求，安装核心客户端库和 React 绑定库。如果需要使用预制的 UI 组件（如评论框、光标显示），还需安装 `@liveblocks\u002Freact-ui`。\n\n```bash\nnpm install @liveblocks\u002Fclient @liveblocks\u002Freact @liveblocks\u002Freact-ui\n```\n\n如果你正在使用 Next.js 或其他需要服务端渲染的框架，可能还需要安装 Node 端 SDK：\n\n```bash\nnpm install @liveblocks\u002Fnode\n```\n\n## 基本使用\n\n以下是一个最简单的实时状态同步示例（例如共享一个计数器或文本状态）。\n\n### 1. 初始化 Liveblocks Client\n\n在你的应用入口或专用配置文件中创建 client 实例。请将 `\"YOUR_PUBLIC_KEY\"` 替换为你从 Dashboard 获取的公钥。\n\n```typescript\n\u002F\u002F liveblocks.config.ts\nimport { createClient } from \"@liveblocks\u002Fclient\";\nimport { createRoomContext } from \"@liveblocks\u002Freact\";\n\nconst client = createClient({\n  publicApiKey: \"YOUR_PUBLIC_KEY\", \u002F\u002F 替换为你的公钥\n});\n\n\u002F\u002F 定义房间中存储的数据结构类型\ntype Presence = {\n  cursor: { x: number; y: number } | null;\n};\n\ntype Storage = {\n  counter: number;\n};\n\n\u002F\u002F 导出 hooks 和组件\nexport const {\n  suspense: {\n    RoomProvider,\n    useMyPresence,\n    useStorage,\n    useMutation,\n  },\n} = createRoomContext\u003CPresence, Storage>(client);\n```\n\n### 2. 在组件中使用\n\n使用 `RoomProvider` 包裹你的应用部分，并使用 hooks 读取和更新状态。\n\n```tsx\n\u002F\u002F App.tsx\nimport { RoomProvider, useMyPresence, useStorage, useMutation } from \".\u002Fliveblocks.config\";\n\nfunction CollaborativeApp() {\n  \u002F\u002F 读取共享存储中的 counter\n  const counter = useStorage((root) => root.counter);\n\n  \u002F\u002F 更新共享状态的 mutation\n  const incrementCounter = useMutation(({ storage }) => {\n    const currentCounter = storage.get(\"counter\");\n    storage.set(\"counter\", currentCounter + 1);\n  }, []);\n\n  \u002F\u002F 更新当前用户的存在状态（例如鼠标位置）\n  const [myPresence, updateMyPresence] = useMyPresence();\n\n  return (\n    \u003Cdiv>\n      \u003Ch1>实时计数器: {counter}\u003C\u002Fh1>\n      \u003Cbutton onClick={incrementCounter}>增加计数\u003C\u002Fbutton>\n      \n      \u003Cp>我的光标位置: {JSON.stringify(myPresence.cursor)}\u003C\u002Fp>\n      \u003Cbutton \n        onMouseMove={(e) => {\n          updateMyPresence({ cursor: { x: e.clientX, y: e.clientY } });\n        }}\n      >\n        移动鼠标以更新位置\n      \u003C\u002Fbutton>\n    \u003C\u002Fdiv>\n  );\n}\n\nexport default function Page() {\n  return (\n    \u002F\u002F roomId 必须是唯一的，用于标识协作会话\n    \u003CRoomProvider id=\"my-room-id\" initialPresence={{ cursor: null }} initialStorage={{ counter: 0 }}>\n      \u003CCollaborativeApp \u002F>\n    \u003C\u002FRoomProvider>\n  );\n}\n```\n\n### 3. 运行项目\n\n启动你的开发服务器：\n\n```bash\nnpm run dev\n```\n\n打开多个浏览器窗口访问同一页面，你将看到计数器和鼠标位置的实时同步效果。\n\n---\n\n**下一步建议：**\n*   查看 [官方文档](https:\u002F\u002Fliveblocks.io\u002Fdocs) 了解更复杂的场景，如富文本协作（Tiptap\u002FLexical）、评论系统和通知功能。\n*   参考 [Examples](https:\u002F\u002Fliveblocks.io\u002Fexamples) 获取完整的项目模板。","一家初创团队正在开发一款面向远程设计团队的在线白板协作平台，核心需求是支持多位设计师同时编辑画布、添加批注，并引入 AI 助手辅助生成设计灵感。\n\n### 没有 liveblocks 时\n- **实时同步开发成本极高**：团队需从零搭建 WebSocket 服务，自行处理冲突解决算法（如 OT 或 CRDT），耗时数月且极易出现数据不一致 bug，导致用户操作延迟或内容丢失。\n- **协作功能缺失或体验割裂**：由于缺乏现成的 UI 组件，实现“谁在看哪里”的光标追踪和上下文评论功能极其复杂，往往只能做到简单的页面刷新同步，无法提供流畅的多人互动体验。\n- **AI 集成困难且孤立**：AI 助手仅能通过独立的聊天窗口交互，无法感知画布上的实时状态，也不能直接在特定设计元素旁生成建议，导致人机协作流程断裂。\n- **通知系统维护负担重**：为了提醒用户关注评论或变更，需额外开发一套邮件或站内信系统，增加了后端复杂度和运维成本。\n\n### 使用 liveblocks 后\n- **基础设施即插即用**：借助 `@liveblocks\u002Fclient` 和 Yjs 集成，团队直接获得了经过生产验证的实时同步引擎，无需关心底层冲突处理，将开发重心从“造轮子”转向优化产品体验，上线时间缩短 70%。\n- **原生协作组件提升体验**：通过 `@liveblocks\u002Freact-ui` 快速嵌入悬停头像、实时光标和线程化评论功能，用户能直观看到队友的操作轨迹，实现了真正的“肩并肩”远程协作感。\n- **AI 与上下文深度融合**：利用 AI Agents 功能，AI 能够实时读取画布状态，并在设计师选中的组件旁直接生成配色建议或布局优化方案，实现了人与 AI 在同一工作流中的无缝配合。\n- **内置通知闭环**：直接使用内置的 Notifications API，当有人回复评论或提及用户时，系统自动触发应用内提醒和邮件通知，有效提升了用户的回访率和参与度。\n\nliveblocks 的核心价值在于将复杂的实时协作基础设施产品化，让开发者能以极低的成本构建出具备即时互动和 AI 协同能力的现代化应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fliveblocks_liveblocks_50e7c59b.png","Liveblocks","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fliveblocks_0bc69032.png","Liveblocks provides the realtime infrastructure to handle concurrent edits on shared data, so people and AI agents can collaborate without breaking your app.",null,"hello@liveblocks.io","https:\u002F\u002Fliveblocks.io","https:\u002F\u002Fgithub.com\u002Fliveblocks",[84,88,92,96,100,104,108,112,116],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",77.4,{"name":89,"color":90,"percentage":91},"Python","#3572A5",9.8,{"name":93,"color":94,"percentage":95},"MDX","#fcb32c",8.4,{"name":97,"color":98,"percentage":99},"CSS","#663399",2.3,{"name":101,"color":102,"percentage":103},"JavaScript","#f1e05a",1.4,{"name":105,"color":106,"percentage":107},"Jinja","#a52a22",0.4,{"name":109,"color":110,"percentage":111},"HTML","#e34c26",0.2,{"name":113,"color":114,"percentage":115},"Shell","#89e051",0.1,{"name":117,"color":118,"percentage":119},"Dockerfile","#384d54",0,4532,411,"2026-04-02T19:53:57","NOASSERTION","未说明",{"notes":126,"python":127,"dependencies":128},"Liveblocks 是一个用于构建实时协作功能的 SaaS 基础设施和 SDK 集合，主要面向 Web 开发（React, Node.js 等）及 Python 后端集成。它并非本地运行的独立 AI 模型或工具，因此 README 中未提及具体的本地操作系统、GPU、内存或 Python 版本硬性要求。开发者需根据所选的前端框架（如 React）或后端环境自行配置运行环境，并通过 API 密钥连接 Liveblocks 云服务。","提供 Python SDK，但具体版本要求未说明",[129,130,131,132,133,134,135,136,137,138],"@liveblocks\u002Fclient","@liveblocks\u002Freact","@liveblocks\u002Fnode","@liveblocks\u002Fyjs","@liveblocks\u002Fzustand","@liveblocks\u002Fredux","@liveblocks\u002Freact-tiptap","@liveblocks\u002Freact-lexical","@liveblocks\u002Fnode-prosemirror","@liveblocks\u002Femails",[15,26],[141,142,143,144,145,146,67,147,148,149,150,151,152,153,154,155],"websockets","real-time","multiplayer","presence","collaboration","toolkit","crdt","react","yjs","yjs-provider","commenting-system","comments","notifications-systems","ai-agents","ai-copilot","2026-03-27T02:49:30.150509","2026-04-06T06:52:01.713616",[159,164,169,174,179,184],{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},11273,"为什么有时用户显示为“匿名”（Anonymous），即使他们应该显示具体名称？","这通常是因为 `resolveUsers` 函数返回的用户列表与输入的用户 ID 列表不匹配。`resolveUsers` 要求返回的结果数量必须与输入的数量相同，且顺序一致。\n\n如果某个用户 ID 缺失或无法解析，不应将其从数组中移除，而应返回 `undefined`。例如：\n\n```ts\n\u002F\u002F userIds: [\"a\", \"b\", \"c\"]\nresolveUsers={async ({ userIds }) => {\n    \u002F\u002F ...\n    \u002F\u002F 如果只有 \"b\" 缺失，应返回：\n    return [userA, undefined, userC]\n}}\n```\n\n如果返回的用户数量少于预期，会导致所有用户都显示为匿名。对于已删除的用户，建议返回占位数据或 `undefined` 以保持数组长度一致。","https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues\u002F2045",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},11274,"如何在后端访问或操作 TipTap 编辑器的数据？是否有类似 Lexical 的 node 包？","Liveblocks 提供了一个 `node\u002Fprosemirror` 包，可以用于修改和读取 TipTap（基于 ProseMirror）的数据。虽然目前文档尚未完善，但该包的使用方式与 Lexical 包非常相似，你可以参考包内的测试用例来了解具体用法。\n\n此外，如果在同一页面使用多个编辑器，未来的版本将支持在 `useLiveblocksExtension` hook 中传入唯一的 `field` 名称，以避免冲突。","https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues\u002F2046",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},11275,"如何通过 API 初始化房间（Room）的存储（Storage）数据？","你可以通过 POST 请求调用 `https:\u002F\u002Fliveblocks.net\u002Fapi\u002Fv1\u002Froom\u002F:roomId\u002Fstorage\u002Fjson` 来初始化存储。\n\n需要注意以下几点：\n1. **API 调用顺序**：建议先初始化存储数据，然后再调用授权接口（`https:\u002F\u002Fliveblocks.io\u002Fapi\u002Fauthorize`）获取 Token。如果先调用授权接口，房间可能会被自动创建并初始化空存储，导致后续写入失败并返回 “Room already has storage data” 错误。\n2. **JSON 格式**：确保传入的 JSON 结构符合 Liveblocks 的类型要求（如使用 `LiveMap` 等类型标识）。\n3. **覆盖限制**：如果房间存储已存在数据，可能需要先清空或确保存储为空才能重新初始化（具体行为取决于 SDK 版本和配置）。","https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues\u002F154",{"id":175,"question_zh":176,"answer_zh":177,"source_url":178},11276,"客户端电脑进入睡眠模式后，其他用户仍看到该用户在线，如何处理连接状态不一致的问题？","这是一个已知的连接检测问题。Liveblocks 在 v1.1 版本中对客户端内部进行了全面重构， holistic 地解决了所有已知的连接性问题。\n\n如果你遇到客户端睡眠后仍显示在线的情况，请升级到 Liveblocks v1.1 或更高版本。新版本改进了心跳检测和断开连接的逻辑，能更准确地反映用户的真实在线状态。","https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues\u002F679",{"id":180,"question_zh":181,"answer_zh":182,"source_url":183},11277,"在 Lexical 编辑器中解决（Resolve）评论线程时报错 “Failed to execute 'observe' on 'ResizeObserver'”，如何解决？","这是一个已在 Liveblocks v2.11.1 版本中修复的 Bug。该错误通常发生在尝试观察一个非 Element 类型的对象时。\n\n解决方案是将 `@liveblocks\u002Freact-lexical` 及相关包升级到 v2.11.1 或更高版本。升级后，在编辑器内解决评论线程时将不再抛出此异常。","https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues\u002F2010",{"id":185,"question_zh":186,"answer_zh":187,"source_url":188},11278,"Liveblocks 支持自托管（Self-hosting）吗？","根据目前的官方回复，Liveblocks 主要提供云服务，并未公开提供自托管版本。尽管有许多用户表示愿意支付许可费用以换取自托管能力，但截至相关 Issue 关闭时，官方尚未发布自托管方案。建议关注官方公告或联系销售团队获取最新的企业级部署选项。","https:\u002F\u002Fgithub.com\u002Fliveblocks\u002Fliveblocks\u002Fissues\u002F682",[190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285],{"id":191,"version":192,"summary_zh":193,"released_at":194},61758,"v3.17.0","### `@liveblocks\u002Freact-flow`\n\n- 介绍该包。可通过 `npm install @liveblocks\u002Freact-flow` 进行安装。\n  提供一系列钩子和组件，利用 Liveblocks 存储为任何 React Flow 图表添加协作功能：\n  - 使用 `useLiveblocksFlow` 钩子使 React Flow 实现同步和协作。\n  - 使用 `Cursors` 组件在 React Flow 中显示其他用户的光标。\n\n### `@liveblocks\u002Freact-ui`\n\n- 允许通过传递 `components={{ Cursor: MyCursor }}` 属性来自定义 `Cursors` 组件中的光标。","2026-04-02T15:00:33",{"id":196,"version":197,"summary_zh":198,"released_at":199},61759,"v3.16.0","### `@liveblocks\u002Fchat-sdk-adapter`\n\n- 介绍该包。可通过 `npm install @liveblocks\u002Fchat-sdk-adapter` 进行安装。它提供了一个与 [`chat-sdk`](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fchat) 兼容的后端适配器，底层基于 Liveblocks Comments：支持 Webhook、发布和编辑消息、添加反应、分页获取数据、线程和频道辅助工具，以及可选的 `resolveUsers` 和 `resolveGroupsInfo` 钩子。\n\n### `@liveblocks\u002Freact`\n\n- 新增 Feeds 相关钩子：`useFeeds`、`useFeedMessages`、`useCreateFeed`、`useDeleteFeed`、`useUpdateFeedMetadata`、`useCreateFeedMessage`、`useDeleteFeedMessage` 和 `useUpdateFeedMessage`。\n\n### `@liveblocks\u002Fnode`\n\n- 为 Feeds 添加 REST 客户端方法：`getFeeds`、`getFeed`、`createFeed`、`updateFeed`、`deleteFeed`、`getFeedMessages`、`createFeedMessage`、`updateFeedMessage` 和 `deleteFeedMessage`。\n\n### Python SDK\n\n- 在同步和异步客户端中新增 Feeds REST API 支持（`get_feeds`、`get_feed`、`create_feed`、`update_feed`、`delete_feed`、`get_feed_messages`、`create_feed_message`、`update_feed_message`、`delete_feed_message`），并提供了相应的请求\u002F响应模型。\n\n### `@liveblocks\u002Fclient`\n\n- 新增 **Feeds** 功能：房间范围内的信息流，包含元数据和消息，并提供列出、创建、更新和删除信息流及消息的 API（`fetchFeeds`、`fetchFeedMessages`、`addFeed`、`updateFeed`、`deleteFeed`、`addFeedMessage`、`updateFeedMessage`、`deleteFeedMessage`）。\n\n### `@liveblocks\u002Freact-ui`\n\n- 为 `Comment` 组件新增 `body` 属性，允许仅覆盖默认的富文本评论正文，同时保留附件、反应和 `additionalContent` 不变，这与使用 `children` 属性时的行为不同。\n- 修复了 `AvatarStack` 的负边距导致对齐问题。","2026-03-31T16:20:28",{"id":201,"version":202,"summary_zh":203,"released_at":204},61760,"v3.15.5","### `@liveblocks\u002Ftiptap`\n\n- 改进了在复制或粘贴包含注释的文本节点时的剪贴板处理。\n\n### Python SDK\n\n- 修复了某些端点的请求体问题，例如 `update_room_id` 和 `initialize_storage_document` 的请求体被错误地设置为可选。","2026-03-23T13:58:12",{"id":206,"version":207,"summary_zh":208,"released_at":209},61761,"v3.15.4","### `@liveblocks\u002Fnode`\n\n- 添加 `Liveblocks.getAttachment()` 方法，用于获取附件的元数据和预签名下载 URL。\n\n### Python SDK\n\n- 添加 `get_attachment()` 方法，用于获取附件的元数据和预签名下载 URL。","2026-03-19T15:39:11",{"id":211,"version":212,"summary_zh":213,"released_at":214},61762,"v3.15.3","### Python SDK\n\n- 介绍 Python 软件包。可通过 `pip install liveblocks` 安装。为后端提供 Liveblocks 全功能 API 的同步和异步客户端（包括房间、存储、线程、评论等）。\n\n### `@liveblocks\u002Freact-ui`\n\n- 向 `Thread` 组件添加 `showSubscription` 属性，用于控制是否显示线程的订阅状态。","2026-03-18T08:17:01",{"id":216,"version":217,"summary_zh":218,"released_at":219},61763,"v3.15.2","### `@liveblocks\u002Fclient`\n\n- 弃用 `enterRoom()` 方法中的 `engine` 选项。该标志现已不再生效。\n\n### `@liveblocks\u002Freact`\n\n- 弃用 `RoomProvider` 组件的 `engine` 属性。该标志现已不再生效。\n\n### `@liveblocks\u002Fnode`\n\n- 弃用 `createRoom()` 方法中的 `engine` 选项。该标志现已不再生效。\n- 停止在创建房间的请求体中发送 `engine` 字段。","2026-03-13T08:10:08",{"id":221,"version":222,"summary_zh":223,"released_at":224},61764,"v3.15.1","### `@liveblocks\u002Freact-ui`\n\n- 为 `AvatarStack` 添加 `gap` 属性，用于控制 `--lb-avatar-stack-gap` CSS 变量。\n- 为 `CommentPin` 添加 `padding` 属性，用于控制 `--lb-comment-pin-padding` CSS 变量。\n- 修复在传递数字时，`AvatarStack` 和 `CommentPin` 的 `size` 属性无法按预期工作的问题。\n- 修复 `FloatingComposer` 的 `autoFocus` 属性。\n- 改进 `AvatarStack` 中头像的排序逻辑和 `max` 限制逻辑。\n- 支持 `CommentPin` 的 `children` 属性。","2026-03-09T12:59:19",{"id":226,"version":227,"summary_zh":228,"released_at":229},61765,"v3.15.0","### `@liveblocks\u002Freact-ui`\n\n- 增加了多种自定义 `Thread` 和 `Comment` 的新方式：\n  - 现在可以通过 `components` 属性覆盖或自定义 `Thread` 中的评论。\n  - `Comment` 的各个部分（内容、头像、作者和日期）现在都可以通过 `children`、`additionalContent`、`avatar`、`author` 和 `date` 属性来覆盖或自定义。\n- 修复了在某些情况下 `Thread` 上的 `commentDropdownItems` 属性无法按预期工作的问题。\n\n### `@liveblocks\u002Freact`\n\n- 每次调用 `createRoomContext()` 现在都会创建一个独立的隔离上下文，以支持嵌套多个独立的房间上下文及其 `RoomProvider` 组件。\n\n### `@liveblocks\u002Freact-blocknote`\n\n- 支持更新的 BlockNote 版本，并将最低要求版本提升至 v0.43.0。（感谢 @nperez0111 的贡献！）\n\n### `@liveblocks\u002Freact-ui`、`@liveblocks\u002Freact-tiptap` 和 `@liveblocks\u002Freact-lexical`\n\n- 改进了对传递给 `components={{ ... }}` 属性的内联组件的处理方式，使其保持稳定，而不是在每次渲染时都重新挂载。\n- 将 `@radix-ui\u002F*` 依赖项迁移到 `radix-ui` 单体包中。","2026-03-05T13:13:42",{"id":231,"version":232,"summary_zh":233,"released_at":234},61766,"v3.14.1","### `@liveblocks\u002Freact`\n\n- 修复分页钩子（`useThreads`、`useInboxNotifications` 和 `useAiChats`）：在使用 `useEffect` 进行自动分页时，首次调用 `fetchMore()` 后停止继续分页。","2026-02-26T18:06:35",{"id":236,"version":237,"summary_zh":238,"released_at":239},61767,"v3.14.0","本次发布新增了按房间粒度选择启用新存储引擎的支持。新存储引擎能够支持更大的文档，性能更优，稳定性更高，并且未来将成为所有新创建房间的默认引擎。\n\n不过，截至目前，默认存储引擎仍为版本 1。\n\n要试用新引擎，只需在进入一个_新_房间时传入 `engine: 2` 即可。一旦房间创建完毕，便无法再更改其使用的存储引擎版本。\n\n例如：\n\n```ts\n\u002F\u002F 原生 JS\nclient.enterRoom(\"my-new-room\", { engine: 2 });\n```\n\n或者：\n\n```ts\n\u002F\u002F 在 React 中\n\u003CRoomProvider id=\"my-new-room\" engine={2}>\n  ...\n\u003C\u002FRoomProvider>\n```\n\n### `@liveblocks\u002Fclient`\n\n- 支持在进入新房间时指定首选引擎：`client.enterRoom(\"my-new-room\", { engine: 2 })`\n- 对内部协议进行了优化，以更好地支持更大规模的存储文档。\n- 新增配置选项 `createClient({ baseUrl: \"https:\u002F\u002F...\" })`，允许连接到 [Liveblocks 开发服务器](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Ftools\u002Fdev-server)。\n- 改进了 `LiveList` 在处理大规模操作批次时的性能。\n- 提升了 `LiveList.push()` 的效率，避免位置字符串随时间无限增长。\n- 修复了在清空包含大量键的文档时可能导致的崩溃问题。\n- 移除了 `largeMessageStrategy` 客户端选项。由于 WebSocket 消息限制已从 1 MB 提升至 32 MB，该设置现已不再适用。\n\n### `@liveblocks\u002Freact`\n\n- 支持在进入新房间时指定首选引擎：`\u003CRoomProvider id=\"my-new-room\" engine={2}>...\u003C\u002FRoomProvider>`\n- 新增配置选项 `\u003CLiveblocksProvider baseUrl=\"https:\u002F\u002F...\" \u002F>`，允许连接到 [Liveblocks 开发服务器](https:\u002F\u002Fliveblocks.io\u002Fdocs\u002Ftools\u002Fdev-server)。\n- 当启用了 `preventUnsavedChanges` 时，将标记线程或收件箱通知为已读的操作排除在阻止导航之外。\n\n### `@liveblocks\u002Freact-tiptap` 和 `@liveblocks\u002Freact-lexical`\n\n- 现在，悬浮元素会尊重来自 `@liveblocks\u002Freact-ui` 的 `LiveblocksUiConfig` 中的 `portalContainer` 选项，而不再始终使用 `document.body`。\n\n### `@liveblocks\u002Fzustand` 和 `@liveblocks\u002Fredux`\n\n- 支持在进入新房间时指定首选引擎：`enterRoom(\"my-new-room\", { engine: 2 })`\n\n### `@liveblocks\u002Fnode`\n\n- 新增 `.setPresence()` 方法，可通过 REST API 为房间中的用户设置临时状态，无需建立 WebSocket 连接。\n- 已弃用客户端方法中的 `tenantId` 参数，改用 `organizationId`。","2026-02-18T13:33:16",{"id":241,"version":242,"summary_zh":243,"released_at":244},61768,"v3.13.5","- Replace `y-tiptap` with `y-prosemirror` to prevent plugin key conflict, which was causing change source to be incorrectly set in Blocknote.","2026-02-12T20:12:42",{"id":246,"version":247,"summary_zh":248,"released_at":249},61769,"v3.13.4","### `@liveblocks\u002Freact-tiptap`\r\n\r\n- Fix an issue where `FloatingComposer` wouldn’t auto-focus and `FloatingToolbar` would conflict with it.","2026-02-06T16:00:29",{"id":251,"version":252,"summary_zh":253,"released_at":254},61770,"v3.13.3","### `@liveblocks\u002Fclient`\r\n\r\n- Bump hardcoded client-side socket connection timeout from 10s to 20s.\r\n- Add more detailed timing info to `enableDebugLogging` to better debug connection issues.\r\n\r\n### `@liveblocks\u002Freact-ui`\r\n\r\n- Fix an issue where `Composer` and `AiComposer` would throw an error when mounted\u002Funmounted.\r\n","2026-01-22T10:29:23",{"id":256,"version":257,"summary_zh":258,"released_at":259},61771,"v3.13.2","### `@liveblocks\u002Fnode`\r\n\r\n- Add a new `alwaysUseKnowledge` option when creating or updating copilots. When\r\n  this option is enabled, the copilot retrieves and uses the uploaded knowledge\r\n  sources on each user query. When disabled, the copilot will retrieve the\r\n  uploaded knowledge sources only when the user query relates to the knowledge\r\n  prompt set on the copilot.","2026-01-16T16:24:21",{"id":261,"version":262,"summary_zh":263,"released_at":264},61772,"v3.13.1","### `@liveblocks\u002Fclient`\r\n\r\n- Fix issue where storage subscriptions wouldn't fire after concurrent move and set operations, causing stale `LiveList` state in UI.\r\n","2026-01-16T13:43:03",{"id":266,"version":267,"summary_zh":268,"released_at":269},61773,"v3.13.0","This release adds support for comment metadata, allowing you to attach custom\r\nmetadata to individual comments in the same way as thread metadata.\r\n\r\n### All packages\r\n\r\n- Support typing comment metadata globally via the `Liveblocks` interface.\r\n- Improve `CommentBody` types.\r\n- Internal refactorings to prepare for upcoming protocol updates.\r\n\r\n### `@liveblocks\u002Fclient`\r\n\r\n- Add new parameters to `createThread`, `createComment`, and `editComment` to\r\n  attach and update comment metadata.\r\n- Add `editCommentMetadata` method to update only a commentʼs metadata.\r\n\r\n### `@liveblocks\u002Freact`\r\n\r\n- Add new parameters to `useCreateThread`, `useCreateComment`, and\r\n  `useEditComment` to attach and update comment metadata.\r\n- Add `useEditCommentMetadata` hook to update only a commentʼs metadata.\r\n\r\n### `@liveblocks\u002Freact-ui`\r\n\r\n- Add `commentMetadata` prop to `Composer` to attach and update comment\r\n  metadata.\r\n\r\n### `@liveblocks\u002Freact-lexical` and `@liveblocks\u002Freact-tiptap`\r\n\r\n- Add `commentMetadata` prop to `FloatingComposer` to attach and update comment\r\n  metadata.\r\n\r\n### `@liveblocks\u002Freact-tiptap`\r\n\r\n- Fix `Toolbar` not reflecting the editorʼs current state.\r\n\r\n### `@liveblocks\u002Fnode`\r\n\r\n- Add new parameters to `createThread`, `createComment`, and `editComment` to\r\n  attach and update comment metadata.\r\n- Add `editCommentMetadata` method to update only a commentʼs metadata.\r\n- Add `commentMetadataUpdated` webhook event.","2026-01-14T17:51:15",{"id":271,"version":272,"summary_zh":273,"released_at":274},61774,"v3.12.1","### `@liveblocks\u002Fclient`\r\n\r\n- Improve some internal type definitions\r\n","2025-12-19T13:31:32",{"id":276,"version":277,"summary_zh":278,"released_at":279},61775,"v3.12.0","### `@liveblocks\u002Fclient`\r\n\r\n- Liveblocks branding will appear for free plans.\r\n- Added badgeLocation option for the client library to control the branding\r\n  location for free plans.\r\n\r\n### `@liveblocks\u002Freact`\r\n\r\n- Added badgeLocation option to LiveblocksProvider to control the branding\r\n  location for free plans.","2025-12-18T08:15:27",{"id":281,"version":282,"summary_zh":283,"released_at":284},61776,"v3.11.1","### `@liveblocks\u002Fcore`\r\n\r\n- Log full error details when WebSocket connections to Liveblocks are getting\r\n  blocked\r\n\r\n### `@liveblocks\u002Fyjs`\r\n\r\n- Fix an issue where a document incorrectly reported its sync state.","2025-12-09T17:48:02",{"id":286,"version":287,"summary_zh":288,"released_at":289},61777,"v3.11.0","### `@liveblocks\u002Freact`\r\n\r\n- Introduce `useSearchComments` hook that allows searching comments by text and\r\n  other filters.\r\n\r\n### `@liveblocks\u002Fclient`\r\n\r\n- Fix regression: handle rejection messages from the server again.\r\n\r\n### `@liveblocks\u002Fnode`\r\n\r\n- Update type definitions for provider models to support GPT-5.1 variants.","2025-11-27T08:53:30"]