EmbedClaw — ESP32-S3上にLLMとエージェントを詰め込む組み込みフレームワーク
概要
EmbedClawは、言語モデル(LLM)、外部ツール、エージェントロジック、入出力チャネルを明確に分離して設計した組み込み向けプロジェクトです。ターゲットはESP32-S3のようなリソースが限られたMCUで、C言語とCMakeを用いて軽量に実装されています。アーキテクチャはLLMをリモート(例:Qwen via DashScope)で扱いながら、エージェントやツール呼び出し、チャネル(Feishu/WebSocket等)を組み合わせてデバイス単体で対話・自律動作を可能にすることを狙いとしています。MITライセンスで公開され、開発者向けの参照実装として利用できます。
リポジトリの統計情報
- スター数: 19
- フォーク数: 0
- ウォッチャー数: 19
- コミット数: 2
- ファイル数: 13
- メインの言語: C
主な特徴
- LLM・ツール・エージェント・チャネルの明確な分離によるモジュール化設計
- ESP32-S3を想定した軽量実装(C/CMake)で組み込みデバイスへの展開を容易化
- Qwen(DashScope経由)やTavilyなど外部サービスとの連携を想定
- FeishuやWebSocketを使ったチャネル統合に対応する設計思想
技術的なポイント
EmbedClawの技術的な要点は「分離」と「軽量化」にあります。LLMはデバイス上で巨大モデルを動かすのではなく、DashScope経由のQwenのような外部APIに委譲して推論負荷を回避します。一方で、エージェント(意思決定ロジック)やツールインターフェース、チャネル処理はESP32-S3上で動作させ、ネットワーク入出力や非同期イベントのハンドリング、API呼び出しのオーケストレーションを行います。この構成により、通信が可能な限り最低限の情報を外部に渡し、デバイス側での応答制御や状態管理を維持できます。
実装面ではC言語を選び、CMakeでビルド管理することでクロスコンパイルやMCU環境への統合を容易にしています。設計的には、チャネルごとに抽象化レイヤーを設けて、FeishuやWebSocketなど複数の入出力を共通APIで扱えるようにすることで、拡張性と保守性を高めています。検索や外部ツール(例:Tavily)との連携はツールレイヤーとして分離され、エージェントはこれらをプラグイン的に呼び出して行動を決定します。
また、ESP32-S3のような環境ではメモリ制約と通信レイテンシが課題となるため、メッセージングは最小限のJSONやバイナリプロトコルを想定し、リトライやタイムアウト、逐次的なストリーミング処理で安定性を確保する設計が重要です。EmbedClawはこうした組み込み向けの実践的パターンを示すリファレンスになり得ます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- CMakeLists.txt: file
- LICENSE: file
- README.md: file
- README_ZH.md: file
…他 8 ファイル
まとめ
ESP32-S3上でLLM連携エージェントを動かすための軽量な設計例と実装参照を提供するリポジトリです(MIT)。
リポジトリ情報:
- 名前: EmbedClaw
- 説明: Decouple LLM, Tools, Agent, and Channels—then pack them onto a single ESP32
- スター数: 19
- 言語: C
- URL: https://github.com/wireless-tag-com/EmbedClaw
- オーナー: wireless-tag-com
- アバター: https://avatars.githubusercontent.com/u/68888853?v=4
READMEの抜粋: