zclaw:ESP32上で動作し、サイズが 888 KB 未満の個人用 AI アシスタント

---  
**ポイント**  
- 「personal AI assistant」を「個人用 AI アシスタント」と訳すことで、誰でも使える個別対応型の助手という意味を明確にします。  
- 「under 888 KB」は「サイズが 888 KB 未満」とし、容量制限を具体的に示しています。  
- 「running on an ESP32」を「ESP32上で動作し」と表現し、実行環境を端的に伝えます。

2026/02/21 21:37

zclaw:ESP32上で動作し、サイズが 888 KB 未満の個人用 AI アシスタント --- **ポイント** - 「personal AI assistant」を「個人用 AI アシスタント」と訳すことで、誰でも使える個別対応型の助手という意味を明確にします。 - 「under 888 KB」は「サイズが 888 KB 未満」とし、容量制限を具体的に示しています。 - 「running on an ESP32」を「ESP32上で動作し」と表現し、実行環境を端的に伝えます。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

## Summary
zclaw は ESP32 チップ向けのコンパクトな AI パーソナルアシスタントファームウェアで、C 言語で実装されており、デフォルトビルドでは 888 KiB 以下に収まります。zclaw のロジックと ESP-IDF/FreeRTOS ランタイム、Wi‑Fi/ネットワーキングスタック、TLS/暗号ライブラリ、および証明書バンドルを同梱し、サイズ制限内(ESP32‑S3 ビルドでは約 846 KiB:Wi‑Fi 約 366 KiB、TLS 約 123 KiB、証明書約 90 KiB、ランタイム/ドライバー約 232 KiB)に収めています。  

主な機能にはスケジュールタスク、GPIO コントロール、永続メモリ、および自然言語によるツール構成が含まれます。ユーザーは Telegram コマンド(`/start`、`/help`、`/settings`、`/stop`、`/resume`)を通じて操作します。ファームウェアは Anthropic、OpenAI、および OpenRouter の LLM プロバイダーをサポートしています。

プロビジョニングはスクリプト(`bootstrap.sh`、`install.sh`、`provision.sh`)で自動化され、`--flash-mode secure` オプションを使用してセキュアフラッシュモードで実行できます。フラッシングと消去は `scripts/flash-secure.sh` と `scripts/erase.sh --nvs` または `--all` により処理されます。クイックスタートおよびベンチマークスクリプト(`benchmark.sh`)で、ユーザーはレイテンシとパフォーマンスをテストできます。

zclaw は ESP32‑C3、ESP32‑S3、および ESP32‑C6 で動作し、他のバリアントも手動でターゲット設定すれば動作するはずです。ファームウェアは MIT ライセンス下で配布されており、軽量でオープンソースの AI をエッジデバイスに導入したいホビィスト、開発者、および企業に最適です。

本文

zclaw

ESP32 用の最小限の AI パーソナルアシスタントです。

  • C 言語で実装
  • デフォルトビルドでは、全体(ファームウェア+ランタイム・ライブラリ等)を 888 KiB 以下に抑えることが厳格な目標
  • スケジュールタスク、GPIO 制御、永続メモリ、および自然言語でのカスタムツール構成をサポート

888 KiB は ファームウェア全体 のサイズです。
zclaw ロジック+ESP‑IDF/FreeRTOS ランタイム、Wi‑Fi / ネットワーク、TLS/暗号化、証明書バンドルのオーバーヘッドが含まれます。


すぐに始める

1 行でブートストラップ(macOS/Linux)

