nanobot:4000行で動く超軽量AIエージェント

nanobot:4000行で動く超軽量AIエージェント おすすめAIツール

4,000行で完結するAIエージェントの設計思想

香港大学データサイエンス学部(HKUDS)が開発したnanobotは、従来の大規模AIフレームワークとは一線を画すアプローチを取っています。LangChainやAutoGPTのような既存ツールは多機能ですが、その分コードベースが膨大で、初学者が内部構造を理解するのは容易ではありません。

nanobotはその対極にあります。全体がわずか4,000行のPythonで書かれており、エージェントの動作原理を学びたい開発者や、既存フレームワークの制約から離れて自由に設計したい人に向いています。コードを読めば、AIがどのように情報を集め、判断し、行動するのかが追えるようになっています。

フリーランスのエンジニアやデータアナリストなら、このコンパクトさは大きなメリットです。クライアントの要望に合わせて細かくカスタマイズしたり、特定の業務フローに特化したエージェントを短期間で構築したりできます。大規模ライブラリの更新に振り回されることもありません。

エージェントの動作サイクルとツール実行の仕組み

nanobotの中心にあるのは「エージェントループ」と呼ばれる動作サイクルです。これは3つのステップで構成されています。まず、ContextBuilderが現在の状況や過去の会話、利用可能なツールなどの情報を整理します。次に、その情報をもとにLLM(OpenAIのgpt-4o-miniなど)が次に何をすべきか判断します。最後に、LLMが選んだツールを実際に実行し、結果を次のサイクルに渡します。

ツールは標準で複数用意されています。たとえば、get_current_timeは現在時刻を取得し、calculateは数式を計算し、read_fileやwrite_fileはファイルの読み書きを行います。save_memoryは重要な情報を長期記憶として保存する機能です。これらを組み合わせることで、単純な質問応答を超えた複雑なタスクをこなせます。

たとえば、あるクライアントから「先月のプロジェクトファイルを読み込んで、作業時間の合計を計算し、結果をレポートとして保存して」という依頼があったとします。nanobotならread_fileで情報を取得し、calculateで集計し、write_fileでレポートを出力する、という一連の流れを自動化できます。

長期記憶と日次ジャーナルで文脈を保持

多くのAIチャットボットは会話が終わると記憶を失います。nanobotはこの問題に対処するため、メモリシステムを備えています。重要な情報はMEMORY.mdというマークダウンファイルに保存され、エージェントが起動するたびに読み込まれます。さらに、日付ごとの会話記録は日次ジャーナル(YYYY-MM-DD.md形式)として自動保存されます。

この仕組みは、複数のクライアントを抱えるフリーランスにとって実用的です。たとえば、あるクライアントとの前回の打ち合わせ内容や納品スケジュール、特別な要望などを記録しておけば、次回の会話でエージェントがそれを参照できます。人間のように「前回の話、覚えてる?」という文脈を共有できるわけです。

ただし、この記憶はローカルファイルに保存されるため、複数のデバイスで同じエージェントを使いたい場合は、クラウドストレージとの連携を自分で実装する必要があります。その分、データの管理を自分でコントロールできるとも言えます。

スキルとカスタムツールで機能を拡張

nanobotの拡張性は、スキルシステムとカスタムツールによって支えられています。スキルは、特定の専門知識や作業手順をマークダウン形式で定義したもので、エージェントに新しい能力を教える感覚で追加できます。たとえば、データ分析のスキルを追加すれば、統計処理の手順をエージェントが参照できるようになります。

カスタムツールはもう少し技術的で、Pythonの関数として定義します。公式チュートリアルでは、サイコロを振る、テキストの統計情報を出力する、パスワードを生成するといった例が示されています。これらは一見シンプルですが、実際のビジネスシーンでも応用できます。

たとえば、ライターなら「指定したURLの記事を取得して文字数をカウントする」ツールを作れますし、デザイナーなら「特定のフォルダ内の画像をリサイズして別フォルダに保存する」ツールを実装できます。ノーコードツールでは実現しにくい、細かな業務フローの自動化が可能になります。

サブエージェントとスケジュール実行

nanobotには、メインのエージェントとは別に、バックグラウンドで動くサブエージェントを生成する機能があります。これは、時間のかかるタスクを並行処理したいときに便利です。たとえば、複数のデータソースから情報を収集する作業を複数のサブエージェントに分担させ、結果を統合することができます。

また、APSchedulerというライブラリを使ったcronスケジューリング機能も備えています。これにより、定期的に実行したいタスク(毎朝のニュース収集、週次レポートの作成など)を自動化できます。フリーランスが定型業務を手放し、創造的な仕事に集中するための土台になります。

ただし、これらの機能を使いこなすには、ある程度のプログラミング知識とサーバー運用の経験が必要です。自分のPCで動かすだけなら問題ありませんが、クラウド上で常時稼働させたい場合は、別途環境構築が求められます。

対応プラットフォームと実装例

nanobotはCLI(コマンドライン)での操作が基本ですが、Telegram、WhatsApp、Discordといったチャットプラットフォームにも対応しています。設定ファイルにボットトークンを追加するだけで、普段使っているメッセージアプリから自分専用のAIエージェントを呼び出せるようになります。

公式のチュートリアルでは、13のステップでnanobotの各機能を段階的に学べる構成になっています。インストールからAPI設定、アーキテクチャの理解、カスタムツールの作成、複雑なマルチステップタスクの実行まで、実際に手を動かしながら理解を深められます。エンドツーエンドのデモでは、複数のツールとサブエージェントを組み合わせた研究タスクの自動化が紹介されています。

LLMプロバイダーはOpenAIだけでなく、Anthropic、OpenRouter、DeepSeekなどにも対応しているため、用途やコストに応じて選択できます。また、Brave Search APIと連携すれば、Web検索機能も追加可能です。

フリーランスへの影響

nanobotは、プログラミングができるフリーランスにとって、新しい選択肢を提供します。既存のノーコードツールや大規模フレームワークに満足できない人、自分の業務フローに特化したエージェントを作りたい人には魅力的です。

特に、複数のクライアントを抱え、それぞれに異なる対応が求められる場面で、長期記憶や日次ジャーナルの機能は役立ちます。また、定型業務を自動化することで、単価の高いクリエイティブな仕事に時間を振り分けられる可能性があります。

一方で、導入にはそれなりの学習コストがかかります。Pythonの基礎知識、API操作、ファイル管理などの理解が前提です。また、OpenAIのAPIを使う以上、利用量に応じたコストも発生します。gpt-4o-miniは比較的安価ですが、大量のタスクを自動化する場合は費用の見積もりが必要です。

すぐに収益が上がるツールではありませんが、長期的に見れば、自分専用の業務アシスタントを育てる感覚で使えます。クライアントごとにカスタマイズしたエージェントを提供するサービスも、今後の差別化要素になるかもしれません。

まとめ

nanobotは、軽量で透明性の高いAIエージェントフレームワークです。プログラミングに慣れていて、自分の業務フローに合わせたカスタマイズをしたいフリーランスには試す価値があります。まずは公式のGitHubリポジトリ(https://github.com/HKUDS/nanobot)でコードを確認し、チュートリアルを実際に動かしてみることをおすすめします。自分の業務に合うかどうかは、数時間の検証で判断できるはずです。

参考リンク:https://github.com/HKUDS/nanobot

コメント

タイトルとURLをコピーしました