発見!軽量な4,000行Pythonリポジトリをフル機能のパーソナルAIアシスタントへ変える方法を紹介します。nanobot プロジェクトはコアエージェント機能、リアルタイムデータ分析、そして Telegram/WhatsApp とのチャットアプリ統合を単一の設定ファイルで提供します。アーキテクチャの学習、pip や Docker での高速インストール、ローカルモデルの組み込み、タスクのスケジューリング、スキルセットの拡張を行いましょう。研究者、開発者、ホビイストに最適で、シンプルながら強力な AI コンパニオンを小型ハードウェアで動作させたい方へ。

nanobotとは?

nanobot は Clawdbot に触発された超軽量パーソナルAIアシスタントです。しかしコードベースは数分で構築できる 約4,000行 です — Clawdbot の 430k+ 行に比べて格段に小さく。オープンソースツールと Python を駆使し、ラップトップやクラウド VM で数分で立ち上げられる、すぐに使えるチャットボットを提供します。

なぜ nanobot?

ベネフィット 詳細
コンパクト 4,000 行のクリーンで読みやすいコード。ほかのエージェントに比べ 99% 小さい
高速 軽量なため RAM/CPU 使用量が低く、起動も速い
研究に適した モジュラー構成(スキル、ツール、チャネル)で拡張・変更が容易
柔軟なデプロイ OpenRouter で即時使用可能、また vLLM を介したローカル LLM もシンプルな設定ファイルで実現
マルチチャネル Telegram や WhatsApp でチャットでき、Groq で音声文字起こしもサポート
スケジューリング Cron 風のジョブで定期タスクを実行。リマインダーやデータ取得に最適

アーキテクチャ概要

nanobot/
├─ agent/          # コアループ、メモリ、スキル
├─ skills/         # ビルトイン機能(github、weather、tmux…)
├─ channels/       # Telegram/WhatsApp 統合
├─ cron/           # 定期タスクスケジューラ
├─ bus/            # メッセージルーティング
├─ providers/      # OpenAI、OpenRouter、Groq、vLLM
├─ config/         # CLI ヘルパー
└─ cli/            # コマンドラインエントリポイント

スキル はプロンプトで呼び出せる自己完結型モジュールです。エージェントループはユーザーの問い合わせを LLM に送信し、ツール呼び出しトークンを受け取り、該当スキルへ渡します。メモリは単純な SQLite ストアに永続化され、セッションを跨いで保持されます。

nanobot のインストール

1. PyPI から(安定版、速装)

pip install nanobot-ai

2. ソースから(最新機能)

git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip install -e .         # 開発モード

3. UV で高速インストール

uv tool install nanobot-ai

クイックスタートガイド

~/.nanobot/config.json へ最低限の設定を用意。

{
  "providers": {
    "openrouter": { "apiKey": "sk-or-xxxx" }
  },
  "agents": {
    "defaults": { "model": "anthropic/claude-opus-4-5" }
  }
}

チャットボットを起動:

nanobot onboard          # 設定と作業スペースを初期化
nanobot agent -m "What is 2+2?"

対話モード:

nanobot agent            # REPL を起動

Telegram でチャット

  1. @BotFather でボットを作成し、トークンを取得。
  2. config.json にトークンとユーザー ID を追加。
    "channels": {
      "telegram": { "enabled": true, "token": "YOUR_BOT_TOKEN", "allowFrom": ["YOUR_USER_ID"] }
    }
    
  3. 実行:
    nanobot gateway
    

これで、ボットに送ったメッセージが CLI に表示され、逆も同様に機能します。

vLLM でローカル LLM をデプロイ

# ローカル Llama‑3 モデルを起動
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" } }
エージェントを通常通り実行。

Docker による設定

# イメージをビルド
docker build -t nanobot .
# 一度だけオンボーディング
docker run -v ~/.nanobot:/root/.nanobot --rm nanobot onboard
# ゲートウェイを起動
docker run -v ~/.nanobot:/root/.nanobot -p 18790:18790 nanobot gateway
~/.nanobot を永続化すれば、API キーやワークスペースはコンテナ再起動後も残ります。

スケジュールタスク(Cron)

毎日挨拶を追加:

nanobot cron add --name "daily" --message "Good morning!" --cron "0 9 * * *"
ジョブ一覧:
nanobot cron list
ジョブ削除:
nanobot cron remove <job_id>

nanobot の拡張

  1. skills/ に新しいディレクトリを作成。
  2. tool.py を実装し、class Tool:namedescriptionrun() を追加。
  3. skills/__init__.py スキャナーにスキルを登録。
  4. nanobot gateway を再起動 – 新しいスキルが利用可能になる。

すべてのスキルは純粋な Python で書かれ、実験が容易です。

コントリビューション

目標はミニマルで分かりやすいコードベース。自由にご提案いただけます。 - 新しいスキル(気象、ニュース、GitHub 検索 等)の追加 - Groq Whisper を使った音声文字起こしの実装 - 画像・音声を含むマルチモーダルサポートの拡張 - 推論・計画機能の向上 - Discord、Slack、E‑mail などの追加チャネル統合

Pull Request は歓迎です。既存スタイルに従い、テストを追加していただければ幸いです。


要約

  • nanobot は 4,000 行の Python レポジトリで、完全なパーソナル AI アシスタントを提供します。
  • ローカルまたは Docker で動作し、OpenAI 互換 LLM へ接続、Telegram/WhatsApp へも接続可能。
  • モジュラー設計なのでカスタムスキルを追加したり、タスクをスケジューリング、ローカルモデルへ切り替えたりできます。
  • 研究者、開発者、ホビイストのいずれに対しても、最小限のフリクションで強力な AI 伴侶を手軽に実現できます。

ハッキングを楽しんでください!

この記事を共有