bash <(curl -fsSL https://raw.githubusercontent.com/tnm/zclaw/main/scripts/bootstrap.sh)

リポジトリが既にクローンされている場合は

./install.sh
を実行してください。

非対話型インストール

  1. セットアップの注意点
    • bootstrap.sh
      はリポジトリをクローン/更新し、次に
      ./install.sh
      を実行します。
    • フラッシュ上で暗号化された認証情報を使う場合は、インストール時または
      ./scripts/flash-secure.sh
      実行時に secure モード (
      --flash-mode secure
      ) を指定してください。
  2. プロビジョニング
    • フラッシュ後、Wi‑Fi と LLM の認証情報を
      ./scripts/provision.sh
      で設定します。
  3. Telegram コントロールコマンド
    • /start
      ,
      /help
      : コマンドヘルプ表示
    • /settings
      : ボットの状態確認
    • /stop
      : メッセージ受信を一時停止
    • /resume
      : メッセージ受信再開
  4. 簡易検証
./scripts/web-relay.sh
# デバイスが応答できるかテストメッセージを送信
  1. シリアルポートが占有されている場合
./scripts/release-port.sh
  1. ローカル再プロビジョニング(秘密情報の再入力不要)
./scripts/provision-dev.sh --profile <local-profile-file>
  1. 保存済み認証情報/設定だけをリセット
./scripts/erase.sh --nvs
  1. ファームウェア+設定の完全工場出荷状態へ戻す(確認が必要)
./scripts/erase.sh --all

詳細なセットアップ/プロビジョニング手順はドキュメントサイトのインデックスにあります。


特徴ハイライト

機能説明
ChatTelegram またはホスト型 Web リレイ経由で対話
Schedulesタイムゾーン対応(毎日、周期的、一回限り)
Tools既定ツール+ユーザー定義ツール
GPIO読み取り/書き込み制御(ガード機能付き)
Persistence再起動時も保持される永続メモリ
ProvidersAnthropic、OpenAI、OpenRouter など

対応ハードウェア

  • テスト済みターゲット:ESP32‑C3, ESP32‑S3, ESP32‑C6
  • 他の ESP32 バリアントも動作します(ESP‑IDF ターゲット設定が必要な場合があります)

おすすめ入門ボード:Seeed XIAO ESP32‑C3


ローカル開発 & ハッキング

典型的な高速開発サイクル:

./scripts/test.sh host
./scripts/build.sh
./scripts/flash.sh --kill-monitor /dev/cu.usbmodem1101
./scripts/provision-dev.sh --port /dev/cu.usbmodem1101
./scripts/monitor.sh /dev/cu.usbmodem1101

プロファイルは一度設定しておけば再利用可能:

./scripts/provision-dev.sh --write-template   # ~/.config/zclaw/dev.env を作成
# 編集 ~/.config/zclaw/dev.env
./scripts/provision-dev.sh --show-config
./scripts/provision-dev.sh

詳細は Local Dev & Hacking ガイドに記載。


便利スクリプト

スクリプト用途
./scripts/flash-secure.sh
暗号化付きフラッシュ
./scripts/provision.sh
NVS に認証情報をプロビジョン
./scripts/erase.sh
NVS だけ (
--nvs
) またはフルフラッシュ (
--all
) を安全に消去
./scripts/monitor.sh
シリアルモニタ
./scripts/emulate.sh
QEMU プロファイルを実行
./scripts/web-relay.sh
ホストリレイ+モバイルチャット UI
./scripts/benchmark.sh
リレイ/シリアルの遅延ベンチマーク
./scripts/test.sh
ホスト/デバイステストフロー実行
./scripts/test-api.sh
ライブプロバイダー API チェック(手動/ローカル)

サイズ内訳

現在の ESP32‑S3 デフォルトビルド (

idf.py -B build size-components
) のフラッシュ合計:

コンポーネントバイト数KiB合計比率
zclaw アプリロジック (
libmain.a
)
26 430~25.83.1%
Wi‑Fi + ネットワークスタック375 278~366.543.7%
TLS/暗号化スタック125 701~122.814.7%
証明書バンドル+アプリメタデータ92 654~90.510.8%
ESP‑IDF/ランタイム/ドライバ/libc237 889~232.327.7%

同じビルドから取得した

zclaw.bin
865 888 バイト(約 845.6 KiB)で、上限を下回ります。


遅延ベンチマーク

リレイ経路ベンチマーク(Web リレイ処理 + デバイス往復込み):

./scripts/benchmark.sh --mode relay --count 20 --message "ping"

直接シリアルベンチマーク(ホスト往復+初回応答時間)。ファームウェアが

METRIC request ...
行をログすると、レポートにデバイス側のタイミングも含まれます:

./scripts/benchmark.sh --mode serial \
  --serial-port /dev/cu.usbmodem1101 \
  --count 20 --message "ping"

ライセンス

MIT © 2024 zclaw プロジェクト。

同じ日のほかのニュース

一覧に戻る →

2026/02/22 9:29

**Claude コードの使い方:計画と実行の分離**

## 日本語訳: 記事は約9か月の経験に基づくClaude Codeを使用するための規律あるワークフローを提示しています。研究、計画、および実行を分離し、各フェーズが進む前に承認済みのマークダウンアーティファクトを生成することを強調しています。 1. **リサーチ (research.md)** – Claude は対象フォルダーを徹底的にスキャンし、ユーザーが検証しなければならない詳細レポートを作成します。表面的な読み込みは推奨されません。 2. **計画 (plan.md)** – コードスニペット、ファイルパス、トレードオフ、および説明を含む別のマークダウン計画が用意されます。組み込みのプランモードは拒否され、この編集可能なドキュメントが採用されます。 3. **注釈サイクル** – ユーザーはエディタで計画をレビューし、インラインメモや制約を追加して「まだ実装しない」ガード付きで再送します。このサイクルは計画が完全に受理されるまで繰り返されます。 4. **実行** – 実装前に詳細なTODOリストが計画に追加されます。その後、著者は固定プロンプト「implement it all…」を発行し、Claude にすべてを実行させ、計画内の完了状況を更新させ、不必要なコメントや未知のタイプを避け、型チェックを継続的に実行させます。 5. **修正** – 実行中にユーザーは簡潔な修正(多くの場合単一文)を提供します。フロントエンドでの修正にはスクリーンショットや既存パターンへの参照が含まれる場合があります。 6. **制御と永続性** – 著者はアーキテクチャ的なコントロールを決して手放しません。Claude の提案を評価し、必要に応じて変更またはスキップします。3つのフェーズすべてが単一の長時間セッションで行われ、計画ファイルは自動圧縮を通じて保持され、主要な参照として機能します。 マークダウンファイルを共有可変状態として維持することで、このアプローチはノイズの多いチャットインタラクションを減らし、追跡性を向上させ、大規模プロジェクト全体で一貫したインターフェースを保ちます。

2026/02/22 9:21

**回答** 実際には、ほとんどの最新コンパイラは「決定的(deterministic)」です。 同じソースコードと同一のコンパイルオプション(使用するコンパイラのバージョンや基盤となるプラットフォームを含む)を与えれば、何度実行しても同一のオブジェクトファイルまたはバイナリが生成されます。 ただし、いくつか注意すべき点があります。 | 要因 | 決定性への影響 | |------|----------------| | **コンパイラ実装** | よく設計されたコンパイラは決定的ですが、不具合のあるものではそうでない場合もあります。 | | **ビルド環境** | OS、CPU アーキテクチャ、またはライブラリのバージョンが異なると、ソースコード自体に変更がなくても出力が変わることがあります。 | | **非決定的なパス** | 例としてランダム化されたレジスタ割り当てなど、一部の最適化は性能調査のために意図的にばらつきを導入します。 | | **タイムスタンプ/ビルドメタデータ** | バイナリにはしばしばタイムスタンプやビルド識別子が埋め込まれます。 これを削除(例:GCC/Clang の `-Wl,--build-id=none`)すると、バイト単位で完全に同一の出力が得られます。 | したがって、環境を統制し安定したコンパイラリリースを使用すれば決定的な結果が期待できます。 セキュリティや監査目的で確実な再現性が必要な場合は、**Reproducible Builds** のようなツールを使い、非決定的データを除去する手順を踏むと良いでしょう。

## Japanese Translation: 記事は、ソフトウェアビルドにおける真の決定論が実現しづらい理由を説明しています。入力状態のすべての部分―ソースコード、コンパイラフラグ、ツールチェーンバイナリ、環境変数、ファイルシステムレイアウト、ロケール、クロック、カーネル動作、さらにはハードウェア並列性までも―を完全に指定しなければ、「ノイズ」が出力の漂移を引き起こします。 再現可能ビルドの実践は、ツールチェーンを凍結し、タイムスタンプを正規化(`SOURCE_DATE_EPOCH`)、揮発性メタデータを除去し、`-ffile-prefix-map` でパスを標準化し、ヘルミティックコンテナ内でビルドし、アーカイブを決定的に作成(`ar -D`)することでこれらの問題を緩和します。そうしても、GCC 18574 のようなバグが示すように、内部ポインタハッシュの不安定性は同一ソースから生成されるコードを変化させる可能性があります。 コンパイラ契約はビット単位での同一性ではなく、セマンティクス(観測可能な I/O、揮発性アクセス、アトミック保証)の保持に焦点を当てています。不定動作がこの保証を弱めるため、再現可能ビルドはより厳格な要件となります。`__DATE__/__TIME__` のようなエントロピー源、デバッグ情報内の絶対パス、ロケール依存のソート(`LC_ALL`)、並列ビルドの競合順序、ランダムシード、ネットワークフェッチはすべて再現性を破る要因となり得ます。ASLR がコンパイラパスに間接的に影響することも同様です。 歴史的には、2013 年以降の Debian の再現可能ビルド取り組みが、同一ソースから同一アーティファクトを作ることを主流化し、コンパイラ・リンカ・パッケージング・ビルドシステム全体で意図的な設計が必要であることを示しています。 将来に向けて、記事は LLM で支援される開発チームが決定論的検証ゲート―制約付き入力、テスト可能な出力、再現性のある CI パイプライン―を導入して信頼できるデプロイを確保する必要があると主張しています。完全な決定論は必須ではありませんが、予測可能な振舞いと検証可能性は本番システムに不可欠です。 主要な結論は、多くのエコシステムが多くの境界ケースで意図的な取り組みを通じて再現可能ビルドをサポートしているということですが、Ken Thompson の「Reflections on Trusting Trust」からの根本的な警告は残ります―コンパイラは信頼できるように見えても妥協され得るのです。

2026/02/22 5:57

**HN掲示:NVMe→GPU バイパスでCPUを経由せず、単一のRTX 3090上でLlama 3.1 70B を動作させる**

## Japanese Translation: **NTransformer** は、依存関係のない軽量 C++/CUDA エンジンであり、ユーザーが PCIe 上でモデル層をストリーミングし、オプションで高速直接 I/O 用に NVMe を使用することで、70 B 変種を含むフルサイズ Llama モデルをコンシューマ GPU 上で直接実行できるようにします。 - **Resident mode(レジデントモード)**:Llama 3.1‑8 B Q8_0 は 10 GB の VRAM だけで 48.9 トークン/秒を達成し、tiered‑auto モードは 10.3 GB を使用して 48.8 トークン/秒を提供します。 - **70 B model(70 B モデル)**:ストリーミング(mmap)のみでは非常に遅く (0.006 トークン/秒、7.3 GB)、tiered auto はスループットを 0.2 トークン/秒まで向上させ、23.1 GB を消費します。Q4_K_M のレイヤー・スキップを使用すると速度が 0.5 トークン/秒に上昇し、わずか 22.9 GB で済みます。これは単一 RTX 3090 + 48 GB RAM システムでのプレーン mmap に対して 83 倍速です。 - **Bandwidth bottleneck(帯域幅ボトルネック)**:PCIe Gen3 x8 (~6.5 GB/s) がデータ転送を制限します。Q4_K_M は VRAM に 10 層多く収容でき (36 層対 26 層)、tier‑B 転送が削減され、スループットが向上します。 - **Layer‑skip(レイヤー・スキップ)**:コサイン類似度キャリブレーションを使用して、1 トークンあたり 20–80 層を最小限の品質低下でスキップし、大規模モデルの推論速度を向上させます。 - **Architecture(アーキテクチャ)**:3 タイヤの適応型キャッシュが VRAM‑resident、ピン留め RAM、および NVMe/mmap タイヤを自動的にサイズ決定します。エンジンはすべての GGUF 量子化 (Q4_0, Q8_0, Q4_K_M, Q5_K, Q6_K, F16, F32) をサポートし、レジデント、tiered‑auto、layer‑skip、および self‑speculative decoding の 4 種類の自動選択データパスを提供します。 - **System requirements(システム要件)**:Linux (Ubuntu kernel 6.17+)、CUDA 13.1、gcc‑14/g++‑14、CMake 3.24+、NVIDIA GPU CC 8.0+ (RTX 3090 テスト済み)。直接 I/O 用に別の PCIe スロットに NVMe SSD が必要です。セットアップスクリプトはカーネルモジュールをパッチし、AMD IOMMU を無効化し、NVMe を VFIO にバインドします(DMA 分離について注意)。 - **NVMe‑direct pipeline(NVMe 直接パイプライン)**:各層 (~670 MB for 70 B Q6_K) は約 202 ms の NVMe コマンドで CUDA‑ピン留めステージングメモリに読み込まれ、非同期 DMA により GPU バッファへ転送され、デュアルバッファ間で計算と重ね合わせて実行されます。 - **Roadmap(ロードマップ)**:完成済みフェーズ—基盤、SLEP ストリーミング、最適化、NVMe direct。今後の作業には speculative decoding の仕上げと公開 C API の追加が含まれます。 NTransformer は、大規模モデルをコストの高いサーバーインフラなしでコンシューマ GPU 上にローカル実行できるようにすることで、推論コストを低減し、オンプレミス AI サービスのレイテンシを削減し、研究・産業界全体での採用拡大を促進します。

zclaw:ESP32上で動作し、サイズが 888 KB 未満の個人用 AI アシスタント --- **ポイント** - 「personal AI assistant」を「個人用 AI アシスタント」と訳すことで、誰でも使える個別対応型の助手という意味を明確にします。 - 「under 888 KB」は「サイズが 888 KB 未満」とし、容量制限を具体的に示しています。 - 「running on an ESP32」を「ESP32上で動作し」と表現し、実行環境を端的に伝えます。 | そっか~ニュース