Skip to content

Repository files navigation

WeSmartFlow

让 AI 陪你理解、尝试、记住,也陪你走进知识发生的现场。

Python 3.10+ Vue 3 FastAPI License

WeSmartFlow 是一个开源的 Agent-native 自适应学习框架。
它会理解学习目标、组织学习路径、陪你练习,并把每一次进步留在长期知识图谱里。

在线体验 · 探索模式 · 快速开始 · 发布课程 · English

🎁 为项目点亮 Star,使用 GitHub 或邮箱登录,即可领取 1000 万免费 Token


📮 Updates

这里会长期记录 WeSmartFlow 的重要变化,并按时间倒序持续更新。

2026.08.31 · 免费体验计划开启

从现在开始,只要为 WeSmartFlow 的 GitHub 仓库点亮 Star,再使用 GitHub 或邮箱登录,每位用户都可以领取 1000 万免费 Token,完整体验自由辅导、沉浸课程、知识图谱与探索模式。

对大多数学习者来说,这份额度大约可以使用 10–20 天。实际可用时间会随所选模型、学习频率和单次内容长度有所不同。

领取方式: 点亮 Star → 前往 wesmartflow.cn 登录 → 选择一个问题或探索主题开始学习。

2026.08 · 探索模式升级:学习不再只发生在聊天框里

我们重新设计了 探索模式

现在,你可以从英语、科学、数学和历史出发,进入拥有角色、规则与任务的学习世界。连续故事、地图探索、实验模拟、动手游戏、历史推演、声音与动画,都可以成为课程的一部分。查看探索主题

🌱 为什么做 WeSmartFlow

真正的学习,很少是一问一答。

它有好奇、卡住、试错和遗忘,也有某个瞬间突然想通。一个好的学习伙伴,会知道你已经理解了什么、哪里仍然模糊、下一步适合做什么,以及哪些知识需要在以后重新遇见。

WeSmartFlow 围绕这段过程提供五种能力:

  • 理解目标:知道你想学什么,也关注你现在走到了哪里
  • 陪伴练习:用讲解、追问、卡片、可视化和测验帮助你真正动手
  • 记住成长:把概念、联系和掌握变化沉淀进个人知识图谱
  • 调整路径:根据对话与练习反馈,决定接下来该深入、换一种讲法,还是安排复习
  • 进入情境:把知识放进故事、实验和真实任务里,在参与中建立理解

🎒 现在你可以怎样学习

1. 自由辅导:从一个问题开始

你可以从一个问题开始。Agent 会根据需要生成知识卡片、交互式演示和小测验,也会把新理解记录进知识图谱。

选择学习模式 AI 生成知识卡片 AI 生成交互式可视化

2. 沉浸课程:把一个主题学完整

输入一个想深入理解的主题,多个 Agent 会协作完成资料研究、章节规划、课件、插图、语音和练习。你可以沿着课程大纲学习,也可以随时停下来追问。

沉浸课程大纲 沉浸课程课件 课程中的交互式可视化

3. 主题探索:走进一个为知识设计的世界

在探索页选择感兴趣的主题,通过角色对话、世界探索、自由实验、动手游戏或历史推演来学习。每个主题都可以有自己的画面、声音、角色、地图和进度规则:课程设计者决定这个世界如何运转,WeSmartFlow 负责让它被发现、被打开,并在需要时提供 Agent 与后端能力。

已上线主题

主题 体验方式
魔法英语小镇 和 Agent 角色用英语交谈,在找线索、交朋友和创作故事中自然开口
走进数学花园 搭积木、看三视图、发射算式炮弹,在动手中建立空间感与代数直觉
追剧搭子 BingeMate 跟着真实剧情理解表达、文化梗、连读和吞音
化学实验室 自由组合物质与反应条件,让 Agent 现场判断结果并解释原因
知识之境 回到科学知识诞生的现场,与科学家对话并重做经典实验
生成世界 · 历史 让一段历史变成会争论、可质询、能推演的鲜活世界

