Files
mimiclaw/README_JA.md
2026-02-18 19:16:00 +08:00

14 KiB
Raw Blame History

MimiClaw: $5チップで動くポケットAIアシスタント

MimiClaw

License: MIT DeepWiki Discord X

English | 中文 | 日本語

$5チップ上の世界初のAIアシスタントOpenClaw。Linuxなし、Node.jsなし、純粋なCのみ。

MimiClawは小さなESP32-S3ボードをパーソナルAIアシスタントに変えます。USB電源に接続し、WiFiにつなげて、Telegramから話しかけるだけ — どんなタスクも処理し、ローカルメモリで時間とともに成長します — すべて親指サイズのチップ上で。

MimiClawの特徴

  • 超小型 — Linux不要、Node.js不要、無駄なし — 純粋なCのみ
  • 便利 — Telegramでメッセージを送るだけ、あとはお任せ
  • 忠実 — メモリから学習し、再起動しても忘れない
  • 省エネ — USB給電、0.5W、24時間365日稼働
  • お手頃 — ESP32-S3ボード1枚、$5、それだけ

仕組み

Telegramでメッセージを送ると、ESP32-S3がWiFi経由で受信し、エージェントループに送ります — LLMが思考し、ツールを呼び出し、メモリを読み取り — 返答を送り返します。Anthropic (Claude)OpenAI (GPT) の両方をサポートし、実行時に切り替え可能です。すべてが$5のチップ上で動作し、データはすべてローカルのFlashに保存されます。

クイックスタート

必要なもの

  • ESP32-S3開発ボード16MB Flash + 8MB PSRAM搭載、例小智AIボード、約$10
  • USB Type-Cケーブル
  • Telegram Botトークン — Telegramで@BotFatherに話しかけて作成
  • Anthropic APIキーconsole.anthropic.comから取得、または OpenAI APIキーplatform.openai.comから取得

インストール

# まずESP-IDF v5.5+をインストールしてください:
# https://docs.espressif.com/projects/esp-idf/en/v5.5.2/esp32s3/get-started/

git clone https://github.com/memovai/mimiclaw.git
cd mimiclaw

idf.py set-target esp32s3
Ubuntu インストール

推奨ベースライン:

  • Ubuntu 22.04/24.04
  • Python >= 3.10
  • CMake >= 3.16
  • Ninja >= 1.10
  • Git >= 2.34
  • flex >= 2.6
  • bison >= 3.8
  • gperf >= 3.1
  • dfu-util >= 0.11
  • libusb-1.0-0, libffi-dev, libssl-dev

Ubuntu でのインストールとビルド:

sudo apt-get update
sudo apt-get install -y git wget flex bison gperf python3 python3-pip python3-venv \
  cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

./scripts/setup_idf_ubuntu.sh
./scripts/build_ubuntu.sh
macOS インストール

推奨ベースライン:

  • macOS 12/13/14
  • Xcode Command Line Tools
  • Homebrew
  • Python >= 3.10
  • CMake >= 3.16
  • Ninja >= 1.10
  • Git >= 2.34
  • flex >= 2.6
  • bison >= 3.8
  • gperf >= 3.1
  • dfu-util >= 0.11
  • libusb, libffi, openssl

macOS でのインストールとビルド:

xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

./scripts/setup_idf_macos.sh
./scripts/build_macos.sh

設定

MimiClawは2層設定を採用しています:mimi_secrets.hでビルド時のデフォルト値を設定し、シリアルCLIで実行時にオーバーライドできます。CLI設定値はNVS Flashに保存され、ビルド時の値より優先されます。

cp main/mimi_secrets.h.example main/mimi_secrets.h

main/mimi_secrets.hを編集:

#define MIMI_SECRET_WIFI_SSID       "WiFi名"
#define MIMI_SECRET_WIFI_PASS       "WiFiパスワード"
#define MIMI_SECRET_TG_TOKEN        "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
#define MIMI_SECRET_API_KEY         "sk-ant-api03-xxxxx"
#define MIMI_SECRET_MODEL_PROVIDER  "anthropic"     // "anthropic" または "openai"
#define MIMI_SECRET_SEARCH_KEY      ""              // 任意Brave Search APIキー
#define MIMI_SECRET_TAVILY_KEY      ""              // 任意Tavily APIキー優先
#define MIMI_SECRET_PROXY_HOST      ""              // 任意:例 "10.0.0.1"
#define MIMI_SECRET_PROXY_PORT      ""              // 任意:例 "7897"

ビルドとフラッシュ:

# フルビルドmimi_secrets.h変更後はfullclean必須
idf.py fullclean && idf.py build

# シリアルポートを確認
ls /dev/cu.usb*          # macOS
ls /dev/ttyACM*          # Linux

# フラッシュとモニターPORTをあなたのポートに置き換え
# USBアダプタおそらく /dev/cu.usbmodem11401macOSまたは /dev/ttyACM0Linux
idf.py -p PORT flash monitor

重要正しいUSBポートに接続してください ほとんどのESP32-S3ボードには2つのUSB-Cポートがあります。USBネイティブUSB Serial/JTAGと書かれたポートを使用してください。COM外部UARTブリッジと書かれたポートは使わないでください。間違ったポートに接続するとフラッシュ/モニターが失敗します。

参考画像を表示 USBポートに接続、COMポートではありません

CLIコマンドUART/COMポート経由

シリアル接続で設定やデバッグができます。設定コマンドにより再コンパイル不要で設定変更可能 — USBケーブルを挿すだけ。

実行時設定NVSに保存、ビルド時のデフォルト値をオーバーライド

mimi> wifi_set MySSID MyPassword   # WiFiネットワークを変更
mimi> set_tg_token 123456:ABC...   # Telegram Botトークンを変更
mimi> set_api_key sk-ant-api03-... # APIキーを変更AnthropicまたはOpenAI
mimi> set_model_provider openai    # プロバイダーを切替anthropic|openai
mimi> set_model gpt-4o             # LLMモデルを変更
mimi> set_proxy 127.0.0.1 7897    # HTTPプロキシを設定
mimi> clear_proxy                  # プロキシを削除
mimi> set_search_key BSA...        # Brave Search APIキーを設定
mimi> set_tavily_key tvly-...      # Tavily APIキーを設定優先
mimi> config_show                  # 全設定を表示(マスク付き)
mimi> config_reset                 # NVSをクリア、ビルド時デフォルトに戻す

デバッグ・メンテナンス:

mimi> wifi_status              # 接続されていますか?
mimi> memory_read              # ボットが何を覚えているか確認
mimi> memory_write "内容"       # MEMORY.mdに書き込み
mimi> heap_info                # 空きRAMはどれくらい
mimi> session_list             # 全チャットセッションを一覧
mimi> session_clear 12345      # 会話を削除
mimi> heartbeat_trigger           # ハートビートチェックを手動トリガー
mimi> cron_start                  # cronスケジューラを今すぐ開始
mimi> restart                     # 再起動

USBJTAGvs UARTどのポートで何をするか

ほとんどの ESP32-S3 開発ボードには 2つの USB-C ポートがあります:

ポート 用途
USBJTAG idf.py flash、JTAGデバッグ
COMUART REPL CLI、シリアルコンソール

REPLにはUARTCOMポートが必要です。 USBJTAGポートは対話的なREPL入力をサポートしません。

ポート詳細と推奨ワークフロー
ポート ラベル プロトコル
USB USB / JTAG ネイティブ USB Serial/JTAG
COM UART / COM 外部 UART ブリッジCP2102/CH340

ESP-IDFコンソールはデフォルトでUART出力に設定されていますCONFIG_ESP_CONSOLE_UART_DEFAULT=y)。

両方のポートを同時に接続している場合:

  • USBJTAGポートはフラッシュ/ダウンロードを処理し、補助シリアル出力を提供
  • UARTCOMポートはREPL用のメインインタラクティブコンソールを提供
  • macOS では両ポートとも /dev/cu.usbmodem* または /dev/cu.usbserial-* として表示 — ls /dev/cu.usb* で確認
  • Linux では USBJTAGは通常 /dev/ttyACM0、UART は通常 /dev/ttyUSB0

推奨ワークフロー:

# USBJTAGポートでフラッシュ
idf.py -p /dev/cu.usbmodem11401 flash

