Courses
Nanobot là một trợ lý AI cá nhân gọn nhẹ, thay thế cho OpenClaw. Nó nhỏ hơn OpenClaw tới 98% nhưng vẫn cung cấp cùng các chức năng cốt lõi của tác nhân. Cũng như OpenClaw, Nanobot có thể chạy trên máy của bạn, kết nối với các ứng dụng ưa thích, và với kích thước nhỏ gọn, bạn có thể dễ dàng xem xét mã nguồn.
Nanobot kết nối các mô hình đóng và mã nguồn mở ưa thích của bạn để chạy một tác nhân lập trình cục bộ. Khi bạn gửi tin nhắn qua Telegram, WhatsApp, hoặc terminal, tác nhân sẽ phản hồi bằng cách chạy lệnh trên máy của bạn, như đọc log, thực thi script và tìm kiếm tệp.
Trong hướng dẫn này, tôi sẽ chỉ bạn cách thiết lập Nanobot từ đầu và khám phá cách xây dựng một tác nhân AI đầy đủ tính năng chỉ trong vài phút. Tôi cũng sẽ đề cập đến một số điểm cần lưu ý khi sử dụng công nghệ này.
Nanobot là gì?
Nanobot là một giải pháp thay thế OpenClaw đã nhanh chóng trở nên phổ biến, đạt hơn 21.000 sao trên GitHub tại thời điểm viết bài. Giống như OpenClaw, nó hỗ trợ các nền tảng nhắn tin phổ biến như Discord, Slack và Telegram.
Tương tự tác nhân OpenClaw, tác nhân Nanobot của bạn cũng có thể tham gia “bữa tiệc” mạng xã hội trên Moltbook, như chúng tôi trình bày trong hướng dẫn Bắt đầu với Moltbook.
Các khả năng chính của Nanobot
Dù nhỏ gọn, Nanobot bao phủ ba điều chính bạn cần từ một tác nhân mạnh:
- Bộ nhớ có trạng thái: Nanobot xây dựng một đồ thị cục bộ về lịch sử của bạn. Nghĩa là nếu hôm nay bạn đang làm một dự án phân tích dữ liệu bằng Python, thì đến một tuần sau nó vẫn sẽ nhớ điều đó.
- Không phụ thuộc mô hình: Bạn không bị khóa vào bất kỳ nhà cung cấp mô hình nào. Bạn có thể dùng của OpenAI, Anthropic, hoặc thậm chí mô hình cục bộ chạy trên phần cứng của chính bạn.
- Giao diện tức thì: Nanobot có thể được dùng trong các ứng dụng nhắn tin ưa thích của bạn, nghĩa là bạn tiếp tục dùng các giao diện quen thuộc.

Điều kiện tiên quyết để chạy Nanobot
Để theo dõi hướng dẫn này, bạn cần vài thứ cơ bản:
- Python 3.11 trở lên được cài trên máy tính (Mac, Windows hoặc Linux).
- API Key từ nhà cung cấp như OpenRouter, OpenAI hoặc Anthropic, hoặc thiết lập mô hình cục bộ qua Ollama.
- Tài khoản Telegram (Tôi sẽ dùng Telegram làm giao diện vì dễ thiết lập nhất).
Hướng dẫn Nanobot từng bước: Xây dựng "Tác nhân nghiên cứu"
Hãy xây dựng một tác nhân sống trong Telegram của bạn, có thể tìm kiếm web và ghi nhớ sở thích của bạn.