这 6 个主题只是开始。探索页也向老师、开发者和内容创作者开放:你可以发布自己的课程,保留自己的设计和技术选择,也可以和社区一起把一个想法慢慢做成真正好用的学习体验。

示例:魔法英语小镇

魔法英语小镇面向 8–16 岁学习者。孩子可以用语音或键盘与角色交流,在寻找小狗、筹备月光节等故事任务中练习询问、描述和邀请。Agent 负责理解表达与生成角色回应,本地状态机负责地点、任务、奖励和通关条件。

4. 知识图谱:看见自己正在形成的理解

每一次学习都会留下痕迹。知识图谱记录概念之间的关系、当前掌握度和下一次复习时间,帮助你回顾已经走过的路。

个人知识图谱与掌握详情

🧠 核心能力

ReAct Agent 个性化辅导

辅导 Agent 会在对话中按需使用教育工具,不同任务由对应工具完成:

能力 作用
知识节点创建与更新 识别新概念,补充描述、标签和概念关系
掌握度更新 根据学习表现调整对应知识节点的掌握度
HTML 知识卡片 把重点整理成易读、可保存的学习卡片
EduViz 交互式可视化 用动画、参数和可操作对象解释抽象概念
即时测验 生成单选、填空、判断和开放题,并给出反馈
图谱检索 找回已经学过的内容,避免每次从零开始
多源搜索 通过 Tavily、arXiv 和 DuckDuckGo 补充资料
语音讲解 在支持的环境中生成音频讲解

Graph Memory 个人知识图谱

  • 掌握度记录:用 mastery_level 持续记录每个知识节点的掌握变化
  • 四类知识关系:prerequisite / related / extends / contrasts
  • 间隔重复:使用 SM-2 参数安排复习节奏
  • 跨场景共享:自由辅导与沉浸课程使用同一张个人图谱
  • 用户画像记忆:从长期互动中积累学习偏好与背景信息

Multi-Agent 课程生成

一个学习主题
  │
  ├── 规划 Agent  ── 拆解章节与学习路径
  ├── 研究 Agent  ── 搜集并整理资料
  ├── 撰写 Agent  ── 生成章节课件
  ├── 插图 Agent  ── 生成配图
  ├── 语音 Agent  ── 生成音频讲解
  └── 出题 Agent  ── 配套练习与反馈
  │
  └── PDF + 音频 + 练习 + 知识图谱节点

EduViz 交互式可视化

EduViz SDK 让 Agent 能生成在沙盒中运行的教学可视化,适合算法步骤、公式拆解、参数探索、几何构造、状态对比和时间演化等场景。学习者可以直接操作参数和对象,观察变化并验证猜想。

五、WeClaw 微信助手接入

把学习助手接入微信,随时随地对话学习。

将 edu-agent 作为一个消息通道接入 WeClaw(微信 clawbridge),让微信里的对话直接由你的 AI 学习助手回复:

  • 扫码绑定 — 网页端「微信助手」页扫码,将你的微信 bot 与账号绑定(每个用户绑定自己的 bot)
  • 多租户长轮询 — 每个 bot 一个 async httpx 长轮询协程(≈ 一条 idle 长连接,而非线程),由 ChannelManager 统一调度,单机可承载大量在线 bot
  • 复用对话大脑 — 微信消息直接走 TutorService,与网页端共享同一套 ReAct 辅导能力、知识图谱与用户画像
  • 卡片转图片 — HTML 知识卡片 / 交互式可视化 / 测验卡片用无头浏览器(Playwright)渲染成图片发送,并附网页端交互链接

🛠️ 给开发者

WeSmartFlow 同时是一套可复用的教育 Agent 工程框架。仓库把通用 Agent 能力、教育业务服务、前端应用和独立学习体验分开组织:

WeSmartFlow 架构图

层级 路径 你可以在这里做什么
Agent 基础库 backend/agent_core/ 复用 ReAct、Reflection、Plan-and-Solve、工具、技能、记忆与模型适配
后端服务 backend/ 扩展 FastAPI 路由、教育 Agent、知识图谱和沉浸课程工作流
前端应用 frontend/ 开发聊天、课程、图谱、测验与探索门户
探索主题 examples/ 用任意前端技术构建独立学习世界,并接入主站

