概要
nanobot は、約4,000行という 超軽量AIアシスタント。 Clawdbot より99%小型で、 高速・低リソース で動作。 Telegram・WhatsApp・Feishu など多彩なチャネルに対応。 Docker・ローカルLLM・複数プロバイダ の柔軟運用が可能。 研究・技術検証・個人利用 に最適な設計。
nanobotの特徴
- 超軽量設計 :約4,000行のコード、Clawdbotの1%以下
- 研究向け :シンプルで読みやすい構造、容易な拡張性
- 高速起動・省リソース :ミニマル設計による軽快な動作
- 簡易導入 :ワンクリック展開、即利用開始
- 主要機能 :
- 24時間リアルタイム市場分析
- フルスタックソフトウェアエンジニア機能
- スマート日常管理
- 個人知識アシスタント
インストール方法
- ソースからインストール(開発推奨)
git clone https://github.com/HKUDS/nanobot.gitcd nanobotpip install -e .
- uvでインストール(安定・高速)
uv tool install nanobot-ai
- PyPIからインストール(安定版)
pip install nanobot-ai
クイックスタート
- APIキー設定 :
~/.nanobot/config.jsonにAPIキーを記載- OpenRouter(LLM)、Brave Search(任意)
- 初期化 :
nanobot onboard - 設定ファイル例
{ "providers": { "openrouter": { "apiKey": "sk-or-v1-xxx" } }, "agents": { "defaults": { "model": "anthropic/claude-opus-4-5" } }, "tools": { "web": { "search": { "apiKey": "BSA-xxx" } } } } - チャット開始 :
nanobot agent -m "2+2は?"
ローカルモデル(vLLM)対応
- vLLMサーバ起動
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
- 設定例
{ "providers": { "vllm": { "apiKey": "dummy", "apiBase": "http://localhost:8000/v1" } }, "agents": { "defaults": { "model": "meta-llama/Llama-3.1-8B-Instruct" } } } - チャット例 :
nanobot agent -m "ローカルLLMからこんにちは!"
対応チャネル
- Telegram :トークンのみで簡単設定
- WhatsApp :QRスキャンによるデバイス連携
- Feishu :WebSocket長期接続、パブリックIP不要
Telegram設定手順
- @BotFatherでボット作成、トークン取得
- 設定ファイルに記載
{ "channels": { "telegram": { "enabled": true, "token": "YOUR_BOT_TOKEN", "allowFrom": ["YOUR_USER_ID"] } } } nanobot gatewayでゲートウェイ起動
WhatsApp設定手順
- Node.js ≥18必須
nanobot channels loginでQRスキャン- 設定ファイルに電話番号記載
- 2つのターミナルでゲートウェイ起動
Feishu設定手順
- Feishu Open Platformでアプリ作成、Bot機能有効化
- 必要な権限・イベント追加
- App ID/Secret取得、設定ファイルに記載
nanobot gatewayでゲートウェイ起動
設定ファイル構成
- ~/.nanobot/config.json に全設定集約
- プロバイダ例
- openrouter:全モデル対応(推奨)
- anthropic:Claude直アクセス
- openai:GPT直アクセス
- deepseek:DeepSeek直アクセス
- groq:Whisperによる音声文字起こし
- gemini:Gemini直アクセス
- チャネル例
- Telegram, WhatsApp, Feishuの有効化・認証情報
CLIコマンド一覧
nanobot onboard:初期設定nanobot agent -m "...":エージェントと対話nanobot agent:インタラクティブモードnanobot gateway:ゲートウェイ起動nanobot status:状態確認nanobot channels login:WhatsApp連携nanobot channels status:チャネル状態確認
スケジュール管理(Cron機能)
- ジョブ追加
nanobot cron add --name "daily" --message "おはよう!" --cron "0 9 * * *"nanobot cron add --name "hourly" --message "状況確認" --every 3600
- ジョブ一覧 :
nanobot cron list - ジョブ削除 :
nanobot cron remove <job_id>
Dockerによる運用
- 設定ディレクトリ永続化
-v ~/.nanobot:/root/.nanobotでホストとコンテナ間共有
- ビルド・初期化・運用コマンド例
docker build -t nanobot .docker run -v ~/.nanobot:/root/.nanobot --rm nanobot onboardvim ~/.nanobot/config.jsonでホスト側編集docker run -v ~/.nanobot:/root/.nanobot -p 18790:18790 nanobot gatewaydocker run -v ~/.nanobot:/root/.nanobot --rm nanobot agent -m "Hello!"
プロジェクト構成
- nanobot/
- agent/:コアエージェントロジック
- loop.py:LLMとツールのやりとり
- context.py:プロンプト生成
- memory.py:永続メモリ
- skills.py:スキルローダー
- subagent.py:バックグラウンドタスク
- tools/:組込ツール
- skills/:GitHub・天気・tmux等のスキル
- channels/:WhatsApp統合
- bus/:メッセージルーティング
- cron/:スケジュール管理
- heartbeat/:定期起動
- providers/:各種LLMプロバイダ
- session/:会話セッション
- config/:設定
- cli/:コマンド管理
- agent/:コアエージェントロジック
貢献・ロードマップ
- PR歓迎 :小型・可読性重視の設計
- 今後の予定
- Groq Whisperによる音声文字起こし
- マルチモーダル(画像・音声・動画対応)
- 長期記憶機能
- 複数ステップ推論・計画
- Discord・Slack・メール・カレンダー連携
- フィードバック学習による自己改善
nanobot は教育・研究・技術交流目的専用。 興味があれば、GitHubでスターやコントリビュートを推奨。