Bước 1: Cài đặt Nanobot
Cách sạch sẽ nhất để cài đặt công cụ Python hiện nay là dùng pip hoặc uv, giúp chúng tách biệt với Python hệ thống. Nếu bạn chưa có, dùng pip tiêu chuẩn cũng được.
Mở terminal và chạy:
# run inside your env
pip install nanobot-ai
# OR if you prefer uv
uv tool install nanobot-ai
Sau khi cài đặt, bạn sẽ thấy thông báo như bên dưới:
Successfully installed nanobot-0.4.1
Bước 2: Lấy token cho giao diện
Để thiết lập giao diện:
- Mở Telegram và tìm @BotFather
- Gõ
/newbotvà làm theo hướng dẫn - Sao chép token bạn nhận được từ BotFather
- Tiếp theo, lấy user ID của bạn để đảm bảo bot chỉ chấp nhận lệnh từ bạn. Tìm @userinfobot trong Telegram và bấm Start. Sao chép user ID.
Bước 3: Khởi tạo
Chạy nanobot onboard để khởi tạo bot. Bạn sẽ thấy thông báo tương tự như bên dưới:
✓ Created config at /Users/derrickmwiti/.nanobot/config.json
✓ Created workspace at /Users/derrickmwiti/.nanobot/workspace
Created AGENTS.md
Created SOUL.md
Created USER.md
Created memory/MEMORY.md
Created memory/HISTORY.md
🐈 nanobot is ready!
Next steps:
1. Add your API key to ~/.nanobot/config.json
Get one at: https://openrouter.ai/keys
2. Chat: nanobot agent -m "Hello!"
Want Telegram/WhatsApp? See: https://github.com/HKUDS/nanobot#-chat-apps
Bước 4: Cấu hình
Chạy lệnh dưới đây và thêm API key cho nhà cung cấp mô hình bạn muốn dùng trong phần providers:
nano ~/.nanobot/config.json
Chỉnh sửa tệp để thêm API key cho nhà cung cấp bạn chọn:
{
"workspace": "./workspace",
"providers": {
// Option 1: OpenAI
"openai": {
"apiKey": "sk-YOUR-OPENAI-KEY-HERE",
"model": "gpt-4o"
},
// Option 2: Anthropic (Claude)
"anthropic": {
"apiKey": "sk-ant-YOUR-CLAUDE-KEY-HERE",
"model": "claude-3-5-sonnet-20240620"
},
// Option 3: Google Gemini
"google": {
"apiKey": "AIza-YOUR-GOOGLE-KEY-HERE",
"model": "gemini-1.5-pro"
},
// Option 4: OpenRouter (Best for flexibility)
"openrouter": {
"apiKey": "sk-or-YOUR-OPENROUTER-KEY-HERE",
"model": "nousresearch/hermes-3-llama-3.1-405b"
},
// Option 5: Local (Ollama or vLLM)
"local": {
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama",
"model": "llama3"
}
},
"channels": {
"telegram": {
"enabled": true,
"token": "YOUR_TELEGRAM_BOT_TOKEN",
"allowFrom": ["YOUR_NUMERIC_USER_ID"]
}
}
}
Chỉnh phần Telegram và thêm token cùng user ID bạn đã lấy trước đó. Bạn cần làm vậy để chỉ mình bạn có thể gửi chỉ dẫn cho tác nhân.
"telegram": {
"enabled": true,
"token": "",
"allowFrom": [""],
"proxy": null
}
Sửa mục agents để phản ánh nhà cung cấp đã chọn:
"agents": {
"defaults": {
"workspace": "~/.nanobot/workspace",
"model": "openai/gpt-5",
"maxTokens": 8192,
"temperature": 0.7,
"maxToolIterations": 20,
"memoryWindow": 50
}
}
Thử tác nhân của bạn trên terminal:
nanobot agent -m "Hello"
🐈 nanobot
Hi there! How can I help you today?
Bước 5: Thiết lập Gateway
Để hoàn tất tích hợp Telegram, chạy lệnh dưới đây trong terminal:
nanobot gateway
Giờ bạn sẽ thấy Telegram đã được bật, như trong thông báo của tôi dưới đây:
🐈 Starting nanobot gateway on port 18790...
2026-02-13 09:59:35.405 | INFO | nanobot.channels.manager:_init_channels:46 - Telegram channel enabled
✓ Channels enabled: telegram
✓ Heartbeat: every 30m
2026-02-13 09:59:35.406 | INFO | nanobot.cron.service:start:154 - Cron service started with 0 jobs
2026-02-13 09:59:35.406 | INFO | nanobot.heartbeat.service:start:81 - Heartbeat started (every 1800s)
2026-02-13 09:59:35.406 | INFO | nanobot.agent.loop:run:116 - Agent loop started
2026-02-13 09:59:35.406 | INFO | nanobot.channels.manager:start_all:159 - Starting telegram channel...
2026-02-13 09:59:35.406 | INFO | nanobot.channels.manager:_dispatch_outbound:187 - Outbound dispatcher started
2026-02-13 09:59:35.411 | INFO | nanobot.channels.telegram:start:140 - Starting Telegram bot (polling mode)...
2026-02-13 09:59:39.245 | INFO | nanobot.channels.telegram:start:148 - Telegram bot @mwitibananabot connected
2026-02-13 09:59:39.417 | DEBUG | nanobot.channels.telegram:start:152 - Telegram bot commands registered
Chuyển sang Telegram và thử nghiệm:

Bạn có thể tìm hiểu cách dùng Claude Code của Anthropic để cải thiện quy trình phát triển phần mềm qua ví dụ thực tế với thư viện Supabase Python trong hướng dẫn Claude Code của chúng tôi.
Nâng cấp Nanobot: Tác nhân "đa công cụ"
Giờ thiết lập đã xong, đến lúc làm cho tác nhân của bạn hữu dụng hơn. Hầu hết mô hình chỉ có thông tin tới mốc dữ liệu huấn luyện nhất định. Ta có thể làm nó hữu dụng hơn bằng cách kết nối internet.
Nanobot hỗ trợ Model Context Protocol (MCP), bổ sung khả năng cho tác nhân của bạn như tìm kiếm web hoặc truy vấn cơ sở dữ liệu. Hãy thêm Brave Search Server để tác nhân của chúng ta có thể truy cập internet:
- Lấy API key từ Brave
- Cập nhật cấu hình với key này
"tools": {
"web": {
"search": {
"apiKey": "",
"maxResults": 5
}
},
"exec": {
"timeout": 60
},
"restrictToWorkspace": false
}
Khởi động lại gateway.
Bây giờ trong Telegram, hãy hỏi một câu như “Giá cổ phiếu Apple hiện tại là bao nhiêu?” Trên terminal, bạn có thể thấy nó thực sự đang tìm kiếm web:
2026-02-13 10:14:48.753 | INFO | nanobot.agent.loop:_process_message:164 - Processing message from telegram:7045522516: What is the current price of the Apple Stock
2026-02-13 10:14:59.726 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_search({"query": "AAPL stock price Yahoo Finance", "count": 5})
2026-02-13 10:15:22.066 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://finance.yahoo.com/quote/AAPL/", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:15:26.886 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://www.google.com/finance/quote/AAPL:NASDAQ", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:15:51.361 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://query1.finance.yahoo.com/v7/finance/quote?symbols=AAPL", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:15:52.018 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://query2.finance.yahoo.com/v10/finance/quoteSummary/AAPL?modules=price", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:07.071 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://www.marketwatch.com/investing/stock/aapl", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:07.406 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://finviz.com/quote.ashx?t=AAPL", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:35.897 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://financialmodelingprep.com/api/v3/quote/AAPL?apikey=demo", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:36.919 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://stooq.com/q/l/?s=aapl.us&i=5", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:17:14.870 | INFO | nanobot.agent.loop:_process_message:266 - Response to telegram:7045522516: Reflection:
- JS-heavy sites (Yahoo/Google) hid the live quote; Yahoo's JSON APIs blocked (401).
- Finviz returned a pr...

