An intelligent teaching assistant built on nanobot that helps educators design lesson plans, manage course materials, and interact with students via a modern web interface.
| Feature | Description |
|---|---|
| ๐ฌ AI Chat | Conversational AI assistant powered by any LLM (OpenAI, Claude, Gemini, DeepSeek, etc.) |
| ๐ Lesson Plan Generator | Auto-generates structured, pedagogically sound lesson plans in Chinese or English |
| ๐ฌ Video Prompt Generator | Converts lesson plans into storyboard-style prompts for educational video production |
| ๐ Document Library | Import, index, and semantically search course materials (PDF, DOCX, TXT, Markdown) |
| ๐งฉ Skills & MCP | Extend agent capabilities via custom skills or Model Context Protocol (MCP) servers |
| ๐ File Manager | Browse and edit workspace files directly from the web UI |
| โ๏ธ Config Panel | Manage API keys, LLM providers, and agent settings through the browser |
EduBot
โโโ nanobot/ # Core agent framework (based on nanobot)
โ โโโ agent/
โ โ โโโ tools/
โ โ โ โโโ education_lesson.py # Lesson plan & video prompt tools
โ โ โ โโโ education_document.py # Document import / vector search
โ โ โโโ loop.py # Agent reasoning loop
โ โโโ api/
โ โ โโโ app.py # FastAPI backend (REST API)
โ โโโ channels/ # Chat platform integrations
โ โโโ providers/ # LLM provider adapters
โ โโโ frontend/ # Next.js web console
โ โโโ app/page.tsx # Main UI (chat, config, skills, files, docs)
โโโ workspace/ # Agent workspace (memory, skills, sessions)
- Python โฅ 3.11
- Node.js โฅ 18 (for the web frontend)
git clone https://github.com/10and01/EduBot.git
cd EduBotpip install -e ./nanobotOr with uv (faster):
uv pip install -e ./nanobotcd nanobot/frontend
npm installCreate or edit ~/.nanobot/config.json:
{
"providers": {
"openrouter": {
"apiKey": "sk-or-v1-YOUR_KEY"
}
},
"agents": {
"defaults": {
"model": "anthropic/claude-opus-4-5",
"provider": "openrouter"
}
}
}Supported providers: OpenAI, Anthropic, Azure OpenAI, Gemini, DeepSeek, Qwen, Moonshot, VolcEngine, vLLM (local), OpenRouter, and more.
python -m uvicorn nanobot.api.app:app --host 127.0.0.1 --port 8000cd nanobot/frontend
npm run devOpen http://localhost:3000 to access the EduBot web console.
EduBot can produce fully structured lesson plans conforming to standard pedagogical frameworks. A lesson plan includes:
- ๅญฆไน ็ฎๆ / Learning Objectives โ scaffolded knowledge, skill, and attitude goals
- ๅญฆๆ ๅๆ / Learner Analysis โ prerequisite knowledge assessment
- ๆๅญฆ้็นไธ้พ็น / Key Points & Challenges โ core concepts and common misconceptions
- ๆๅญฆๆต็จ / Teaching Process โ timed phases (warm-up โ instruction โ practice โ assessment)
- ่ฏไปทไธไฝไธ / Assessment & Homework โ formative and summative strategies, tiered homework
- ๆฟไนฆไธ่ตๆบ / Board Plan & Resources โ visual layout and material checklist
Example prompt:
ๅธฎๆ่ฎพ่ฎกไธไปฝไธๅนด็บงๆฐๅญฆ"ไธๆฌกๅฝๆฐ"็45ๅ้ๆๆก
Import your teaching materials and ask questions grounded in your own content:
- Upload a PDF, DOCX, TXT, or Markdown file via the ๆๆกฃๅบ panel
- Specify subject and grade for metadata filtering
- Chat with the AI โ it will retrieve and cite relevant passages from your documents
Example:
ๆ นๆฎไธไผ ็่ฏพๆ๏ผไธบไบๅนด็บง่ฏญๆ่ฎพ่ฎกไธ้้
่ฏป็่งฃ้ข
Convert a lesson plan into a storyboard prompt ready for AI video tools (e.g., Sora, Kling):
ๆๅๆ็ๆๆก่ฝฌๆ้ๅๆๆๆๅญฆ่ง้ข็ๅ้่ๆฌ
EduBot inherits all chat channels from nanobot:
| Platform | Notes |
|---|---|
| Web Console | Built-in โ no extra setup needed |
| Telegram | Bot token from @BotFather |
| DingTalk | App Key + App Secret |
| Feishu / Lark | App ID + App Secret |
| Slack | Bot token + App-Level token |
| Discord | Bot token + Message Content intent |
| WeChat Work | Bot ID + Bot Secret |
| IMAP/SMTP credentials | |
| App ID + App Secret |
Configure any channel in ~/.nanobot/config.json, then run:
nanobot gatewaydocker compose up -dThe docker-compose.yml in the nanobot/ directory starts the agent and API server together.
Place custom skill files in workspace/skills/ or configure MCP servers in the Skills / MCP panel of the web console.
A skill is a Markdown file that instructs the agent on specialized behavior. See workspace/TOOLS.md for built-in tool constraints and the workspace/skills/weather/ example for a simple reference implementation.
workspace/
โโโ SOUL.md # Agent personality and values
โโโ AGENTS.md # Agent behavioral instructions
โโโ TOOLS.md # Tool usage notes
โโโ USER.md # User profile (personalize interactions)
โโโ HEARTBEAT.md # Periodic background tasks
โโโ memory/ # Persistent agent memory
โโโ sessions/ # Conversation history
โโโ skills/ # Custom agent skills
- Upload course materials โ Ask questions โ AI cites relevant content
- Generate lesson plans โ Convert to video prompts โ Use with video AI tools
- Extend with custom skills โ Add domain-specific tools for your subject area
- Backend: FastAPI + Pydantic (async-first Python)
- Frontend: Next.js 14 + Ant Design (React Server Components)
- Vector Database: Chroma for semantic search (RAG)
- Extensibility: MCP servers, custom skills, multiple LLM providers
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m "feat: add my feature" - Push and open a pull request
This project is licensed under the MIT License.
EduBot is built on top of nanobot by HKUDS, an ultra-lightweight personal AI assistant framework.
