[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-plastic-labs--tutor-gpt":3,"tool-plastic-labs--tutor-gpt":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":108,"forks":109,"last_commit_at":110,"license":111,"difficulty_score":112,"env_os":113,"env_gpu":113,"env_ram":113,"env_deps":114,"category_tags":124,"github_topics":125,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":136,"updated_at":137,"faqs":138,"releases":174},9702,"plastic-labs\u002Ftutor-gpt","tutor-gpt","AI tutor powered by Theory-of-Mind reasoning","Tutor-GPT 是一款由 Plastic Labs 开发的开源 AI 学习伴侣，旨在超越传统辅导工具，成为真正懂你的个性化导师。它不仅仅是一个回答问题的聊天机器人，而是基于“心智理论”（Theory-of-Mind）构建，能够动态推理用户的学习状态、知识盲区及情感需求，并据此实时调整自身的提示词策略，从而提供量身定制的教学方案。\n\n这一设计有效解决了通用大模型在教学场景中缺乏针对性、无法感知用户认知变化以及互动模式僵化的问题。无论是需要查漏补缺的学生，还是希望获得深度指导的终身学习者，都能从中受益。此外，由于项目完全开源且架构清晰（基于 Next.js），它也非常适合开发者和技术研究人员进行二次开发、部署私有实例或探索自适应教育算法。\n\nTutor-GPT 的核心技术亮点在于集成了 Honcho 框架来构建鲁棒的用户画像，实现深度的身份建模与个性化体验；同时支持通过 OpenRouter 灵活接入多种大语言模型，并结合 Supabase 进行数据管理。其托管版本被称为 Bloom，致敬了教育心理学中的“双西格玛问题”。如果你正在寻找一个能像人类老师一样思考、进化并伴随成长的智能助手","Tutor-GPT 是一款由 Plastic Labs 开发的开源 AI 学习伴侣，旨在超越传统辅导工具，成为真正懂你的个性化导师。它不仅仅是一个回答问题的聊天机器人，而是基于“心智理论”（Theory-of-Mind）构建，能够动态推理用户的学习状态、知识盲区及情感需求，并据此实时调整自身的提示词策略，从而提供量身定制的教学方案。\n\n这一设计有效解决了通用大模型在教学场景中缺乏针对性、无法感知用户认知变化以及互动模式僵化的问题。无论是需要查漏补缺的学生，还是希望获得深度指导的终身学习者，都能从中受益。此外，由于项目完全开源且架构清晰（基于 Next.js），它也非常适合开发者和技术研究人员进行二次开发、部署私有实例或探索自适应教育算法。\n\nTutor-GPT 的核心技术亮点在于集成了 Honcho 框架来构建鲁棒的用户画像，实现深度的身份建模与个性化体验；同时支持通过 OpenRouter 灵活接入多种大语言模型，并结合 Supabase 进行数据管理。其托管版本被称为 Bloom，致敬了教育心理学中的“双西格玛问题”。如果你正在寻找一个能像人类老师一样思考、进化并伴随成长的智能助手，Tutor-GPT 提供了一个极具潜力的开源解决方案。","# Tutor-GPT\n\n![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVersion-0.8.0-blue)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1076192451997474938?logo=discord&logoColor=%23ffffff&label=Bloom&labelColor=%235865F2)](https:\u002F\u002Fdiscord.gg\u002Fbloombotai)\n![GitHub License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fplastic-labs\u002Ftutor-gpt)\n![GitHub Repo stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fplastic-labs\u002Ftutor-gpt)\n[![X (formerly Twitter) URL](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl?url=https%3A%2F%2Ftwitter.com%2FBloomBotAI&label=Twitter)](https:\u002F\u002Ftwitter.com\u002FBloomBotAI)\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2310.06983-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.06983)\n\u003Cbr \u002F>\n\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Foss\">\n\u003Cimg alt=\"Vercel OSS Program\" src=\"https:\u002F\u002Fvercel.com\u002Foss\u002Fprogram-badge.svg\" \u002F>\n\u003C\u002Fa>\n\nTutor-GPT is an LLM powered learning companion developed by [Plastic\nLabs](https:\u002F\u002Fplasticlabs.ai). It dynamically reasons about your learning needs\nand _updates its own prompts_ to best serve you.\n\nWe leaned into theory of mind experiments and it is now more than just a\nliteracy tutor, it’s an expansive learning companion. Read more about how it\nworks [here](https:\u002F\u002Fblog.plasticlabs.ai\u002Fblog\u002FTheory-of-Mind-Is-All-You-Need).\n\nTutor-GPT is powered by [Honcho](https:\u002F\u002Fhoncho.dev) to build robust user\nrepresentations and create a personalized experience for each user.\n\nThe hosted version of `tutor-gpt` is called [Bloom](https:\u002F\u002Fbloombot.ai) as a\nnod to Benjamin Bloom's Two Sigma Problem.\n\nAlternatively, you can run your own instance of the bot by following the\ninstructions below.\n\n## Project Structure\n\nThe tutor-gpt project is a Next.js application using the app router.\n\n- `app\u002F` - the pages, layouts, and API routes\n- `hooks\u002F` - Custom hooks made for the front end\n- `util\u002F` - Various utility functions and integrations with external services\n- `components\u002F` - this contains a FullStack `Next.js` version of Tutor-GPT\n- `supabase\u002F` - contains SQL scripts necessary for setting up local supabase\n- `scripts\u002F` - Lifecycle scripts that help setup and sync the project\n\nWe use [pnpm](https:\u002F\u002Fpnpm.io\u002F) for dependency management.\n\nThe project also makes use of several third party services\n\n- [Honcho](https:\u002F\u002Fhoncho.dev) for identity modeling and personalization\n- [Supabase](https:\u002F\u002Fsupabase.com) for user authentication and database\n- [Openrouter](https:\u002F\u002Fopenrouter.ai) for LLM integration\n- [PostHog](https:\u002F\u002Fposthog.com) for analytics\n- [Stripe](https:\u002F\u002Fstripe.com) for payments\n\n## Installation\n\nClone the repo and install the necessary Node.js dependencies\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt.git && cd tutor-gpt\npnpm install\n```\n\nSet up your [environment variables](#environment-variables) in a `.env.local`\nfile. Then launch the development server.\n\n```bash\npnpm run dev\n```\n\nOpen [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) with your browser to see the result.\n\n## Environment Variables\n\nThis section goes over the various environment variables necessary to run the\nTutor-GPT webui. A `.env.template` file is provided to get started quickly.\n\n**Core**\n\n- `NEXT_PUBLIC_SITE_URL` — The URL that the Next.js application will run from. For\n  local development it will be `http:\u002F\u002Flocalhost:3000` by default.\n\n**LLM**\n\n- `AI_API_KEY` — The API key for the inference provider\n- `AI_PROVIDER` — The name of the LLM inference provider\n- `AI_BASE_URL` — An OpenAI compatible API endpoint for LLM inference\n- `MODEL` — The LLM model to use for generating responses.\n\n**Mistral**\n\n- `MISTRAL_API_KEY` — The API key for Mistral OCR\n\n**Honcho**\n\n- `HONCHO_URL` — The URL for the Honcho instance to use\n- `HONCHO_APP_NAME` — The name of the app in Honcho to use\n\n**Supabase**\n\n- `NEXT_PUBLIC_SUPABASE_URL` — The URL for your Supabase project.\n- `NEXT_PUBLIC_SUPABASE_ANON_KEY` — The public API key for your Supabase project.\n- `SUPABASE_SERVICE_ROLE_KEY` — The service key for the Supabase project.\n- `JWT_SECRET` — The secret key to use for signing JWT tokens\n\n**Stripe**\n\n- `NEXT_PUBLIC_STRIPE_ENABLED` — A feature flag to enable or disable stripe. By\n  default, it is `false`\n- `STRIPE_SECRET_KEY` — The stripe secret key\n- `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY` — The stripe public key\n- `STRIPE_WEBHOOK_SECRET` — The stripe webhook secret\n\nBelow are several optional environment variables to enable error monitoring and\nanalytics.\n\n**Sentry**\n\n- `NEXT_PUBLIC_SENTRY_DSN` — The Sentry DSN\n- `SENTRY_ENVIRONMENT` — The Sentry environment\n- `SENTRY_RELEASE` — The Sentry release\n\n**Posthog**\n\n- `NEXT_PUBLIC_POSTHOG_KEY` — The Posthog project key\n- `NEXT_PUBLIC_POSTHOG_HOST` — The Posthog host\n\n## Supabase\n\n### Setup\n\nThis project uses supabase for managing authentication and keeping track of\nstripe subscriptions. We recommend for testing and local development to use a\nlocal instance of supabase. The supabase-cli is the best way to do this.\n\nFollow the [Supabase Documentation](https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fcli\u002Flocal-development) for more information. The project contains a `supabase\u002F` folder that contains the scaffolding SQL migrations necessary for setting up the necessary tables. Once you have the supabase cli installed you can simply run the below command in the `tutor-gpt` folder and a local instance of Supabase will start up.\n\n> NOTE: Local Supabase relies on docker so ensure docker is also running before running the below command\n\n```bash\nsupabase start\n```\n\nAnother, useful note about doing testing locally with supabase is that there is\nno need to verify an account when it is created so you can create a new account\non the webui and then immediately sign in with it.\n\n### Authentication\n\nThis application uses the new [Supabase SSR](https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fauth\u002Fserver-side) features and the PKCE authentication flow. So there are a\nfew setup steps required before the app works with Supabase.\n\nThe main change is that the email templates for authentication need to be\nmodified to perform the token exchange.\n\nFor usage with a local instance of supabase the appropriate email templates have\nbeen setup in `.\u002Fsupabase\u002Ftemplates`\n\nConfirm Signup\n\n```html\n\u003Ch2>Confirm your signup\u003C\u002Fh2>\n\n\u003Cp>Follow this link to confirm your user:\u003C\u002Fp>\n\u003Cp>\n  \u003Ca href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=email\"\n    >Confirm your email\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\nInvite User\n\n```html\n\u003Ch2>You have been invited\u003C\u002Fh2>\n\n\u003Cp>\n  You have been invited to create a user on {{ .SiteURL }}. Follow this link to\n  accept the invite:\n\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=invite&next=\u002Fpath-to-your-update-password-page\"\n    >Accept the invite\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\nMagic Link\n\n```html\n\u003Ch2>Magic Link\u003C\u002Fh2>\n\n\u003Cp>Follow this link to login:\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=magiclink\"\n    >Log In\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\nChange Email Address\n\n```html\n\u003Ch2>Confirm Change of Email\u003C\u002Fh2>\n\n\u003Cp>\n  Follow this link to confirm the update of your email from {{ .Email }} to {{\n  .NewEmail }}:\n\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=email_change\"\n  >\n    Change Email\n  \u003C\u002Fa>\n\u003C\u002Fp>\n```\n\nReset Password\n\n```html\n\u003Ch2>Reset Password\u003C\u002Fh2>\n\n\u003Cp>Follow this link to reset the password for your user:\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=recovery&next=\u002Fauth\u002Freset\"\n    >Reset Password\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\n## Docker\n\nA `Dockerfile` is included for convenience in self hosting an local development.\nto build and run the image run the following commands\n\n```bash\ncd tutor-gpt\ndocker build -t tutor-gpt .\ndocker run --env-file .env.local -p 3000:3000 tutor-gpt\n```\n\n## Contributing\n\nThis project is completely open source and welcomes any and all open source contributions. The workflow for contributing is to make a fork of the repository. You can claim an issue in the issues tab or start a new thread to indicate a feature or bug fix you are working on.\n\nOnce you have finished your contribution make a PR pointed at the `staging` branch and it will be reviewed by a project manager. Feel free to join us in our [discord](http:\u002F\u002Fdiscord.gg\u002Fbloombotai) to discuss your changes or get help.\n\nOnce your changes are accepted and merged into staging they will under go a period of live testing before entering the upstream into `main`\n\n## License\n\nTutor-GPT is licensed under the GPL-3.0 License. Learn more at the [License file](.\u002FLICENSE)\n","# Tutor-GPT\n\n![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVersion-0.8.0-blue)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1076192451997474938?logo=discord&logoColor=%23ffffff&label=Bloom&labelColor=%235865F2)](https:\u002F\u002Fdiscord.gg\u002Fbloombotai)\n![GitHub 许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fplastic-labs\u002Ftutor-gpt)\n![GitHub 仓库星标数](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fplastic-labs\u002Ftutor-gpt)\n[![X（原 Twitter）链接](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl?url=https%3A%2F%2Ftwitter.com%2FBloomBotAI&label=Twitter)](https:\u002F\u002Ftwitter.com\u002FBloomBotAI)\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2310.06983-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.06983)\n\u003Cbr \u002F>\n\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Foss\">\n\u003Cimg alt=\"Vercel OSS 计划\" src=\"https:\u002F\u002Fvercel.com\u002Foss\u002Fprogram-badge.svg\" \u002F>\n\u003C\u002Fa>\n\nTutor-GPT 是由 [Plastic Labs](https:\u002F\u002Fplasticlabs.ai) 开发的基于大语言模型的学习伙伴。它能够动态地分析你的学习需求，并自动更新自身的提示词，以更好地满足你的学习需求。\n\n我们借鉴了“心理理论”相关的实验成果，因此 Tutor-GPT 不再仅仅是一个阅读辅导工具，而是一个功能全面的学习伙伴。关于其工作原理的详细说明，请参阅 [这里](https:\u002F\u002Fblog.plasticlabs.ai\u002Fblog\u002FTheory-of-Mind-Is-All-You-Need)。\n\nTutor-GPT 由 [Honcho](https:\u002F\u002Fhoncho.dev) 提供支持，用于构建强大的用户画像并为每位用户提供个性化的体验。\n\n`tutor-gpt` 的托管版本名为 [Bloom](https:\u002F\u002Fbloombot.ai)，以此向本杰明·布鲁姆提出的“二西格玛问题”致敬。\n\n此外，你也可以按照以下说明运行属于自己的 Bot 实例。\n\n## 项目结构\n\nTutor-GPT 项目是一个使用 App Router 的 Next.js 应用程序。\n\n- `app\u002F` — 页面、布局和 API 路由\n- `hooks\u002F` — 前端自定义 Hook\n- `util\u002F` — 各种实用函数及与外部服务的集成\n- `components\u002F` — 包含 Tutor-GPT 的全栈 Next.js 版本\n- `supabase\u002F` — 包含设置本地 Supabase 所需的 SQL 脚本\n- `scripts\u002F` — 用于项目初始化和同步的生命周期脚本\n\n我们使用 [pnpm](https:\u002F\u002Fpnpm.io\u002F) 进行依赖管理。\n\n该项目还集成了多个第三方服务：\n\n- [Honcho](https:\u002F\u002Fhoncho.dev) 用于身份建模和个性化\n- [Supabase](https:\u002F\u002Fsupabase.com) 用于用户认证和数据库管理\n- [Openrouter](https:\u002F\u002Fopenrouter.ai) 用于大语言模型集成\n- [PostHog](https:\u002F\u002Fposthog.com) 用于数据分析\n- [Stripe](https:\u002F\u002Fstripe.com) 用于支付处理\n\n## 安装\n\n克隆仓库并安装所需的 Node.js 依赖项：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt.git && cd tutor-gpt\npnpm install\n```\n\n在 `.env.local` 文件中配置你的 [环境变量](#environment-variables)，然后启动开发服务器：\n\n```bash\npnpm run dev\n```\n\n使用浏览器打开 [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)，即可查看效果。\n\n## 环境变量\n\n本节介绍运行 Tutor-GPT Web UI 所需的各种环境变量。我们提供了一个 `.env.template` 文件，方便你快速上手。\n\n**核心**\n\n- `NEXT_PUBLIC_SITE_URL` — Next.js 应用程序将运行的 URL。本地开发时，默认值为 `http:\u002F\u002Flocalhost:3000`。\n\n**LLM**\n\n- `AI_API_KEY` — 推理服务提供商的 API 密钥\n- `AI_PROVIDER` — LLM 推理服务提供商的名称\n- `AI_BASE_URL` — 兼容 OpenAI 的 LLM 推理 API 端点\n- `MODEL` — 用于生成响应的 LLM 模型。\n\n**Mistral**\n\n- `MISTRAL_API_KEY` — Mistral OCR 的 API 密钥\n\n**Honcho**\n\n- `HONCHO_URL` — 需要使用的 Honcho 实例的 URL\n- `HONCHO_APP_NAME` — 在 Honcho 中使用的应用名称\n\n**Supabase**\n\n- `NEXT_PUBLIC_SUPABASE_URL` — 你的 Supabase 项目的 URL。\n- `NEXT_PUBLIC_SUPABASE_ANON_KEY` — 你的 Supabase 项目的公共 API 密钥。\n- `SUPABASE_SERVICE_ROLE_KEY` — Supabase 项目的服务密钥。\n- `JWT_SECRET` — 用于签名 JWT 令牌的密钥。\n\n**Stripe**\n\n- `NEXT_PUBLIC_STRIPE_ENABLED` — 用于启用或禁用 Stripe 的功能标志。默认值为 `false`。\n- `STRIPE_SECRET_KEY` — Stripe 的私有密钥\n- `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY` — Stripe 的公钥\n- `STRIPE_WEBHOOK_SECRET` — Stripe 的 Webhook 密钥\n\n以下是几个可选的环境变量，用于启用错误监控和数据分析。\n\n**Sentry**\n\n- `NEXT_PUBLIC_SENTRY_DSN` — Sentry 的 DSN\n- `SENTRY_ENVIRONMENT` — Sentry 的环境\n- `SENTRY_RELEASE` — Sentry 的发布版本\n\n**PostHog**\n\n- `NEXT_PUBLIC_POSTHOG_KEY` — PostHog 项目的密钥\n- `NEXT_PUBLIC_POSTHOG_HOST` — PostHog 的主机地址\n\n## Supabase\n\n### 设置\n\n本项目使用 Supabase 来管理用户认证以及跟踪 Stripe 订阅信息。我们建议在测试和本地开发时使用本地 Supabase 实例。使用 supabase-cli 是最佳方式。\n\n请参考 [Supabase 文档](https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fcli\u002Flocal-development) 获取更多信息。项目中包含一个 `supabase\u002F` 文件夹，内含设置必要表结构所需的 SQL 迁移脚本。安装好 supabase-cli 后，只需在 `tutor-gpt` 目录下运行以下命令，即可启动本地 Supabase 实例。\n\n> 注意：本地 Supabase 依赖 Docker，请确保 Docker 已启动后再执行此命令。\n\n```bash\nsupabase start\n```\n\n另外，在本地使用 Supabase 进行测试时的一个便利之处是，创建账户无需验证，因此你可以在 Web UI 上直接创建新账户并立即登录。\n\n### 身份验证\n\n此应用程序使用新的 [Supabase SSR](https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fauth\u002Fserver-side) 功能和 PKCE 身份验证流程。因此，在应用能够与 Supabase 配合使用之前，需要进行一些设置步骤。\n\n主要的更改在于，身份验证的电子邮件模板需要修改，以执行令牌交换。\n\n为了在本地 Supabase 实例中使用，相应的电子邮件模板已在 `.\u002Fsupabase\u002Ftemplates` 中设置好。\n\n确认注册\n\n```html\n\u003Ch2>请确认您的注册\u003C\u002Fh2>\n\n\u003Cp>请点击以下链接以确认您的用户：\u003C\u002Fp>\n\u003Cp>\n  \u003Ca href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=email\"\n    >确认您的邮箱\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\n邀请用户\n\n```html\n\u003Ch2>您已被邀请\u003C\u002Fh2>\n\n\u003Cp>\n  您已被邀请在 {{ .SiteURL }} 上创建一个用户。请点击以下链接以接受邀请：\n\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=invite&next=\u002Fpath-to-your-update-password-page\"\n    >接受邀请\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\n魔法链接\n\n```html\n\u003Ch2>魔法链接\u003C\u002Fh2>\n\n\u003Cp>请点击以下链接以登录：\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=magiclink\"\n    >登录\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\n更改电子邮件地址\n\n```html\n\u003Ch2>确认更改电子邮件\u003C\u002Fh2>\n\n\u003Cp>\n  请点击以下链接以确认将您的电子邮件从 {{ .Email }} 更改为 {{ .NewEmail }}：\n\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=email_change\"\n  >\n    更改电子邮件\n  \u003C\u002Fa>\n\u003C\u002Fp>\n```\n\n重置密码\n\n```html\n\u003Ch2>重置密码\u003C\u002Fh2>\n\n\u003Cp>请点击以下链接以重置您的用户密码：\u003C\u002Fp>\n\u003Cp>\n  \u003Ca\n    href=\"{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}&type=recovery&next=\u002Fauth\u002Freset\"\n    >重置密码\u003C\u002Fa\n  >\n\u003C\u002Fp>\n```\n\n## Docker\n\n为了方便自托管和本地开发，项目中包含了一个 `Dockerfile`。要构建并运行镜像，请执行以下命令：\n\n```bash\ncd tutor-gpt\ndocker build -t tutor-gpt .\ndocker run --env-file .env.local -p 3000:3000 tutor-gpt\n```\n\n## 参与贡献\n\n本项目完全开源，欢迎任何形式的开源贡献。参与贡献的工作流程是先对仓库进行 fork。您可以在 Issues 标签页中认领一个问题，或者开启一个新的讨论主题，说明您正在处理的功能或 bug 修复。\n\n完成贡献后，请向 `staging` 分支提交 PR，它将由项目经理进行评审。欢迎您加入我们的 [Discord](http:\u002F\u002Fdiscord.gg\u002Fbloombotai) 社区，讨论您的更改或寻求帮助。\n\n一旦您的更改被接受并合并到 staging 分支，它们将进入一段线上测试期，随后才会被合并到上游的 `main` 分支。\n\n## 许可证\n\nTutor-GPT 采用 GPL-3.0 许可证授权。更多信息请参阅 [许可证文件](.\u002FLICENSE)。","# Tutor-GPT 快速上手指南\n\nTutor-GPT 是一个由 Plastic Labs 开发的基于大语言模型（LLM）的学习伴侣。它具备“心智理论”能力，能动态推理用户的学习需求并自动更新提示词，提供个性化的学习体验。本项目基于 Next.js 构建，依赖 Honcho（用户画像）、Supabase（认证与数据库）和 OpenRouter（LLM 接入）。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows (WSL2 推荐)\n*   **Node.js**: 建议安装最新 LTS 版本\n*   **包管理器**: [pnpm](https:\u002F\u002Fpnpm.io\u002F) (项目指定使用 pnpm)\n    *   安装命令：`npm install -g pnpm`\n*   **Docker**: 用于运行本地 Supabase 实例（必须开启 Docker 守护进程）\n*   **Supabase CLI**: 用于管理本地数据库\n    *   安装命令：`npm install -g supabase`\n*   **账号与服务**:\n    *   **LLM 提供商**: 如 OpenRouter, Mistral 等，需获取 API Key。\n    *   **Honcho**: 用于身份建模（需注册获取 URL 和应用名称）。\n    *   **Stripe** (可选): 如需测试支付功能。\n\n> **国内开发者提示**：如果 `npm` 或 `pnpm` 安装依赖缓慢，可配置国内镜像源（如腾讯云或阿里云镜像）。\n\n## 安装步骤\n\n### 1. 克隆项目与安装依赖\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt.git && cd tutor-gpt\npnpm install\n```\n\n### 2. 配置环境变量\n\n复制模板文件并编辑 `.env.local`，填入您的密钥和服务地址：\n\n```bash\ncp .env.template .env.local\n```\n\n**核心配置项说明**（请根据实际服务商填写）：\n\n*   **基础设置**:\n    *   `NEXT_PUBLIC_SITE_URL`: 本地开发设为 `http:\u002F\u002Flocalhost:3000`\n*   **LLM 设置**:\n    *   `AI_API_KEY`: 您的推理提供商 API Key\n    *   `AI_PROVIDER`: 提供商名称 (例如 `openrouter`)\n    *   `AI_BASE_URL`: 兼容 OpenAI 的 API 端点\n    *   `MODEL`: 使用的模型名称 (例如 `mistralai\u002Fmistral-large`)\n*   **Honcho 设置**:\n    *   `HONCHO_URL`: Honcho 实例地址\n    *   `HONCHO_APP_NAME`: 应用名称\n*   **Supabase 设置** (本地开发通常保持默认，启动后会自动注入部分变量):\n    *   `NEXT_PUBLIC_SUPABASE_URL`\n    *   `NEXT_PUBLIC_SUPABASE_ANON_KEY`\n    *   `SUPABASE_SERVICE_ROLE_KEY`\n    *   `JWT_SECRET`\n\n### 3. 启动本地 Supabase\n\n项目依赖 Supabase 进行用户认证和数据存储。本地开发推荐使用 Docker 运行 Supabase 实例。\n\n确保 Docker 正在运行，然后在项目根目录执行：\n\n```bash\nsupabase start\n```\n\n> **注意**: 首次运行会下载相关 Docker 镜像。启动成功后，终端会输出本地的 Supabase URL 和 Keys，请将这些值更新到 `.env.local` 中对应的变量里。\n\n**配置邮件模板（重要）**：\n本地 Supabase 需要特定的邮件模板以支持 PKCE 认证流。项目已在 `.\u002Fsupabase\u002Ftemplates` 目录下提供了预配置好的模板（包含 Confirm Signup, Magic Link 等），`supabase start` 时通常会自动加载。如需手动确认，请确保模板中的链接格式包含 `{{ .SiteURL }}\u002Fauth\u002Fconfirm?token_hash={{ .TokenHash }}...`。\n\n### 4. 启动开发服务器\n\n完成上述配置后，运行以下命令启动应用：\n\n```bash\npnpm run dev\n```\n\n## 基本使用\n\n1.  **访问应用**: 打开浏览器访问 [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)。\n2.  **注册\u002F登录**:\n    *   在本地环境中，创建新账户后通常无需验证邮箱即可直接登录（取决于 Supabase 本地配置）。\n    *   输入邮箱和密码进行注册，然后使用该凭证登录。\n3.  **开始对话**:\n    *   登录后，您将进入对话界面。\n    *   输入您的学习目标或具体问题（例如：“我想学习量子力学的基础概念”）。\n    *   Tutor-GPT 将根据您的输入动态调整策略，提供个性化的辅导内容。\n4.  **Docker 部署 (可选)**:\n    如果您希望以容器化方式运行整个应用（而非仅 Supabase），可以使用以下命令构建并运行：\n\n    ```bash\n    docker build -t tutor-gpt .\n    docker run --env-file .env.local -p 3000:3000 tutor-gpt\n    ```\n\n现在您已经成功运行了 Tutor-GPT，可以开始探索其自适应学习能力了。","一名非计算机专业的生物研究员试图自学 Python 数据分析，但在面对复杂的代码报错和抽象概念时屡屡受挫，学习进度停滞不前。\n\n### 没有 tutor-gpt 时\n- **机械式回答**：传统 AI 直接抛出标准代码解决方案，忽略用户其实连基础语法都未掌握，导致“看懂了但不会用”。\n- **缺乏上下文记忆**：每次提问都被当作独立事件，AI 无法记住用户昨天才学过“列表推导式”，今天又重复讲解基础概念。\n- **挫败感累积**：当用户表达困惑时，AI 无法识别其情绪状态和认知盲区，继续用高深术语解释，让用户觉得自己“太笨”而想要放弃。\n- **学习路径僵化**：无论用户是喜欢通过比喻理解还是偏好动手实践，教学内容千篇一律，无法适配个人风格。\n\n### 使用 tutor-gpt 后\n- **心智理论推理**：tutor-gpt 能推断用户的知识边界，主动将复杂的 Pandas 操作拆解为生物学实验数据的类比，让抽象逻辑瞬间具象化。\n- **动态个性化调整**：基于 Honcho 构建的用户画像，tutor-gpt 自动记录学习轨迹，跳过已掌握内容，精准推送下一步最适合的练习案例。\n- **情感与认知共鸣**：当检测到用户多次尝试失败时，tutor-gpt 会切换为鼓励模式，调整提示词策略，用更耐心的引导代替冷冰冰的纠错。\n- **自适应教学演进**：随着交互深入，tutor-gpt 不断更新对用户的理解，从最初的“零基础小白”进化为懂生物数据的“初级分析师”，提供进阶挑战。\n\ntutor-gpt 的核心价值在于它不仅仅是一个问答机器，而是一个能真正“读懂”你思维状态并随之成长的专属私人导师。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplastic-labs_tutor-gpt_36f342a4.png","plastic-labs","Plastic Labs","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fplastic-labs_3e2bb969.png","Building at the intersection of human & machine learning. ",null,"hello@plasticlabs.ai","plastic_labs","plasticlabs.ai","https:\u002F\u002Fgithub.com\u002Fplastic-labs",[84,88,92,96,100,104],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",89.5,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",4.3,{"name":93,"color":94,"percentage":95},"PLpgSQL","#336790",3.9,{"name":97,"color":98,"percentage":99},"CSS","#663399",1.5,{"name":101,"color":102,"percentage":103},"Dockerfile","#384d54",0.6,{"name":105,"color":106,"percentage":107},"HTML","#e34c26",0.3,900,93,"2026-04-17T04:25:44","GPL-3.0",4,"未说明",{"notes":115,"python":113,"dependencies":116},"该项目是一个基于 Next.js 的 Web 应用，使用 pnpm 进行依赖管理。运行需要配置多个第三方服务的环境变量（包括 LLM 提供商、Supabase 数据库、Honcho 身份建模、Stripe 支付等）。本地开发 Supabase 需要安装 Docker。项目通过 API 调用外部 LLM 服务，而非在本地部署模型，因此无明确的本地 GPU 或显存需求。",[117,118,119,120,121,122,123],"Next.js","pnpm","Honcho","Supabase","Openrouter","PostHog","Stripe",[15,13,14],[126,127,128,129,130,131,132,133,134,135],"ai","education","literacy","machine-learning","prompt-engineering","theory-of-mind","tutoring","hacktoberfest","o1","reasoning","2026-03-27T02:49:30.150509","2026-04-20T04:05:11.497281",[139,144,149,154,159,164,169],{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},43581,"如何在 LangChain 中正确为对话链添加记忆（Memory）功能以避免上下文丢失？","不要直接调用 `chat_memory.add_user_message()`，这会绕过 `ConversationBufferSummaryMemory` 的修剪和总结逻辑。正确的做法是使用 Memory 对象提供的 `save_context` 方法来保存上下文。虽然项目目前采用无状态链并自行管理内存以支持动态模型切换，但在标准 LangChain 用法中，应确保通过 `save_context` 注入历史数据，以便 Prompt 能正确读取 `history` 键并进行处理。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F27",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},43582,"如何更稳健地解析模型生成的“思考（Thought）”和“回答”内容，防止因拼写错误或格式偏差导致解析失败？","不应依赖模型完美遵循特定格式（如严格拼写\"Student:\"）。建议使用正则表达式进行灵活提取。例如，使用以下 Python 代码提取\"Thought:\"后到第一个换行符之间的所有内容：\n`import re`\n`result = re.findall(r'Thought: (.*?)(?=\\n|$)', string, re.DOTALL)[-1].strip()`\n这种方法可以容忍模型生成的微小格式差异，提高解析的鲁棒性。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F25",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},43583,"遇到 LLM 提供商阻塞特定主题推理或产生异步任务组错误（ExceptionGroup\u002FCancelledError）时如何处理？","这类错误通常源于流式传输中的未处理异常或异步锁（`async with LOCK`）内的错误。解决方案是显式地处理流错误（stream errors）。开发者已在 `http-error-handling` 分支中提交了相关修复代码，通过增强错误捕获机制来解决大部分此类问题。建议监控日志并确保在 `chat` 函数的异步上下文中正确捕获并处理异常。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F101",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},43584,"项目推荐使用什么工具进行 Python 依赖管理以替代 pip 和 requirements.txt？","推荐切换到 Poetry 进行依赖管理。Poetry 提供了更强大的功能，包括依赖锁定文件（lockfiles）、严格的版本控制以及脚本支持，能有效解决随着项目增长带来的依赖混乱问题。该项目已通过 PR #24 完成了向 Poetry 的迁移。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F20",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},43585,"如何实现与网页内容进行对话的功能（Chat with a Webpage）？","可以通过集成类似 jina.ai 的服务来实现该功能。具体实现方案已在项目的 staging 分支中通过 PR #168 完成，或者参考功能分支 `feature\u002Fchat-with-website` 中的代码实现。该功能允许用户输入网址，系统抓取网页内容后与其进行对话交互。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F164",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},43586,"在使用 Honcho 云平台部署应用时提示需要邀请码（invite code）怎么办？","该问题与 tutor-gpt 项目本身无关。Honcho 云平台已移除了邀请码的要求，现在可以直接使用该平台进行部署，无需再申请邀请码。如果遇到相关提示，请检查是否使用了旧版文档或链接。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F219",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},43587,"模型生成的列表格式偶尔不一致（如编号样式变化）该如何解决？","这是一个较难复现的偶发性问题，可能与特定版本的模型有关。根据社区反馈，升级到更新的模型版本后，该问题通常会自动消失。如果当前无法复现且长时间未收到报告，可视为已由模型迭代自然修复，无需额外代码干预。","https:\u002F\u002Fgithub.com\u002Fplastic-labs\u002Ftutor-gpt\u002Fissues\u002F56",[]]