# UARTCOMポートでREPLを開く
idf.py -p /dev/cu.usbserial-110 monitor
# または任意のシリアルターミナルscreen、minicom、PuTTYボーレート 115200

メモリ

MimiClawはすべてのデータをプレーンテキストファイルとして保存します。直接読み取り・編集可能です

ファイル 説明
SOUL.md ボットの性格 — 編集して振る舞いを変更
USER.md あなたの情報 — 名前、好み、言語
MEMORY.md 長期記憶 — ボットが常に覚えておくべきこと
HEARTBEAT.md タスクリスト — ボットが定期的にチェックして自律的に実行
cron.json スケジュールジョブ — AIが作成した定期・単発タスク
2026-02-05.md 日次メモ — 今日あったこと
tg_12345.jsonl チャット履歴 — ボットとの会話

ツール

MimiClawはAnthropicとOpenAI両方のツール呼び出しをサポート — LLMは会話中にツールを呼び出し、タスクが完了するまでループしますReActパターン

ツール 説明
web_search Tavily優先またはBraveでウェブ検索し、最新情報を取得
get_current_time HTTP経由で現在の日時を取得し、システムクロックを設定
cron_add 定期または単発タスクをスケジュールLLMが自律的にcronジョブを作成
cron_list スケジュール済みのcronジョブを一覧表示
cron_remove IDでcronジョブを削除

ウェブ検索を有効にするには、mimi_secrets.hTavily APIキー(優先、MIMI_SECRET_TAVILY_KEY)またはBrave Search APIキーMIMI_SECRET_SEARCH_KEY)を設定してください。

Cronタスク

MimiClawにはcronスケジューラが内蔵されており、AIが自律的にタスクをスケジュールできます。LLMはcron_addツールで定期ジョブ「N秒ごと」や単発ジョブ「UNIXタイムスタンプで指定」を作成できます。ジョブが発火すると、メッセージがエージェントループに注入され、AIが起動してタスクを処理・応答します。

ジョブはSPIFFScron.json)に永続化され、再起動後も保持されます。活用例:日次サマリー、定期リマインダー、スケジュールチェック。

ハートビート

ハートビートサービスはSPIFFS上のHEARTBEAT.mdを定期的に読み取り、アクション可能なタスクがあるかチェックします。未完了の項目(空行、見出し、チェック済み- [x]以外が見つかると、エージェントループにプロンプトを送信し、AIが自律的に処理します。

これによりMimiClawはプロアクティブなアシスタントになります — HEARTBEAT.mdにタスクを書き込めば、次のハートビートサイクルで自動的に拾い上げて実行しますデフォルト30分ごと

その他の機能

  • WebSocketゲートウェイ — ポート18789、LAN内から任意のWebSocketクライアントで接続
  • OTAアップデート — WiFi経由でファームウェア更新、USB不要
  • デュアルコア — ネットワークI/OとAI処理が別々のCPUコアで動作
  • HTTPプロキシ — CONNECTトンネル対応、制限付きネットワークに対応
  • マルチプロバイダー — Anthropic (Claude) と OpenAI (GPT) の両方をサポート、実行時に切り替え可能
  • Cronスケジューラ — AIが定期・単発タスクを自律的にスケジュール、再起動後も永続化
  • ハートビート — タスクファイルを定期チェックし、AIを自律的に駆動
  • ツール呼び出し — ReActエージェントループ、両プロバイダーでツール呼び出し対応

開発者向け

技術的な詳細はdocs/フォルダにあります:

  • docs/ARCHITECTURE.md — システム設計、モジュール構成、タスクレイアウト、メモリバジェット、プロトコル、Flashパーティション
  • docs/TODO.md — 機能ギャップとロードマップ

貢献

Issue や Pull Request を作成する前に、CONTRIBUTING.md をご確認ください。

コントリビューター

MimiClaw に貢献してくれた皆さんに感謝します。

MimiClaw contributors

ライセンス

MIT

謝辞

OpenClawNanobotにインスパイアされました。MimiClawはコアAIエージェントアーキテクチャを組み込みハードウェア向けに再実装しました — Linuxなし、サーバーなし、$5のチップだけ。

Star History

Star History Chart