_ _ _ _ __ __ _ _ __ ___ | |__ ___ | |_ | '_ \ / _` | '_ \ / _ \| '_ \ / _ \| __| | | | | (_| | | | | (_) | |_) | (_) | |_ |_| |_|\__,_|_| |_|\___/|_.__/ \___/ \__|
🐈 nanobot is an ultra-lightweight personal AI assistant designed to be learned, dissected, and mastered.
Unlike bloated frameworks that hide their logic, nanobot delivers core agent functionality in just ~3,500 lines of code. It's the perfect "textbook" implementation of a modern LLM agent.
An AI Agent is not just a chatbot. It is a system that can:
- Perceive: Read files, search the web, see the terminal output.
- Think: Use an LLM (Large Language Model) to reason about what to do next.
- Act: Execute tools (Shell, File I/O, API calls) to affect the environment.
- Loop: Observe the result of its action and decide the next step.
nanobot implements this Perceive-Think-Act-Loop in its purest form in agent/loop.py. By studying this repository, you aren't just learning a tool; you are learning the fundamental anatomy of Agentic AI.
Tip
Using an AI Coding Assistant? (Cursor, Claude Code, GitHub Copilot)
You can turn your AI assistant into a Personal Nanobot Tutor!
- Open
AI_COPILOT.md. - Copy its content or ask your AI to "Read AI_COPILOT.md and act as my tutor".
- The AI will now guide you through the 3-Day Plan using the Socratic method, helping you understand the code instead of just writing it for you.
Follow this guided path to go from "User" to "AI Engineer" in just one weekend (2-3 hours/day).
Objective: Understand how an LLM becomes an Agent.
- Read (
30 min):agent/loop.py: This is the heart. Read how_process_messagehandles theLLM -> Tool -> LLMcycle.config/: See how we manage prompts and model settings.
- Action (
1 hour):- Run
nanobot onboardto initialize. - Chat:
nanobot agent -m "Calculate 128 * 455". - Trace: Open
~/.nanobot/workspaceand find the log file. Follow the execution path you just read inloop.py.
- Run
- Challenge (
1 hour):- Modify
agent/prompts.py(or equivalent) to give the bot a "Pirate" personality. - Restart and verify:
nanobot agent -m "Who are you?".
- Modify
Objective: Teach the AI to interact with the real world.
- Read (
30 min):agent/tools/: Look atweb.pyto see how we define tools.skills/: Understand how to bundle tools into skills.
- Action (
1 hour):- Create a simple python script
my_tool.pythat prints "Hello from tool!". - Register it in the agent configuration.
- Create a simple python script
- Challenge (
1.5 hours):- Build a "Daily Briefing" Skill:
- Write a tool that fetches top Hacker News headlines (use an API or scraping).
- Combine it with the existing
weathertool. - Ask nanobot: "Give me my daily briefing."
- Build a "Daily Briefing" Skill:
Objective: Run your agent 24/7.
- Read (
30 min):channels/: How we bridge to Telegram/WhatsApp.cron/: How the agent wakes itself up.
- Action (
1 hour):- Set up a mock Telegram bot (or real one via
@BotFather). - Configure
cronto run your "Daily Briefing" skill every morning at 8:00 AM.
- Set up a mock Telegram bot (or real one via
- Challenge (
1.5 hours):- Dockerize: Build the container using the provided
Dockerfile. - Run it independently of your terminal.
- Chat with it via Telegram while it runs in Docker.
- Dockerize: Build the container using the provided
This repository contains the Study Plan and Tutor Instructions. To follow the plan, you need the actual nanobot source code.
1. Clone the Repository (Recursive)
This command downloads both the study guide AND the nanobot source code at once.
git clone --recursive https://github.com/YOUR_USERNAME/nanobot-study.git
cd nanobot-study2. Install Dependencies
pip install -e nanobot/3. Start Learning
Return to this README (or AI_COPILOT.md) and begin your 3-Day Mastery Plan tasks. Note that the source code is now in the nanobot/ subdirectory.
If you are using Cursor, Claude Code, or GitHub Copilot, paste the content of AI_COPILOT.md into your chat. The AI will then act as a Socratic Tutor.
Example Interaction:
You: "How does the agent decide which tool to use?"
Standard AI: "It uses the
_process_messagefunction inloop.py. Here is the code..." (Gives you the answer, you learn nothing)Nanobot Tutor (Socratic): "That's the core of the agent! Open
nanobot/agent/loop.pyand look at the_process_messagemethod. Can you spot where we callself.llm.chat? What argument are we passing to it that contains the tool definitions?"
Your Goal: Don't just copy code. Answer the Tutor's questions to build your mental model of the system.
- Initialize:
nanobot onboard - Configure: Edit
~/.nanobot/config.jsonwith your API keys (OpenRouter/OpenAI/Anthropic). - Chat:
nanobot agent -m "Hello World"
- bridge/: Connectivity to external worlds (Telegram, etc).
- agent/: The cognitive core.
- memory/: Long-term storage (your
workspace/).
- HKUDS/nanobot - The original lightweight agent framework this study guide is based on.
- OpenClaw - A powerful autonomous agent framework for complex tasks.
- ReAct: Synergizing Reasoning and Acting in Language Models - Generally considered the seminal paper for modern Agents.
- AutoGPT - An early popular implementation of autonomous agents.
- LangChain - A framework for developing applications powered by language models.
We love PRs! If you finish your "Day 3 Challenge" and make a cool skill, make a PR to add it to the skills/ directory.
Special thanks to the original HKUDS/nanobot repository for the excellent base implementation.
nanobot is for educational, research, and technical exchange purposes only