把一个新学习世界接入探索模式

探索主题与主站保持轻耦合,可以使用 Vue、React、Svelte、Canvas、Three.js 或原生 HTML 独立开发。你可以做一节完整课程,也可以先发布一个小实验、一段互动故事或一种新的教学玩法。

主站与主题之间只有三类稳定契约:

内容契约:examples/explore-catalog.json
构建契约:build:wesmartflow + 约定的环境变量
服务契约:同源静态路径 + 可选的相对 /api 路径

接入一个新主题通常只需要:

  1. examples/ 下创建独立应用;
  2. 提供 build:wesmartflow 构建命令;
  3. examples/explore-catalog.json 登记分类、入口和介绍内容;
  4. 运行目录校验和构建检查。
cd frontend
npm run validate:examples
npm run build:examples -- --only your-topic-id

完整的字段、路径与构建约定见 探索主题开发指南

发布你的课程

探索页向每一位愿意认真做课程的人开放。

课程的选题、年龄段、页面风格和互动方式都不设统一模板。你可以从现有主题继续创作,也可以带来一个全新的世界。准备好后,在 explore-catalog.json 登记课程并提交 Pull Request;我们会一起检查构建、入口、基本可用性和学习体验,再把它放进探索页。

作者信息会跟随课程展示。课程作者保留自己的代码结构、设计语言和后续内容更新方式。

🚀 快速开始

环境要求

推荐直接使用仓库中的 Conda 环境,它会准备 Python、Node.js 和后端依赖。

生成沉浸式 PDF 课件时,还需要 XeLaTeX、latexmkSimplePlus Beamer 主题

1. 克隆项目

git clone https://github.com/Tencent/WeSmartFlow.git
cd WeSmartFlow

2. 安装依赖

conda env create -f environment.yml
conda activate agent

cd frontend
npm install
cd ..

# 目前有两个探索主题使用 Vite,需要各自安装一次依赖
npm --prefix examples/Magic_English_Town install
npm --prefix examples/chemastry_lab install

如果不使用 Conda,请准备 Python 3.10+ 与兼容 Vite 8 的 Node.js,并手动安装 backend/requirements.txt

3. 配置模型与登录方式

cp backend/.env.example .env

编辑仓库根目录的 .env。运行学习 Agent 至少需要:

LLM_API_KEY="your-api-key"
LLM_BASE_URL="https://your-openai-compatible-endpoint/v1"
LLM_MODEL="your-model"

OpenAI、DeepSeek、通义千问等 OpenAI 兼容接口均可接入。登录还需要配置 GitHub OAuth、邮箱 SMTP 或微信小程序中的至少一种方式;搜索、图片生成与语音能力可以按需开启。完整变量说明见 backend/.env.example后端文档

4. 启动前后端

# 终端一:后端,默认端口 8080
cd backend
python main.py
# 终端二:前端,默认端口 5173
cd frontend
npm run dev

打开 http://localhost:5173。后端健康检查地址为 http://localhost:8080/health,探索页位于 http://localhost:5173/#/explore

npm run dev 会先构建 explore-catalog.json 中登记的本地探索主题。新增主题时,探索页组件可以保持不变。

启用 WeClaw 微信助手(可选)

把学习助手接入微信,需要额外几步:

1. 安装 Playwright + Chromium(卡片渲染成图片所需)

pip install playwright
playwright install chromium

2. 配置环境变量backend/.env

WECLAW_ENABLED=true                 # 开启 WeClaw 通道
PUBLIC_BASE_URL=https://你的域名     # 对外可访问地址,用于拼卡片/讲义链接
# WECLAW_RENDER_CARDS=true          # 卡片渲染成图片(默认开)

3. 扫码绑定

重启后端后,登录网页端进入 「微信助手」 页 → 点「开始绑定」→ 用微信扫码。绑定成功后,该微信 bot 收到的消息就会由你的 AI 学习助手回复。

