世界を動かす技術を、日本語で。

ナノボット:オープンクローの超軽量代替品

2026年2月5日原文(github.com)

概要

nanobot は、約4,000行という 超軽量AIアシスタントClawdbot より99%小型で、 高速・低リソース で動作。 Telegram・WhatsApp・Feishu など多彩なチャネルに対応。 Docker・ローカルLLM・複数プロバイダ の柔軟運用が可能。 研究・技術検証・個人利用 に最適な設計。

nanobotの特徴

  • 超軽量設計 :約4,000行のコード、Clawdbotの1%以下
  • 研究向け :シンプルで読みやすい構造、容易な拡張性
  • 高速起動・省リソース :ミニマル設計による軽快な動作
  • 簡易導入 :ワンクリック展開、即利用開始
  • 主要機能
    • 24時間リアルタイム市場分析
    • フルスタックソフトウェアエンジニア機能
    • スマート日常管理
    • 個人知識アシスタント

インストール方法

  • ソースからインストール(開発推奨)
    • git clone https://github.com/HKUDS/nanobot.git
    • cd nanobot
    • pip 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 onboard
    • vim ~/.nanobot/config.jsonでホスト側編集
    • docker run -v ~/.nanobot:/root/.nanobot -p 18790:18790 nanobot gateway
    • docker 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/:コマンド管理

貢献・ロードマップ

  • PR歓迎 :小型・可読性重視の設計
  • 今後の予定
    • Groq Whisperによる音声文字起こし
    • マルチモーダル(画像・音声・動画対応)
    • 長期記憶機能
    • 複数ステップ推論・計画
    • Discord・Slack・メール・カレンダー連携
    • フィードバック学習による自己改善

nanobot は教育・研究・技術交流目的専用。 興味があれば、GitHubでスターやコントリビュートを推奨。

Hackerたちの意見

リポジトリをざっと見たけど、これはエージェントの本質的な部分だね。小さなループ、プロバイダーの抽象化、ツールのディスパッチ、チャットゲートウェイ。LOCの削減(99%、40万行から4千行)は、RAGパイプライン、プランナー、マルチエージェントのオーケストレーション、UI、運用を省いたことが主な要因だよ。

フォルダを管理することでメモリを管理できるのに、RAGはちょっと変だよね。サブエージェントがいるのにマルチエージェントってのもなんか変な感じ。

RAGはデータが多すぎると壊れるよね。

もし私が誤解してるなら別だけど、プランナーは結構重要な気がする。

じゃあ、これは2日前にここで紹介されたナノクローに「インスパイア」されたってこと?

ハハ、これ見て「これ、数日前にHNのフロントページに載ってなかった?」って思ってたけど、NanoclawとNanobotの違いを完全に見逃してたわ。

興味がある人は https://github.com/gavrielc/nanoclaw

うーん、OpenClawからの私の感想はほぼ同じだな。なんで誰かのクレイジーなバイブコーディングの40万行のCLIラッパーを使うの?50,000行の「ドキュメント」(AIのゴミ;さらに同じAIのゴミの中国語訳がもう50,000行)なんて。自分で30分で必要なものだけを詰め込んだカスタムラッパーを作れるのに。で、このプロジェクトに対する私の反応はまたしても「なんで自分でバイブコーディングしないの?」ってこと。必要なものが全部揃ってるわけじゃないし、自分のバージョンを作るのにかかる時間は数分だしね。多くの人が「バイブコーディングされたソフトウェア」の本質を理解するようになると思うよ。自分の問題を解決するために作ったものだけが価値があるんだから。これは製品じゃないし、決して製品にはならない。

自分でバイブコーディングしないことで、すでにトークンを節約してるよね…個人的には、こういうもののインスタンスを持つメリットは全く感じないから、トークンもサーバー時間も他のリソースも使わないけど、たくさんの人が頭を使わずに済む素晴らしい代替手段を見つけたみたい。

自分で作ることではなく、どれだけコントロールできるかと、どれだけ現実世界を経験したかのトレードオフなんだよね。他人の失敗から学んだ要件を追加するのは、自分でコントロールする開発よりも、オープンなコラボレーションや企業が管理する方が遅い。これが、バイブコーディングされた(初期要件)プロジェクトが始めるのは楽しいけど、リアルな学びがないと進化が難しい理由だよ。バイブコーディングされたプロジェクトは高速度だけど低エントロピー。早く始まるけど、問題の複雑さがクリエイターの即時の焦点を超えると、すぐに停滞しちゃうことが多い。

OpenClawが嫌いな私としては、そのコアにあるエージェントハーネス(pi)は本当に良い。すごくミニマルでデザインも優れてる。カスタム機能を使って構成するように設計されていて、ハッキングも簡単。一方でClaude Codeは膨れ上がってて、完全に意見が強い。OpenClawでみんなが熱狂してるのは自律性なんだよね。これが、RalphやGastownとの共通点で、盛り上がる要因になってる。問題はたくさんあるけど、そこには価値のある部分がある(スティーブ・イェッジの作品と同じように)。

「オープンソース」はもはや「これを作ったからみんな使ってね」ってことじゃなくて、「これをやったらうまくいったから、私が学んだことをシェアするよ」って感じ。そうすれば、誰でも必要なものを取り入れて、いらないものは捨てて、自分の目的に合ったツールを作れる。誰もOpenClawやnanobotを使わせようとしてるわけじゃないけど、今やそれらが存在することで、私たちのエージェントがより良いツールを作るための知識を使える。プロジェクトがたくさんのスターをもらうと、全てのコーディングエージェントがトレーニングされるグローバルトレーニングセットの一部になるし、ツールの有用性もどんどん増していく。私は2つのOpenClawエージェントを動かしていて、どちらも自分のブランチを作って、それぞれのタスクに合わせてメモリツールを修正してる。特にセキュリティ関連の面白いものを取り入れるために、定期的にアップストリームをチェックしてる。もうすぐ、誰も他の人が作ったアプリをスマホにたくさん入れてるだけじゃなくて、自分の日常にぴったり合ったアプリを少数持つようになると思う。

Hacker Newsで議論の続きを見る