Cục bộ và riêng tư: Chạy Nanobot ngoại tuyến
Giống như OpenClaw, một trong những điểm hấp dẫn nhất của Nanobot là quyền riêng tư. Bạn có thể dùng nó mà không gửi bất kỳ dữ liệu nào lên nhà cung cấp đám mây. Vì Nanobot hỗ trợ vllm và các endpoint tương thích OpenAI, bạn có thể trỏ nó tới bộ chạy mô hình cục bộ như Ollama.
- Cài đặt Ollama và chạy
ollama - Cập nhật phần providers trong config.json của bạn (xem ví dụ "local" ở Bước 4 phía trên).
Xem thêm hướng dẫn dùng OpenClaw với Ollama để học cách xây dựng một nhà phân tích dữ liệu AI hoàn toàn cục bộ bằng OpenClaw và Ollama, có khả năng điều phối quy trình nhiều bước, phân tích tập dữ liệu và tạo báo cáo trực quan mà không gửi dữ liệu của bạn lên đám mây.
Các lỗi thường gặp và cách khắc phục với Nanobot
Ngay cả với công cụ đơn giản như Nanobot, vẫn có thể xảy ra sự cố. Dưới đây là một vài vấn đề bạn có thể gặp và cách giải quyết.
Lỗi bị từ chối kết nối
Nếu bạn cố chạy Nanobot trên máy chủ nhưng lại truy cập các mô hình cục bộ, bạn sẽ gặp lỗi từ chối kết nối. Nguyên nhân là máy chủ trực tuyến không thể truy cập máy tính cục bộ của bạn.
Để khắc phục, bạn cần đảm bảo các mô hình mã nguồn mở cũng chạy trên cùng máy chủ, hoặc dùng công cụ như ngrok để bắc cầu kết nối.
Giới hạn cửa sổ ngữ cảnh
Các mô hình cục bộ thường có giới hạn bộ nhớ (cửa sổ ngữ cảnh) nhỏ hơn. Ngay cả mô hình trên đám mây cũng có cửa sổ ngữ cảnh giới hạn. Vì Nanobot lưu bộ nhớ dưới dạng tệp đơn giản, cách tốt nhất để "đặt lại" là xóa thủ công các tệp bộ nhớ trong thư mục ./workspace của bạn.
Hoặc, chỉ cần chuyển sang mô hình có cửa sổ ngữ cảnh lớn hơn, như gemini-1.5-pro hoặc Claude Opus 4.6.
Kết luận
Nanobot cho thấy phần mềm mạnh mẽ không nhất thiết phải lớn. Nó cung cấp các tính năng cốt lõi như OpenClaw trong khi vẫn nhỏ gọn hơn rất nhiều. Tuy nhiên, nó vẫn mang những vấn đề tương tự về bảo mật, nên tôi khuyên bạn thiết lập trong môi trường sandbox để tránh các sự cố nghiêm trọng như bị xóa sạch toàn bộ ổ cứng.
Để tìm hiểu thêm về cách làm việc với các công cụ AI, tôi khuyến nghị xem hướng dẫn về các công cụ AI miễn phí tốt nhất của chúng tôi. Để mở rộng kỹ năng lập trình với AI, hãy thử khóa học Lập trình với hỗ trợ AI dành cho nhà phát triển để phát triển các kỹ năng giúp trợ lý AI trở thành đối tác đáng tin cậy hơn trong quy trình phát triển của bạn.
Bạn cũng có thể khám phá cách xây dựng ứng dụng vận hành bằng AI sử dụng LLM, prompt, chuỗi và tác nhân trong LangChain qua khóa học Phát triển ứng dụng LLM với LangChain của chúng tôi.
Câu hỏi thường gặp về Nanobot
Nanobot khác OpenClaw như thế nào?
Chức năng cốt lõi là như nhau. Nanobot là một lựa chọn nhỏ gọn hơn, giúp bạn dễ đọc và cập nhật mã hơn.
Tác nhân Nanobot của tôi đang online nhưng phớt lờ tin nhắn của tôi. Tại sao?
Gần như chắc chắn là do thiết lập allowFrom. Nếu bạn đã thêm bất kỳ giá trị nào vào danh sách này (kể cả placeholder), Nanobot sẽ kích hoạt "Chế độ danh sách trắng" và sẽ nghiêm ngặt bỏ qua mọi user ID không có trong danh sách.
Nanobot có giao diện web không?
Không. Nanobot dùng giao diện của các ứng dụng nhắn tin ưa thích của bạn hoặc terminal.