变量 说明 默认
WECLAW_ENABLED 是否启用 WeClaw 通道 false
PUBLIC_BASE_URL 对外基础 URL(卡片/讲义链接)
WECLAW_RENDER_CARDS 卡片渲染成图片发送 true
WECLAW_RENDER_WIDTH 截图视口宽度(px) 480

说明:HTML 卡片 / 可视化 / 测验会被渲染成图片发送,并附网页端交互链接;PDF 讲义以链接形式发送。

启用沉浸式 PDF 课件(可选)

# macOS
brew install --cask mactex-no-gui

# Ubuntu / Debian
sudo apt install texlive-xetex texlive-latex-extra texlive-fonts-extra \
                 texlive-lang-chinese latexmk

git clone https://github.com/pm25/SimplePlus-BeamerTheme.git backend/SimplePlus-BeamerTheme

🧩 项目结构

WeSmartFlow/
├── backend/
│   ├── agent_core/          # 通用 Agent 基础库
│   ├── agents/              # 教育 Agent、工具与提示词
│   ├── services/            # 辅导、课程、知识图谱等业务服务
│   ├── channels/            # WeClaw 微信通道(扫码登录 / 长轮询 / 卡片渲染)
│   ├── routers/             # FastAPI 路由与探索主题 API 适配
│   ├── repositories/        # 数据访问层
│   ├── models/              # 数据模型
│   └── main.py              # 后端入口
├── frontend/
│   ├── src/views/           # Chat / Immersive / Graph / Quiz / Explore
│   ├── src/components/      # 卡片、测验、EduViz 等组件
│   └── public/              # 构建后的探索主题产物
├── examples/
│   ├── explore-catalog.json # 探索页内容与构建目录
│   ├── build.mjs            # 统一构建编排
│   └── */                   # 各自独立的互动学习主题
├── environment.yml
└── README.md

🔧 技术实现与工程方向

WeSmartFlow 优先选择容易理解、方便替换的技术组合。通用能力沉到 agent_core,教育场景放在服务层,探索课程保持独立构建;模型、搜索、图像和消息通道都通过清晰的接口接入。

层级 技术
前端 Vue 3 · Vue Router · Vite · Three.js · KaTeX · pdf.js
后端 FastAPI · SQLite(WAL)· sqlite-vec · Pydantic · Uvicorn
Agent 自研 agent_core · ReAct · Reflection · Plan-and-Solve · Tool Use · Agent-as-Tool · MCP
模型 OpenAI 兼容协议,可接入不同模型与网关
内容 HTML 知识卡片 · EduViz · XeLaTeX / Beamer · TTS
消息通道 WeClaw 微信接入(clawbridge 长轮询 · async httpx 协程池 · Playwright 卡片渲染)
搜索 Tavily · arXiv · DuckDuckGo
认证 GitHub OAuth · 邮箱验证码 · 微信小程序 · JWT

工程演进主要围绕三条主线展开:用教育任务评测、Reflection 和链路追踪提高结果的可靠性;通过 MCP 工具生态、多模型路由、多 Agent 并行与分层记忆扩展能力边界;完善 PostgreSQL、对象存储、向量检索和容器化部署,让项目能够承载更稳定的长期服务。相关能力会沿用现有的分层边界,按成熟度逐步进入主干。

🤝 一起建设

WeSmartFlow 还在快速生长。我们尤其期待有人带着自己的课程来:一段互动故事、一场科学实验、一座数学花园,甚至一种我们还没见过的学习方式,都可以成为探索页里的下一个入口。

如果你想改进 Agent、接入一种工具,或者只是讲讲真实使用时哪里不顺手,也欢迎提交 Issue 或 Pull Request。准备发布课程时,可以先阅读 探索主题开发指南;它会告诉你如何保留主题的独立性,同时自然地接入 WeSmartFlow。

📄 许可证

本项目基于 MIT License 开源。

About

Every question can open a new path. WeSmartFlow turns learning into conversation, exploration, stories, and hands-on discovery.

Resources

Stars

1.0k stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages