[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-vercel--chat":3,"tool-vercel--chat":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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[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":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":80,"owner_website":82,"owner_url":83,"languages":84,"stars":101,"forks":102,"last_commit_at":103,"license":104,"difficulty_score":23,"env_os":105,"env_gpu":105,"env_ram":105,"env_deps":106,"category_tags":116,"github_topics":117,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":123,"updated_at":124,"faqs":125,"releases":161},3942,"vercel\u002Fchat","chat","A unified TypeScript SDK for building chat bots across Slack, Microsoft Teams, Google Chat, Discord, and more.","Chat 是一款基于 TypeScript 开发的统一 SDK，旨在帮助开发者轻松构建跨平台聊天机器人。它支持 Slack、Microsoft Teams、Google Chat、Discord、Telegram、GitHub、Linear 及 WhatsApp 等主流协作与通讯工具。\n\n过去，开发者若想让机器人在多个平台运行，往往需要为每个平台编写独立的适配代码，维护成本高昂且逻辑分散。Chat 完美解决了这一痛点，倡导“一次编写，处处部署”的理念。开发者只需专注于核心业务逻辑，即可通过插件化的适配器将机器人快速发布到不同渠道，极大提升了开发效率。\n\n这款工具主要面向软件工程师和全栈开发者，特别是那些需要为企业内部或社区提供多平台自动化服务的团队。其技术亮点在于强大的抽象能力：不仅统一了消息、提及、反应等基础事件的处理，还支持基于 JSX 构建交互式卡片、处理模态表单以及实现 AI 大模型的原生流式输出。此外，它还提供了类型安全的表情符号处理和文件上传等功能，让复杂的交互开发变得简洁优雅。无论是初创团队快速验证想法，还是大型企业整合内部通讯系统，Chat 都能提供稳定且灵活的技术支撑","Chat 是一款基于 TypeScript 开发的统一 SDK，旨在帮助开发者轻松构建跨平台聊天机器人。它支持 Slack、Microsoft Teams、Google Chat、Discord、Telegram、GitHub、Linear 及 WhatsApp 等主流协作与通讯工具。\n\n过去，开发者若想让机器人在多个平台运行，往往需要为每个平台编写独立的适配代码，维护成本高昂且逻辑分散。Chat 完美解决了这一痛点，倡导“一次编写，处处部署”的理念。开发者只需专注于核心业务逻辑，即可通过插件化的适配器将机器人快速发布到不同渠道，极大提升了开发效率。\n\n这款工具主要面向软件工程师和全栈开发者，特别是那些需要为企业内部或社区提供多平台自动化服务的团队。其技术亮点在于强大的抽象能力：不仅统一了消息、提及、反应等基础事件的处理，还支持基于 JSX 构建交互式卡片、处理模态表单以及实现 AI 大模型的原生流式输出。此外，它还提供了类型安全的表情符号处理和文件上传等功能，让复杂的交互开发变得简洁优雅。无论是初创团队快速验证想法，还是大型企业整合内部通讯系统，Chat 都能提供稳定且灵活的技术支撑。","# Chat SDK\n\n[![npm version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fchat)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fchat)\n[![npm downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fchat)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fchat)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\nA unified TypeScript SDK for building chat bots across Slack, Microsoft Teams, Google Chat, Discord, Telegram, GitHub, Linear, and WhatsApp. Write your bot logic once, deploy everywhere.\n\n## Installation\n\n```bash\nnpm install chat\n```\n\nInstall adapters for your platforms:\n\n```bash\nnpm install @chat-adapter\u002Fslack @chat-adapter\u002Fteams @chat-adapter\u002Fgchat @chat-adapter\u002Fdiscord @chat-adapter\u002Ftelegram\n```\n\n## Usage\n\n```typescript\nimport { Chat } from \"chat\";\nimport { createSlackAdapter } from \"@chat-adapter\u002Fslack\";\nimport { createRedisState } from \"@chat-adapter\u002Fstate-redis\";\n\nconst bot = new Chat({\n  userName: \"mybot\",\n  adapters: {\n    slack: createSlackAdapter(),\n  },\n  state: createRedisState(),\n});\n\nbot.onNewMention(async (thread) => {\n  await thread.subscribe();\n  await thread.post(\"Hello! I'm listening to this thread.\");\n});\n\nbot.onSubscribedMessage(async (thread, message) => {\n  await thread.post(`You said: ${message.text}`);\n});\n```\n\nSee the [Getting Started guide](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fgetting-started) for a full walkthrough.\n\n## Supported platforms\n\n| Platform | Package | Mentions | Reactions | Cards | Modals | Streaming | DMs |\n|----------|---------|----------|-----------|-------|--------|-----------|-----|\n| Slack | `@chat-adapter\u002Fslack` | Yes | Yes | Yes | Yes | Native | Yes |\n| Microsoft Teams | `@chat-adapter\u002Fteams` | Yes | Read-only | Yes | No | Post+Edit | Yes |\n| Google Chat | `@chat-adapter\u002Fgchat` | Yes | Yes | Yes | No | Post+Edit | Yes |\n| Discord | `@chat-adapter\u002Fdiscord` | Yes | Yes | Yes | No | Post+Edit | Yes |\n| Telegram | `@chat-adapter\u002Ftelegram` | Yes | Yes | Partial | No | Post+Edit | Yes |\n| GitHub | `@chat-adapter\u002Fgithub` | Yes | Yes | No | No | No | No |\n| Linear | `@chat-adapter\u002Flinear` | Yes | Yes | No | No | No | No |\n| WhatsApp | `@chat-adapter\u002Fwhatsapp` | N\u002FA | Yes | Partial | No | No | Yes |\n\n## Features\n\n- [**Event handlers**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fusage) — mentions, messages, reactions, button clicks, slash commands, modals\n- [**AI streaming**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstreaming) — stream LLM responses with native Slack streaming and post+edit fallback\n- [**Cards**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fcards) — JSX-based interactive cards (Block Kit, Adaptive Cards, Google Chat Cards)\n- [**Actions**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Factions) — handle button clicks and dropdown selections\n- [**Modals**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fmodals) — form dialogs with text inputs, dropdowns, and validation\n- [**Slash commands**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fslash-commands) — handle `\u002Fcommand` invocations\n- [**Emoji**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Femoji) — type-safe, cross-platform emoji with custom emoji support\n- [**File uploads**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Ffiles) — send and receive file attachments\n- [**Direct messages**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fdirect-messages) — initiate DMs programmatically\n- [**Ephemeral messages**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fephemeral-messages) — user-only visible messages with DM fallback\n\n## Packages\n\n| Package | Description |\n|---------|-------------|\n| `chat` | Core SDK with `Chat` class, types, JSX runtime, and utilities |\n| `@chat-adapter\u002Fslack` | [Slack adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fslack) |\n| `@chat-adapter\u002Fteams` | [Teams adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fteams) |\n| `@chat-adapter\u002Fgchat` | [Google Chat adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fgchat) |\n| `@chat-adapter\u002Fdiscord` | [Discord adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fdiscord) |\n| `@chat-adapter\u002Ftelegram` | [Telegram adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Ftelegram) |\n| `@chat-adapter\u002Fgithub` | [GitHub adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fgithub) |\n| `@chat-adapter\u002Flinear` | [Linear adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Flinear) |\n| `@chat-adapter\u002Fwhatsapp` | [WhatsApp adapter](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fwhatsapp) |\n| `@chat-adapter\u002Fstate-redis` | [Redis state adapter](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fredis) (production) |\n| `@chat-adapter\u002Fstate-ioredis` | [ioredis state adapter](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fioredis) (alternative) |\n| `@chat-adapter\u002Fstate-pg` | [PostgreSQL state adapter](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fpostgres) (production) |\n| `@chat-adapter\u002Fstate-memory` | [In-memory state adapter](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fmemory) (development) |\n\n## AI coding agent support\n\nIf you use an AI coding agent like [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code), you can teach it about Chat SDK:\n\n```bash\nnpx skills add vercel\u002Fchat\n```\n\n## Documentation\n\nFull documentation is available at [chat-sdk.dev\u002Fdocs](https:\u002F\u002Fchat-sdk.dev\u002Fdocs).\n\n## Contributing\n\nSee [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) for development setup and the release process.\n\n## License\n\nMIT\n","# 聊天 SDK\n\n[![npm version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fchat)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fchat)\n[![npm downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fchat)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fchat)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\n一个统一的 TypeScript SDK，用于在 Slack、Microsoft Teams、Google Chat、Discord、Telegram、GitHub、Linear 和 WhatsApp 上构建聊天机器人。只需编写一次机器人逻辑，即可部署到所有平台。\n\n## 安装\n\n```bash\nnpm install chat\n```\n\n为你的目标平台安装适配器：\n\n```bash\nnpm install @chat-adapter\u002Fslack @chat-adapter\u002Fteams @chat-adapter\u002Fgchat @chat-adapter\u002Fdiscord @chat-adapter\u002Ftelegram\n```\n\n## 使用\n\n```typescript\nimport { Chat } from \"chat\";\nimport { createSlackAdapter } from \"@chat-adapter\u002Fslack\";\nimport { createRedisState } from \"@chat-adapter\u002Fstate-redis\";\n\nconst bot = new Chat({\n  userName: \"mybot\",\n  adapters: {\n    slack: createSlackAdapter(),\n  },\n  state: createRedisState(),\n});\n\nbot.onNewMention(async (thread) => {\n  await thread.subscribe();\n  await thread.post(\"Hello! I'm listening to this thread.\");\n});\n\nbot.onSubscribedMessage(async (thread, message) => {\n  await thread.post(`You said: ${message.text}`);\n});\n```\n\n完整的使用指南请参阅 [入门指南](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fgetting-started)。\n\n## 支持的平台\n\n| 平台         | 包名                     | 提及       | 反应       | 卡片       | 模态框     | 流式传输   | 私信       |\n|--------------|--------------------------|------------|------------|------------|------------|------------|------------|\n| Slack        | `@chat-adapter\u002Fslack`    | 是         | 是         | 是         | 是         | 原生       | 是         |\n| Microsoft Teams | `@chat-adapter\u002Fteams`    | 是         | 只读       | 是         | 否         | 发布+编辑  | 是         |\n| Google Chat  | `@chat-adapter\u002Fgchat`    | 是         | 是         | 是         | 否         | 发布+编辑  | 是         |\n| Discord      | `@chat-adapter\u002Fdiscord`  | 是         | 是         | 是         | 否         | 发布+编辑  | 是         |\n| Telegram     | `@chat-adapter\u002Ftelegram` | 是         | 是         | 部分支持   | 否         | 发布+编辑  | 是         |\n| GitHub       | `@chat-adapter\u002Fgithub`   | 是         | 是         | 否         | 否         | 否         | 否         |\n| Linear       | `@chat-adapter\u002Flinear`   | 是         | 是         | 否         | 否         | 否         | 否         |\n| WhatsApp     | `@chat-adapter\u002Fwhatsapp` | 不适用     | 是         | 部分支持   | 否         | 否         | 是         |\n\n## 功能特性\n\n- [**事件处理器**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fusage) — 提及、消息、反应、按钮点击、斜杠命令、模态框\n- [**AI 流式传输**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstreaming) — 使用原生 Slack 流式传输和发布+编辑回退机制流式输出大模型响应\n- [**卡片**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fcards) — 基于 JSX 的交互式卡片（Block Kit、Adaptive Cards、Google Chat 卡片）\n- [**操作**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Factions) — 处理按钮点击和下拉选择\n- [**模态框**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fmodals) — 带有文本输入、下拉菜单和验证的表单对话框\n- [**斜杠命令**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fslash-commands) — 处理 `\u002Fcommand` 调用\n- [**表情符号**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Femoji) — 类型安全、跨平台的表情符号，并支持自定义表情符号\n- [**文件上传**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Ffiles) — 发送和接收文件附件\n- [**直接消息**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fdirect-messages) — 以编程方式发起私信\n- [**临时消息**](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fephemeral-messages) — 仅用户可见的消息，并带有私信回退机制\n\n## 包列表\n\n| 包名                     | 描述                                                         |\n|--------------------------|--------------------------------------------------------------|\n| `chat`                   | 核心 SDK，包含 `Chat` 类、类型定义、JSX 运行时和实用工具     |\n| `@chat-adapter\u002Fslack`    | [Slack 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fslack)          |\n| `@chat-adapter\u002Fteams`    | [Teams 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fteams)          |\n| `@chat-adapter\u002Fgchat`    | [Google Chat 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fgchat)    |\n| `@chat-adapter\u002Fdiscord`  | [Discord 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fdiscord)      |\n| `@chat-adapter\u002Ftelegram` | [Telegram 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Ftelegram)   |\n| `@chat-adapter\u002Fgithub`   | [GitHub 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fgithub)       |\n| `@chat-adapter\u002Flinear`   | [Linear 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Flinear)       |\n| `@chat-adapter\u002Fwhatsapp` | [WhatsApp 适配器](https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fwhatsapp)   |\n| `@chat-adapter\u002Fstate-redis` | [Redis 状态适配器](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fredis) （生产环境） |\n| `@chat-adapter\u002Fstate-ioredis` | [ioredis 状态适配器](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fioredis) （替代方案） |\n| `@chat-adapter\u002Fstate-pg` | [PostgreSQL 状态适配器](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fpostgres) （生产环境） |\n| `@chat-adapter\u002Fstate-memory` | [内存状态适配器](https:\u002F\u002Fchat-sdk.dev\u002Fdocs\u002Fstate\u002Fmemory) （开发环境） |\n\n## AI 编码助手支持\n\n如果你使用像 [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) 这样的 AI 编码助手，你可以将其配置为了解 Chat SDK：\n\n```bash\nnpx skills add vercel\u002Fchat\n```\n\n## 文档\n\n完整文档可在 [chat-sdk.dev\u002Fdocs](https:\u002F\u002Fchat-sdk.dev\u002Fdocs) 查阅。\n\n## 贡献\n\n开发环境搭建和发布流程请参阅 [CONTRIBUTING.md](.\u002FCONTRIBUTING.md)。\n\n## 许可证\n\nMIT","# Chat SDK 快速上手指南\n\nChat SDK 是一个统一的 TypeScript 开发工具包，让你只需编写一次机器人逻辑，即可部署到 Slack、Microsoft Teams、Discord、Telegram、GitHub 等多个平台。\n\n## 环境准备\n\n- **运行时**: Node.js (建议 v18 或更高版本)\n- **包管理器**: npm, yarn, 或 pnpm\n- **语言**: TypeScript (推荐) 或 JavaScript\n- **前置依赖**: 无特殊系统依赖，但需根据目标平台（如 Slack、Discord）申请相应的 Bot Token 或 API 密钥。\n\n> **国内加速提示**：如果 npm 安装缓慢，建议使用国内镜像源：\n> ```bash\n> npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n> ```\n\n## 安装步骤\n\n1. **安装核心 SDK**：\n   ```bash\n   npm install chat\n   ```\n\n2. **安装目标平台适配器**（以 Slack 为例，可根据需求替换为 `teams`, `discord`, `telegram` 等）：\n   ```bash\n   npm install @chat-adapter\u002Fslack\n   ```\n\n3. **安装状态管理适配器**（生产环境推荐 Redis，开发环境可用内存版）：\n   ```bash\n   # 生产环境推荐\n   npm install @chat-adapter\u002Fstate-redis\n   \n   # 或者开发环境快速测试\n   npm install @chat-adapter\u002Fstate-memory\n   ```\n\n## 基本使用\n\n以下示例展示如何创建一个监听提及消息并自动回复的简单机器人：\n\n```typescript\nimport { Chat } from \"chat\";\nimport { createSlackAdapter } from \"@chat-adapter\u002Fslack\";\nimport { createRedisState } from \"@chat-adapter\u002Fstate-redis\";\n\nconst bot = new Chat({\n  userName: \"mybot\",\n  adapters: {\n    slack: createSlackAdapter({\n      token: process.env.SLACK_BOT_TOKEN,\n      signingSecret: process.env.SLACK_SIGNING_SECRET,\n    }),\n  },\n  state: createRedisState({\n    url: process.env.REDIS_URL,\n  }),\n});\n\n\u002F\u002F 监听新的提及事件\nbot.onNewMention(async (thread) => {\n  await thread.subscribe(); \u002F\u002F 订阅该线程以接收后续消息\n  await thread.post(\"Hello! I'm listening to this thread.\");\n});\n\n\u002F\u002F 监听订阅线程中的新消息\nbot.onSubscribedMessage(async (thread, message) => {\n  await thread.post(`You said: ${message.text}`);\n});\n\n\u002F\u002F 启动机器人\nbot.start();\n```\n\n**下一步**：配置对应平台的环境变量（如 `SLACK_BOT_TOKEN`），运行代码即可启动跨平台机器人。更多高级功能（如卡片、模态框、流式输出）请参考官方文档。","某初创科技公司希望将内部的\"IT 自助服务助手”同时部署到员工常用的 Slack、Microsoft Teams 和 Discord 三个平台，以统一处理密码重置和设备报修请求。\n\n### 没有 chat 时\n- **重复开发成本高**：开发团队需要分别为三个平台编写三套完全独立的代码逻辑，维护三套不同的 API 调用方式，导致人力成本翻倍。\n- **功能体验不一致**：由于各平台 SDK 差异巨大，同一功能（如交互式卡片或模态表单）在不同软件中表现不一，甚至因某个平台技术难点而被迫砍掉功能。\n- **状态管理复杂**：需要在每个适配器中单独实现 Redis 会话状态存储，难以保证用户在跨平台切换时对话上下文的连贯性。\n- **迭代周期漫长**：每次新增一个业务指令（如\"\u002Freset-password\"），都需要在三个代码库中同步修改和测试，上线效率极低。\n\n### 使用 chat 后\n- **一次编写，多端运行**：利用 chat 统一的 TypeScript SDK，团队只需编写一套核心业务逻辑，通过安装对应的适配器即可瞬间覆盖所有目标平台。\n- **标准化交互组件**：借助 chat 的 JSX 卡片和模态框功能，自动将统一的交互界面适配为各平台原生格式（如 Slack Block Kit 或 Teams Adaptive Cards），确保体验一致。\n- **内置状态持久化**：直接集成 `@chat-adapter\u002Fstate-redis`，无需关心底层差异，即可在所有平台上自动实现稳定的会话状态管理。\n- **高效敏捷迭代**：新增功能时仅需修改一处代码，即可同步更新至所有渠道，大幅缩短从开发到上线的周期。\n\nchat 通过屏蔽底层平台差异，让开发者真正实现了“构建一次，随处部署”，将多平台机器人开发效率提升了数倍。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvercel_chat_2bcf848d.png","vercel","Vercel","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fvercel_d9ebfb29.png","Develop. Preview. Ship. Creators of Next.js.",null,"contactus@vercel.com","https:\u002F\u002Fvercel.com","https:\u002F\u002Fgithub.com\u002Fvercel",[85,89,93,97],{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",92.3,{"name":90,"color":91,"percentage":92},"MDX","#fcb32c",7.6,{"name":94,"color":95,"percentage":96},"CSS","#663399",0.2,{"name":98,"color":99,"percentage":100},"JavaScript","#f1e05a",0,1636,155,"2026-04-05T15:38:31","MIT","未说明",{"notes":107,"python":105,"dependencies":108},"该工具是一个基于 TypeScript 的 SDK，用于构建跨平台聊天机器人，需通过 npm 安装。核心逻辑使用 TypeScript 编写，运行环境依赖 Node.js（具体版本未在文档中说明）。状态管理可选配 Redis、PostgreSQL 或内存存储。文档未提及具体的操作系统、GPU、内存或 Python 版本要求，因为它主要是一个应用层开发库而非深度学习模型。",[67,109,110,111,112,113,114,115],"@chat-adapter\u002Fslack","@chat-adapter\u002Fteams","@chat-adapter\u002Fgchat","@chat-adapter\u002Fdiscord","@chat-adapter\u002Ftelegram","@chat-adapter\u002Fstate-redis","@chat-adapter\u002Fstate-pg",[15,14,26,13],[118,67,119,120,121,122,76],"ai","discord","google-chat","slack","teams","2026-03-27T02:49:30.150509","2026-04-06T08:36:56.250313",[126,131,136,141,146,151,156],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},17994,"Chat SDK 是否支持 WhatsApp？","是的，WhatsApp 适配器现已可用。您可以访问官方文档 https:\u002F\u002Fchat-sdk.dev\u002Fadapters\u002Fwhatsapp 获取详情。此外，社区也提供了一个外部依赖包：`chat-sdk-whatsapp-web` (https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fchat-sdk-whatsapp-web)，相关指南即将发布。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F110",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},17995,"为什么在 CommonJS 项目中引入包时会报错 'No exports main defined'？","这是因为当前的 Chat SDK 及其适配器包仅支持 ESM（ECMAScript Modules），它们在 package.json 中只定义了 `import` 条件，不支持直接的 `require()` 调用。\n解决方案：\n1. 将您的项目转换为 ESM 模式（推荐）。\n2. 如果必须在 CommonJS 中使用，请使用动态导入：`const { Chat } = await import('chat');`。\n维护者目前不计划提供单独的 CJS 构建版本，但可能会在未来添加 `default` 条件以改善兼容性。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F305",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},17996,"WhatsApp 适配器是否支持群组消息？","这取决于您使用的 API 类型。如果您使用的是 WhatsApp Business API（官方适配器通常基于此），目前官方文档指出其不支持群组功能。如果是其他非官方实现，可能情况不同，但标准商业接口暂不支持。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F271",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},17997,"在使用 debounce 或 queue 策略时，为什么附件的 fetchData 方法会丢失？","这是一个已知问题。当使用 `debounce` 或 `queue` 并发策略时，消息会被序列化（JSON.stringify）存储，导致附件对象中的 `fetchData` 函数（闭包）被移除。重新 hydrate 后该字段变为 undefined。\n变通方案：避免在处理带附件的消息时使用 `debounce` 或 `queue` 策略，改用 `drop` 或 `concurrent` 策略，这些策略不会进行序列化操作，从而保留 `fetchData` 方法。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F322",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},17998,"iMessage 适配器现在如何获取？","iMessage 适配器已不再包含在主 SDK 中，而是转为社区维护的独立包。您可以通过 npm 安装社区版适配器：`npm install chat-adapter-imessage` 或访问 https:\u002F\u002Fnpmx.dev\u002Fpackage\u002Fchat-adapter-imessage 获取。之前的单例关闭问题已在社区版本中修复，网关现在运行独立的 SDK 实例。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F138",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},17999,"SDK 是否支持 Telegram？","目前核心仓库中尚未正式合并 Telegram 适配器，但该需求具有很高的社区关注度（大量用户投票支持）。建议关注相关 Issue 的动态，或者参考现有的适配器架构尝试自行开发\u002F贡献代码。目前官方支持的平台上不包括 Telegram。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F91",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},18000,"如何为 Chat SDK 贡献新的适配器（如 Intercom）？","如果您愿意帮助实现新功能（如 Intercom 适配器），可以在对应的 Issue 中勾选 'I am willing to help implement this feature'。维护者通常会在此类 Issue 下直接联系贡献者启动开发。例如，Intercom 的支持正在规划中，欢迎社区开发者参与推进。","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fchat\u002Fissues\u002F114",[162,167,172,177,181,185,189,193,197,202,206,211,216,220,224,229,233,237,241,246],{"id":163,"version":164,"summary_zh":165,"released_at":166},108416,"@chat-adapter\u002Fgchat@4.23.0","### 补丁变更\n\n-   更新了依赖项 [4166e09]\n    -   chat@4.23.0\n    -   @chat-adapter\u002Fshared@4.23.0","2026-03-26T01:41:49",{"id":168,"version":169,"summary_zh":170,"released_at":171},108417,"@chat-adapter\u002Fslack@4.23.0","### 小改动\n\n-   4166e09：添加 `channelVisibility` 枚举，用于区分私有频道、工作区频道、外部频道和未知频道范围。在 Adapter 接口和 Slack 适配器中实现了 `getChannelVisibility()` 方法，取代了之前的 `isExternalChannel` 布尔值。\n\n### 补丁更新\n\n-   更新依赖项 [4166e09]\n    -   chat@4.23.0\n    -   @chat-adapter\u002Fshared@4.23.0\n","2026-03-26T01:41:46",{"id":173,"version":174,"summary_zh":175,"released_at":176},108418,"@chat-adapter\u002Fstate-pg@4.23.0","### 补丁变更\n\n-   更新了依赖项 [4166e09]\n    -   chat@4.23.0\n","2026-03-26T01:41:43",{"id":178,"version":179,"summary_zh":175,"released_at":180},108419,"@chat-adapter\u002Fshared@4.23.0","2026-03-26T01:41:40",{"id":182,"version":183,"summary_zh":165,"released_at":184},108420,"@chat-adapter\u002Fteams@4.23.0","2026-03-26T01:41:37",{"id":186,"version":187,"summary_zh":165,"released_at":188},108421,"@chat-adapter\u002Fwhatsapp@4.23.0","2026-03-26T01:41:34",{"id":190,"version":191,"summary_zh":175,"released_at":192},108422,"@chat-adapter\u002Fstate-redis@4.23.0","2026-03-26T01:41:31",{"id":194,"version":195,"summary_zh":165,"released_at":196},108423,"@chat-adapter\u002Flinear@4.23.0","2026-03-26T01:41:28",{"id":198,"version":199,"summary_zh":200,"released_at":201},108424,"chat@4.23.0","### 小改动\n\n-   4166e09：添加 `channelVisibility` 枚举，用于区分私有频道、工作区频道、外部频道和未知频道范围。在 Adapter 接口和 Slack 适配器中实现了 `getChannelVisibility()` 方法，取代了之前的 `isExternalChannel` 布尔值方法。\n","2026-03-26T01:41:25",{"id":203,"version":204,"summary_zh":165,"released_at":205},108425,"@chat-adapter\u002Fgithub@4.23.0","2026-03-26T01:41:22",{"id":207,"version":208,"summary_zh":209,"released_at":210},108426,"@chat-adapter\u002Fstate-ioredis@4.23.0","### Patch Changes\n\n-   Updated dependencies [4166e09]\n    -   chat@4.23.0\n","2026-03-26T01:41:19",{"id":212,"version":213,"summary_zh":214,"released_at":215},108427,"@chat-adapter\u002Ftelegram@4.23.0","### Patch Changes\n\n-   Updated dependencies [4166e09]\n    -   chat@4.23.0\n    -   @chat-adapter\u002Fshared@4.23.0\n","2026-03-26T01:41:16",{"id":217,"version":218,"summary_zh":209,"released_at":219},108428,"@chat-adapter\u002Fstate-memory@4.23.0","2026-03-26T01:41:13",{"id":221,"version":222,"summary_zh":214,"released_at":223},108429,"@chat-adapter\u002Fdiscord@4.23.0","2026-03-26T01:41:10",{"id":225,"version":226,"summary_zh":227,"released_at":228},108430,"@chat-adapter\u002Fgithub@4.22.0","### Patch Changes\n\n-   Updated dependencies [f2d8957]\n    -   chat@4.22.0\n    -   @chat-adapter\u002Fshared@4.22.0\n","2026-03-24T21:28:21",{"id":230,"version":231,"summary_zh":227,"released_at":232},108431,"@chat-adapter\u002Fwhatsapp@4.22.0","2026-03-24T21:28:18",{"id":234,"version":235,"summary_zh":227,"released_at":236},108432,"@chat-adapter\u002Fdiscord@4.22.0","2026-03-24T21:28:15",{"id":238,"version":239,"summary_zh":227,"released_at":240},108433,"@chat-adapter\u002Fslack@4.22.0","2026-03-24T21:28:12",{"id":242,"version":243,"summary_zh":244,"released_at":245},108434,"@chat-adapter\u002Fstate-memory@4.22.0","### Patch Changes\n\n-   Updated dependencies [f2d8957]\n    -   chat@4.22.0\n","2026-03-24T21:28:09",{"id":247,"version":248,"summary_zh":244,"released_at":249},108435,"@chat-adapter\u002Fstate-redis@4.22.0","2026-03-24T21:28:06"]