<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI &gt; 基盤・ツール on M1KE BL0G</title><link>https://www.m1ke.org/categories/ai_infra/</link><description>Recent content in AI &gt; 基盤・ツール on M1KE BL0G</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><copyright>mike</copyright><atom:link href="https://www.m1ke.org/categories/ai_infra/index.xml" rel="self" type="application/rss+xml"/><item><title>BM25とLLMを使った検索システムの再考</title><link>https://www.m1ke.org/p/bm25%E3%81%A8llm%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%A4%9C%E7%B4%A2%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E5%86%8D%E8%80%83/</link><pubDate>Mon, 28 Sep 2026 08:00:00 +0900</pubDate><guid>https://www.m1ke.org/p/bm25%E3%81%A8llm%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%A4%9C%E7%B4%A2%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E5%86%8D%E8%80%83/</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;最近の検索システムは、BM25のような古典的な手法と、LLM・埋め込みモデルのような手法を組み合わせて作ることが多い&lt;/li&gt;
&lt;li&gt;その前提として、まずBM25という手法自体がBag-of-Wordsとどう違うのかを整理する&lt;/li&gt;
&lt;li&gt;その上で、BM25とLLMをどう組み合わせるかというアーキテクチャを再整理する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bag-of-wordsbowとは"&gt;Bag-of-Words（BoW）とは&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;文書を、単語の出現頻度だけで表現するモデル&lt;/li&gt;
&lt;li&gt;単語の並び順や文法構造は無視し、「どの単語が何回出たか」だけを見る&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例えば、次の2文をBoWで表現すると、以下のようなベクトルになる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;文書A: &amp;#34;猫が魚を食べる&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;文書B: &amp;#34;魚が猫を食べる&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;どちらも{猫:1, 魚:1, 食べる:1, が:1, を:1}という同じベクトルになり、語順の違い（誰が誰を食べたか）はBoW表現からは区別できない。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;検索においては、クエリと文書のBoWベクトルの内積やコサイン類似度を取ることで、素朴な関連度スコアを作れる&lt;/li&gt;
&lt;li&gt;ただし、このままでは「は」「が」「の」のような、どの文書にも高頻度で出る単語（ストップワード）が支配的になり、意味のある単語の重みが埋もれてしまう&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tf-idfという改良"&gt;TF-IDFという改良&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Term Frequency（TF）: その文書内での単語の出現頻度&lt;/li&gt;
&lt;li&gt;Inverse Document Frequency（IDF）: その単語が、全文書の中でどれだけ稀かを表す重み&lt;/li&gt;
&lt;li&gt;TF-IDFは、この2つを掛け合わせることで、「この文書に頻出するが、他の文書にはあまり出ない単語」を重視するようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下のような式で表される。&lt;/p&gt;
$$
\text{tf-idf}(t, d) = \text{tf}(t, d) \times \log\frac{N}{n(t)}
$$&lt;ul&gt;
&lt;li&gt;$\text{tf}(t, d)$：単語$t$の文書$d$内での出現回数&lt;/li&gt;
&lt;li&gt;$N$：全文書数&lt;/li&gt;
&lt;li&gt;$n(t)$：単語$t$を含む文書数&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これでストップワード問題はかなり改善するが、TFの部分は依然、出現回数に比例して線形に増加する。つまり、ある単語を10回書いた文書は、1回しか書いていない文書より単純に10倍関連度が高いと評価されてしまう。&lt;/p&gt;
&lt;h2 id="bm25とは"&gt;BM25とは&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BM25（Okapi BM25）は、TF-IDFをさらに発展させた、Probabilistic Relevance Framework（確率的関連性モデル）に基づくランキング関数&lt;/li&gt;
&lt;li&gt;検索エンジンやElasticsearch・Lucene系のデフォルトスコアリング関数として、実務で広く使われている&lt;/li&gt;
&lt;li&gt;SQLiteに組み込みの全文検索エンジンFTS5も、&lt;code&gt;bm25()&lt;/code&gt;という補助関数でBM25ベースのランキングを提供しており、外部の検索エンジンを立てずに手軽にBM25検索を試せる選択肢になる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;スコアは、クエリ$Q$に含まれる各単語$q_i$について、次の式の合計として計算される。&lt;/p&gt;
$$
\text{score}(D, Q) = \sum_{i=1}^{n} \text{IDF}(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot \left(1 - b + b \cdot \dfrac{|D|}{\text{avgdl}}\right)}
$$&lt;ul&gt;
&lt;li&gt;$f(q_i, D)$：単語$q_i$の文書$D$内での出現回数（TFと同じ）&lt;/li&gt;
&lt;li&gt;$|D|$：文書$D$の長さ、$\text{avgdl}$：コーパス内の文書の平均長&lt;/li&gt;
&lt;li&gt;$k_1$：TFの飽和度を決めるパラメータ（通常1.2〜2.0程度）&lt;/li&gt;
&lt;li&gt;$b$：文書長による正規化の強さを決めるパラメータ（通常0.75程度）&lt;/li&gt;
&lt;li&gt;$\text{IDF}(q_i)$：BM25版のIDF&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BM25版のIDFは、以下のように定義される。&lt;/p&gt;
$$
\text{IDF}(q_i) = \ln\left(\frac{N - n(q_i) + 0.5}{n(q_i) + 0.5} + 1\right)
$$&lt;h3 id="tfの飽和の役割"&gt;TFの飽和（$k_1$の役割）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;BoW・単純なTFでは、出現回数がそのままスコアに比例する&lt;/li&gt;
&lt;li&gt;BM25では、$f(q_i, D)$が分母にも登場するため、出現回数が増えるほどスコアの増加が徐々に緩やかになる（飽和する）&lt;/li&gt;
&lt;li&gt;直感的には、「同じ単語を1回書くのと2回書くのとの差」は大きいが、「50回書くのと51回書くのとの差」はほとんど意味がない、という考え方を反映している&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="文書長の正規化の役割"&gt;文書長の正規化（$b$の役割）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;長い文書は、単語の出現回数がただ長いという理由だけで多くなりやすい&lt;/li&gt;
&lt;li&gt;$b$は、文書長が平均より長い場合にスコアを下げ、短い場合に相対的に有利にしすぎないよう調整する&lt;/li&gt;
&lt;li&gt;$b=0$なら文書長による補正なし、$b=1$なら文書長に完全に比例した補正になる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bowとbm25の違い"&gt;BoWとBM25の違い&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;観点&lt;/th&gt;
&lt;th&gt;Bag-of-Words（生TF）&lt;/th&gt;
&lt;th&gt;BM25&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;出現回数の扱い&lt;/td&gt;
&lt;td&gt;線形に増加&lt;/td&gt;
&lt;td&gt;$k_1$により飽和する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;文書長の補正&lt;/td&gt;
&lt;td&gt;なし&lt;/td&gt;
&lt;td&gt;$b$により正規化する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;単語の重み&lt;/td&gt;
&lt;td&gt;均一（IDFなし）&lt;/td&gt;
&lt;td&gt;IDFで単語の稀さを重視&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;理論的基盤&lt;/td&gt;
&lt;td&gt;特になし&lt;/td&gt;
&lt;td&gt;確率的関連性モデルに基づく&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="具体例で比較する"&gt;具体例で比較する&lt;/h2&gt;
&lt;p&gt;クエリを「猫」とし、次の2つの文書を考える。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文書A: 「猫」を5回繰り返した、長さ5の文書&lt;/li&gt;
&lt;li&gt;文書B: 「猫が座っている机の上」のような、長さ6で「猫」が1回だけ出る文書&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$k_1=1.5$、$b=0.75$、コーパスの平均文書長$\text{avgdl}=5.5$とし、IDFは共通なのでTFの部分だけを比較する。&lt;/p&gt;
&lt;p&gt;生TF（BoW）で比較すると、文書Aは文書Bの5倍のスコアになる。&lt;/p&gt;
$$
\text{文書A（生TF）} = 5, \qquad \text{文書B（生TF）} = 1
$$&lt;p&gt;一方、BM25のTF部分を計算すると、次のようになる。&lt;/p&gt;
$$
\text{文書A} = \frac{5 \times (1.5+1)}{5 + 1.5\left(1-0.75+0.75\times\frac{5}{5.5}\right)} \approx \frac{12.5}{6.40} \approx 1.95
$$$$
\text{文書B} = \frac{1 \times (1.5+1)}{1 + 1.5\left(1-0.75+0.75\times\frac{6}{5.5}\right)} \approx \frac{2.5}{2.60} \approx 0.96
$$&lt;ul&gt;
&lt;li&gt;BoWでは5倍だった差が、BM25では約2倍に縮まっている&lt;/li&gt;
&lt;li&gt;「猫」を5回連呼した文書が、1回しか言及していない文書より多少有利にはなるが、5倍も関連度が高いわけではない、という直感をBM25が反映している&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bm25の限界-語彙のミスマッチ問題"&gt;BM25の限界: 語彙のミスマッチ問題&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BM25はあくまで、クエリと文書の間で単語が一致するかどうかに基づくスパース検索（lexical retrieval）&lt;/li&gt;
&lt;li&gt;「車」と「automobile」、「猫」と「ネコ」のような同義語・表記の違い・言い換えには対応できない&lt;/li&gt;
&lt;li&gt;クエリの単語が文書に一字一句含まれていなければ、意味的には関連していてもスコアが付かない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここでLLM・埋め込みモデルの出番になる。&lt;/p&gt;
&lt;h2 id="llmによる密検索dense-retrieval"&gt;LLMによる密検索（Dense Retrieval）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;クエリと文書を、LLMベースの埋め込みモデル（bi-encoder）でベクトル化し、ベクトル空間上の距離（コサイン類似度など）で関連度を測る&lt;/li&gt;
&lt;li&gt;単語の一致ではなく、意味的な近さで検索できるため、同義語や言い換えにも対応できる&lt;/li&gt;
&lt;li&gt;代表的な手法としてDense Passage Retrieval（DPR）などがある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BM25（スパース検索）とDense Retrieval（密検索）は、得意なものが対照的になる。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;観点&lt;/th&gt;
&lt;th&gt;BM25（スパース）&lt;/th&gt;
&lt;th&gt;Dense Retrieval（密）&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;得意なこと&lt;/td&gt;
&lt;td&gt;固有名詞・専門用語の完全一致&lt;/td&gt;
&lt;td&gt;同義語・言い換え・意味的な近さ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;弱いこと&lt;/td&gt;
&lt;td&gt;語彙のミスマッチ&lt;/td&gt;
&lt;td&gt;稀な固有名詞・数値などの厳密な一致&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;計算コスト&lt;/td&gt;
&lt;td&gt;軽い（転置インデックス）&lt;/td&gt;
&lt;td&gt;埋め込み計算・ベクトル検索が必要&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="ハイブリッド検索"&gt;ハイブリッド検索&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BM25とDense Retrieialを両方使い、それぞれのスコア・順位を統合するのがハイブリッド検索&lt;/li&gt;
&lt;li&gt;統合方法の一つがReciprocal Rank Fusion（RRF）で、各手法での順位の逆数を合計してスコアにする&lt;/li&gt;
&lt;/ul&gt;
$$
\text{RRF}(d) = \sum_{r \in \text{ランキング群}} \frac{1}{k + \text{rank}_r(d)}
$$&lt;ul&gt;
&lt;li&gt;$\text{rank}_r(d)$：ランキング手法$r$における文書$d$の順位、$k$は定数（60程度がよく使われる）&lt;/li&gt;
&lt;li&gt;スコアのスケールが違う手法同士でも、順位ベースなので単純に統合できるのが利点&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="llmによるリランキング"&gt;LLMによるリランキング&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BM25・Dense Retrievalで絞り込んだ上位数十〜数百件の候補に対し、より高精度だが計算コストの高いモデルで再順位付けするのがリランキング&lt;/li&gt;
&lt;li&gt;クエリと候補文書のペアをまとめて入力するCross-Encoderや、LLMに直接「どちらがより関連しているか」を判断させるLLM-as-a-judge方式などがある&lt;/li&gt;
&lt;li&gt;候補全件に適用するのは計算コストが高いため、まず軽量なBM25・Dense Retrievalで絞り込み、上位のみをリランキングするという2段構成が一般的&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ragとの関係"&gt;RAGとの関係&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Retrieval-Augmented Generation（RAG）は、この「検索して、上位の文書をLLMのプロンプトに含めて生成する」というパイプライン全体を指す&lt;/li&gt;
&lt;li&gt;検索の精度が低ければ、無関係な文書がプロンプトに混ざり、LLMの生成結果も悪化する&lt;/li&gt;
&lt;li&gt;つまりRAGの品質は、生成モデル自体の性能だけでなく、BM25・Dense Retrieval・リランキングを含む検索パイプライン全体の設計に大きく依存する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bag-of-Wordsは単語の出現頻度だけを見る素朴な表現で、出現回数に比例してスコアが線形に増える&lt;/li&gt;
&lt;li&gt;TF-IDFはIDFで単語の重要度を重み付けするが、TF自体は依然線形&lt;/li&gt;
&lt;li&gt;BM25は$k_1$でTFの増加を飽和させ、$b$で文書長を正規化する、確率的関連性モデルに基づくランキング関数&lt;/li&gt;
&lt;li&gt;BM25はあくまで単語の一致に基づくスパース検索で、同義語・言い換えには弱い&lt;/li&gt;
&lt;li&gt;LLMベースの埋め込みによる密検索は意味的な近さで検索でき、BM25と相補的な関係にある&lt;/li&gt;
&lt;li&gt;両者をRRFなどで統合するハイブリッド検索や、上位候補をLLMで再順位付けするリランキングが、実務でよく使われる構成&lt;/li&gt;
&lt;li&gt;この検索パイプライン全体の精度が、RAGの生成品質を直接左右する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考文献"&gt;参考文献&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Robertson, S., &amp;amp; Zaragoza, H. (2009). &amp;ldquo;The Probabilistic Relevance Framework: BM25 and Beyond&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Robertson, S. E., &amp;amp; Sparck Jones, K. (1976). &amp;ldquo;Relevance weighting of search terms&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Karpukhin, V. et al. (2020). &amp;ldquo;Dense Passage Retrieval for Open-Domain Question Answering&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Cormack, G. V., Clarke, C. L., &amp;amp; Buettcher, S. (2009). &amp;ldquo;Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Lewis, P. et al. (2020). &amp;ldquo;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI推論スタック整理ノート</title><link>https://www.m1ke.org/p/ai%E6%8E%A8%E8%AB%96%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E6%95%B4%E7%90%86%E3%83%8E%E3%83%BC%E3%83%88/</link><pubDate>Tue, 21 Apr 2026 00:42:16 +0900</pubDate><guid>https://www.m1ke.org/p/ai%E6%8E%A8%E8%AB%96%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E6%95%B4%E7%90%86%E3%83%8E%E3%83%BC%E3%83%88/</guid><description>&lt;img src="https://www.m1ke.org/p/ai%E6%8E%A8%E8%AB%96%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E6%95%B4%E7%90%86%E3%83%8E%E3%83%BC%E3%83%88/deep_learning.jpeg" alt="Featured image of post AI推論スタック整理ノート" /&gt;&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;機械学習のアーキの選定で色々比較したくなったが、用語がたくさんありすぎて混乱してきた&lt;/li&gt;
&lt;li&gt;昔はモデルはPyTorchで作り、GPU推論はCUDAとTensorRT、CPU推論はONNXでOKだった&lt;/li&gt;
&lt;li&gt;しかし、LLM関連やEdge側での実行、CUDA以外にもOpenCL、Vulkanなど色々あるので複雑化している&lt;/li&gt;
&lt;li&gt;例えば、Gemma4 e2bをJetsonでGPUモードで動かす時に、何のbackendで動かせばいいかを調べる必要がある&lt;/li&gt;
&lt;li&gt;そこで、AIに用語を改めてまとめて整理してもらったので、そのノートを残す&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="全体像"&gt;全体像&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[アプリ / サーバ / SDK]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; LM Studio / Ollama / 自作CLI / 自作C++・Pythonアプリ / MediaPipe Tasks API
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[LLM・推論ランタイム]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; llama.cpp / ONNX Runtime / MNN / ncnn / LiteRT / LiteRT-LM / TensorRT-LLM
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[acceleratorの差し込み口]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; CUDA EP / TensorRT EP / 各runtimeの CUDA backend / Vulkan backend / OpenCL backend / WebGPU backend
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[モデル形式・配布形式]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; .onnx / .mnn / .gguf / .tflite / .task / .litertlm / safetensors
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[低レベルGPU/計算API]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; CUDA / TensorRT / Vulkan / OpenCL / OpenGL ES / OpenGL / WebGPU / WebGL
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[OS・SDK・ドライバ]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; JetPack / Jetson Linux / NVIDIA driver / compiler toolchains
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ハードウェア]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; CPU / GPU / NPU / TPU / RAM / ストレージ
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;たとえば &lt;strong&gt;Qwen はモデル&lt;/strong&gt;、&lt;strong&gt;MNN はランタイム&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;.mnn&lt;/code&gt; はそのランタイム向けモデル形式&lt;/strong&gt;、&lt;strong&gt;Vulkan はさらに下のGPU API&lt;/strong&gt;。 ([GitHub][2])&lt;/p&gt;
&lt;h2 id="レイヤー別の全体表"&gt;レイヤー別の全体表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;レイヤー&lt;/th&gt;
&lt;th&gt;何が入るか&lt;/th&gt;
&lt;th&gt;役割&lt;/th&gt;
&lt;th&gt;代表例&lt;/th&gt;
&lt;th&gt;根拠&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0. ハードウェア&lt;/td&gt;
&lt;td&gt;SoC（System on Chip）, CPU, GPU, RAM&lt;/td&gt;
&lt;td&gt;実際に演算する物理マシン&lt;/td&gt;
&lt;td&gt;Jetson Orin Nano, GeForce RTX, NVIDIA RTX PRO、Tegra K1 Soc&lt;/td&gt;
&lt;td&gt;Jetson は edge/embedded、RTX / RTX PRO は desktop / laptop / workstation 側の NVIDIA GPU 群。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1. OS / 配布SDK&lt;/td&gt;
&lt;td&gt;OS, BSP, ドライバ同梱SDK&lt;/td&gt;
&lt;td&gt;ハードを使える状態にする&lt;/td&gt;
&lt;td&gt;JetPack, Jetson Linux, Windows&lt;/td&gt;
&lt;td&gt;Jetson 系と RTX PC / workstation 系で土台が異なる。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. ベンダー計算SDK / 推論SDK / graphics API&lt;/td&gt;
&lt;td&gt;GPU を叩く低レベル基盤や推論SDK&lt;/td&gt;
&lt;td&gt;GPU/アクセラレータ計算や推論最適化&lt;/td&gt;
&lt;td&gt;CUDA, TensorRT, TensorRT-RTX, Vulkan, OpenCL, OpenGL, WebGPU, WebGL&lt;/td&gt;
&lt;td&gt;TensorRT-RTX は RTX GPU 向けの compact inference library。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. モデル形式 / IR / バンドル&lt;/td&gt;
&lt;td&gt;モデルの保存・交換・配布形式&lt;/td&gt;
&lt;td&gt;ランタイムに渡す「中身」&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.onnx&lt;/code&gt;, &lt;code&gt;.mnn&lt;/code&gt;, &lt;code&gt;.gguf&lt;/code&gt;, &lt;code&gt;.tflite&lt;/code&gt;, &lt;code&gt;.task&lt;/code&gt;, &lt;code&gt;.litertlm&lt;/code&gt;, &lt;code&gt;.safetensors&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ONNX は open format、&lt;code&gt;.task&lt;/code&gt; は MediaPipe 向け self-contained package、&lt;code&gt;.litertlm&lt;/code&gt; は LiteRT-LM 向け形式。 ([ONNX Runtime][4])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. 汎用推論ランタイム&lt;/td&gt;
&lt;td&gt;モデルを実行する本体&lt;/td&gt;
&lt;td&gt;推論実行、スケジューリング、メモリ管理&lt;/td&gt;
&lt;td&gt;ONNX Runtime, MNN, ncnn, LiteRT&lt;/td&gt;
&lt;td&gt;ORT は cross-platform accelerator、MNN は lightweight inference engine、LiteRT は on-device framework、ncnn は Vulkan 利用の軽量推論系。 ([ONNX Runtime][4])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. LLM専用ランタイム&lt;/td&gt;
&lt;td&gt;LLM特有の処理を担当&lt;/td&gt;
&lt;td&gt;KV cache, sampler, stateful inference&lt;/td&gt;
&lt;td&gt;llama.cpp, LiteRT-LM, TensorRT-LLM, TensorRT Edge-LLM, MNN-LLM&lt;/td&gt;
&lt;td&gt;TensorRT Edge-LLM は embedded 向け C++ LLM/VLM runtime。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. バックエンド / Execution Provider&lt;/td&gt;
&lt;td&gt;下のハードaccelerator先への接続&lt;/td&gt;
&lt;td&gt;どのGPU/NPU/CPUで実行するか選ぶ&lt;/td&gt;
&lt;td&gt;CUDA EP, TensorRT EP, Vulkan backend, OpenCL backend, WebGPU backend&lt;/td&gt;
&lt;td&gt;ORT は EP でaccelerator先を差し替え、LiteRT の Linux GPU backend は WebGPU(Vulkan) 。 ([ONNX Runtime][6])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7. アプリ / API / 配布SDK&lt;/td&gt;
&lt;td&gt;ユーザーが触る入口&lt;/td&gt;
&lt;td&gt;実アプリとして使う&lt;/td&gt;
&lt;td&gt;MediaPipe Tasks, LLM Inference API, CLI, Python binding&lt;/td&gt;
&lt;td&gt;MediaPipe Tasks は solution API、LLM Inference API は on-device LLM 用、Gemma docs では LiteRT-LM CLI も案内されている。 ([Google AI for Developers][7])&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="用語整理"&gt;用語整理&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;用語&lt;/th&gt;
&lt;th&gt;レイヤー&lt;/th&gt;
&lt;th&gt;分類&lt;/th&gt;
&lt;th&gt;ひとことで&lt;/th&gt;
&lt;th&gt;典型的に何の上で動くか / 何を使うか&lt;/th&gt;
&lt;th&gt;Jetson Orin Nano文脈&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Jetson Orin Nano&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;ハードウェア&lt;/td&gt;
&lt;td&gt;NVIDIA の edge/embedded 向け SoC ボード&lt;/td&gt;
&lt;td&gt;JetPack / Jetson Linux の上&lt;/td&gt;
&lt;td&gt;物理マシン本体。 ([NVIDIA Developer][1])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JetPack&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;配布SDK&lt;/td&gt;
&lt;td&gt;Jetson 向け OS + AI stack まとめ&lt;/td&gt;
&lt;td&gt;Jetson Linux, CUDA, TensorRT, cuDNN などを同梱&lt;/td&gt;
&lt;td&gt;Jetson 開発の土台。 ([NVIDIA Developer][1])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CUDA&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;低レベル計算基盤&lt;/td&gt;
&lt;td&gt;NVIDIA GPU 計算の本流&lt;/td&gt;
&lt;td&gt;NVIDIA GPU / CUDA driver&lt;/td&gt;
&lt;td&gt;Jetson で NVIDIA 流に速くする土台。 ([NVIDIA Docs][3])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cuDNN&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2〜3&lt;/td&gt;
&lt;td&gt;DNNライブラリ&lt;/td&gt;
&lt;td&gt;NVIDIA の DL primitives&lt;/td&gt;
&lt;td&gt;CUDA の上&lt;/td&gt;
&lt;td&gt;JetPack に同梱。多くのフレームワークが内部利用。 ([NVIDIA Developer][1])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2〜3&lt;/td&gt;
&lt;td&gt;推論SDK&lt;/td&gt;
&lt;td&gt;NVIDIA GPU 向け推論最適化/実行SDK&lt;/td&gt;
&lt;td&gt;CUDA の上&lt;/td&gt;
&lt;td&gt;Jetson/NVIDIA 本流の推論高速化。 ([NVIDIA Docs][8])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT-LLM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;LLM専用ランタイム&lt;/td&gt;
&lt;td&gt;TensorRT 系の LLM 特化版&lt;/td&gt;
&lt;td&gt;NVIDIA GPU, TensorRT&lt;/td&gt;
&lt;td&gt;Qwen3 例もある。Jetson/NVIDIA LLM 本流の一つ。 ([NVIDIA GitHub][9])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenCL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;標準 compute API&lt;/td&gt;
&lt;td&gt;ベンダー横断の GPU/CPU 計算API&lt;/td&gt;
&lt;td&gt;各ベンダーの OpenCL 実装&lt;/td&gt;
&lt;td&gt;NVIDIA 専用ではない。 ([The Khronos Group][10])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PoCL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;OpenCL実装&lt;/td&gt;
&lt;td&gt;OpenCL の実装の1つ&lt;/td&gt;
&lt;td&gt;Clang/LLVM を利用、CPU/一部GPU targets&lt;/td&gt;
&lt;td&gt;OpenCL “規格” ではなく “実装”。 ([PoCL][11])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vulkan&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;低レベル graphics+compute API&lt;/td&gt;
&lt;td&gt;low-level GPU API&lt;/td&gt;
&lt;td&gt;GPU driver の上&lt;/td&gt;
&lt;td&gt;Jetson は Vulkan をサポート。 ([Vulkan][12])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenGL / OpenGL ES&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;graphics API&lt;/td&gt;
&lt;td&gt;主に描画 API&lt;/td&gt;
&lt;td&gt;GPU driver の上&lt;/td&gt;
&lt;td&gt;Jetson がサポート。推論ランタイム内部の補助経路に出ることもある。 ([The Khronos Group][13])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WebGL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Web graphics API&lt;/td&gt;
&lt;td&gt;ブラウザ向け 3D API&lt;/td&gt;
&lt;td&gt;HTML Canvas 上、OpenGL ES ベース&lt;/td&gt;
&lt;td&gt;native Jetson 推論の中心ではない。 ([The Khronos Group][14])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WebGPU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Web/汎用GPU API&lt;/td&gt;
&lt;td&gt;Web 向けの新しい GPU API&lt;/td&gt;
&lt;td&gt;Vulkan / Metal / D3D12 等にマップされる&lt;/td&gt;
&lt;td&gt;LiteRT Linux GPU backend の表記に登場。 ([W3C][15])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ONNX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;モデル形式 / IR&lt;/td&gt;
&lt;td&gt;open model format&lt;/td&gt;
&lt;td&gt;ONNX Runtime, TensorRT などへ渡す&lt;/td&gt;
&lt;td&gt;形式であってランタイムではない。 ([ONNX Runtime][4])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.onnx&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;ファイル形式&lt;/td&gt;
&lt;td&gt;ONNX の実ファイル&lt;/td&gt;
&lt;td&gt;ORT, TensorRT, MNN converter など&lt;/td&gt;
&lt;td&gt;中立的な受け渡し形式。 ([ONNX Runtime][4])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TFLite / &lt;code&gt;.tflite&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;モデル形式&lt;/td&gt;
&lt;td&gt;LiteRT 系のモデル形式&lt;/td&gt;
&lt;td&gt;LiteRT / MediaPipe&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.task&lt;/code&gt; や &lt;code&gt;.litertlm&lt;/code&gt; の元になることがある。 ([Google AI for Developers][16])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.task&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;タスクバンドル&lt;/td&gt;
&lt;td&gt;モデル + tokenizer + metadata の bundle&lt;/td&gt;
&lt;td&gt;MediaPipe Tasks / LLM Inference API&lt;/td&gt;
&lt;td&gt;単体モデルではなく配布バンドル。 ([Google AI for Developers][17])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.litertlm&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;LLMバンドル/形式&lt;/td&gt;
&lt;td&gt;LiteRT-LM runtime 向け形式&lt;/td&gt;
&lt;td&gt;LiteRT-LM&lt;/td&gt;
&lt;td&gt;Gemma の LiteRT-LM 配布で登場。 ([Google AI for Developers][18])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.mnn&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;モデル形式&lt;/td&gt;
&lt;td&gt;MNN 用のモデル形式&lt;/td&gt;
&lt;td&gt;MNN / MNN-LLM&lt;/td&gt;
&lt;td&gt;ONNX などから変換される。 ([GitHub][19])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GGUF / &lt;code&gt;.gguf&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;モデル形式&lt;/td&gt;
&lt;td&gt;llama.cpp 系で一般的な配布形式&lt;/td&gt;
&lt;td&gt;llama.cpp, LM Studio など&lt;/td&gt;
&lt;td&gt;Qwen/Gemma の GGUF 配布も多い。Qwen3 README は GGUF 利用例を案内。 ([GitHub][2])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;safetensors&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;モデル重み形式&lt;/td&gt;
&lt;td&gt;Hugging Face 系で一般的&lt;/td&gt;
&lt;td&gt;PyTorch/Transformers などから変換元に&lt;/td&gt;
&lt;td&gt;Gemma → &lt;code&gt;.task&lt;/code&gt; 変換元として公式に案内。 ([Google AI for Developers][17])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ONNX Runtime&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;汎用推論ランタイム&lt;/td&gt;
&lt;td&gt;ONNX を実行する engine&lt;/td&gt;
&lt;td&gt;CPU / CUDA EP / TensorRT EP / ほか&lt;/td&gt;
&lt;td&gt;中立的で移植性が高い。 ([ONNX Runtime][4])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MNN&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;汎用推論ランタイム&lt;/td&gt;
&lt;td&gt;Alibaba の軽量推論 engine&lt;/td&gt;
&lt;td&gt;CPU / Vulkan など&lt;/td&gt;
&lt;td&gt;Qwen を含む on-device 系で使われる。 ([GitHub][20])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ncnn&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;汎用推論ランタイム&lt;/td&gt;
&lt;td&gt;Tencent の軽量推論 engine&lt;/td&gt;
&lt;td&gt;CPU / Vulkan&lt;/td&gt;
&lt;td&gt;Jetson でも Vulkan 前提で使いうる。 ([GitHub][21])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LiteRT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;on-device推論基盤&lt;/td&gt;
&lt;td&gt;Google の on-device ML/GenAI framework&lt;/td&gt;
&lt;td&gt;CPU/GPU/NPU&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.tflite&lt;/code&gt; と &lt;code&gt;.litertlm&lt;/code&gt; を扱う基盤。 ([Google AI for Developers][22])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;llama.cpp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;LLMランタイム&lt;/td&gt;
&lt;td&gt;C/C++ のローカル LLM engine&lt;/td&gt;
&lt;td&gt;CPU, CUDA, Vulkan など&lt;/td&gt;
&lt;td&gt;Qwen/Gemma をローカルで動かす代表格。 ([GitHub][23])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LiteRT-LM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;LLMランタイム&lt;/td&gt;
&lt;td&gt;LiteRT 上の LLM 専用 framework&lt;/td&gt;
&lt;td&gt;LiteRT / CPU/GPU/NPU backends&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.litertlm&lt;/code&gt; を動かす本体。 ([Google AI for Developers][5])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MNN-LLM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;LLMランタイム&lt;/td&gt;
&lt;td&gt;MNN 上の LLM engine&lt;/td&gt;
&lt;td&gt;MNN&lt;/td&gt;
&lt;td&gt;export と inference を提供。 ([GitHub][24])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CUDA EP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Execution Provider&lt;/td&gt;
&lt;td&gt;ORT から CUDA を使う差し込み口&lt;/td&gt;
&lt;td&gt;ONNX Runtime + CUDA&lt;/td&gt;
&lt;td&gt;ORT で NVIDIA GPU を使う道。 ([ONNX Runtime][25])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT EP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Execution Provider&lt;/td&gt;
&lt;td&gt;ORT から TensorRT を使う差し込み口&lt;/td&gt;
&lt;td&gt;ONNX Runtime + TensorRT&lt;/td&gt;
&lt;td&gt;ORT で NVIDIA 向け高速化する道。 ([ONNX Runtime][26])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vulkan backend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;runtime backend&lt;/td&gt;
&lt;td&gt;Vulkan を使う実行経路&lt;/td&gt;
&lt;td&gt;ncnn, llama.cpp など&lt;/td&gt;
&lt;td&gt;Jetson で使える可能性が高い backend。 ([GitHub][21])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenCL backend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;runtime backend&lt;/td&gt;
&lt;td&gt;OpenCL を使う実行経路&lt;/td&gt;
&lt;td&gt;一部 runtimes / LiteRT Android&lt;/td&gt;
&lt;td&gt;Jetson で主役とは限らない。 ([The Khronos Group][10])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WebGPU backend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;runtime backend&lt;/td&gt;
&lt;td&gt;WebGPU を使う実行経路&lt;/td&gt;
&lt;td&gt;LiteRT Linux GPU backend&lt;/td&gt;
&lt;td&gt;LiteRT Linux は &lt;code&gt;WebGPU (Vulkan)&lt;/code&gt; と明記。 ([Google AI for Developers][27])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MediaPipe Tasks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;API/SDK&lt;/td&gt;
&lt;td&gt;使いやすい solution API&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.task&lt;/code&gt; を読み込む&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.task&lt;/code&gt; バンドルの受け皿。 ([Google AI for Developers][7])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LLM Inference API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;API/SDK&lt;/td&gt;
&lt;td&gt;MediaPipe の on-device LLM API&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.task&lt;/code&gt; bundle など&lt;/td&gt;
&lt;td&gt;Android guide では LiteRT-LM への移行推奨も記載。 ([Google AI for Developers][16])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Qwen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3の中身 / モデルそのもの&lt;/td&gt;
&lt;td&gt;モデル系列&lt;/td&gt;
&lt;td&gt;Alibaba Cloud の LLM family&lt;/td&gt;
&lt;td&gt;Transformers, llama.cpp, MNN, TensorRT-LLM 等で実行可能&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MNNそのものではない&lt;/strong&gt;。 ([GitHub][2])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemma&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3の中身 / モデルそのもの&lt;/td&gt;
&lt;td&gt;モデル系列&lt;/td&gt;
&lt;td&gt;Google 系のオープンモデル family&lt;/td&gt;
&lt;td&gt;LiteRT-LM, llama.cpp, LM Studio など&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.task&lt;/code&gt; / &lt;code&gt;.litertlm&lt;/code&gt; 系とも接続。 ([Google AI for Developers][28])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GeForce RTX / NVIDIA RTX PRO&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;ハードウェア / GPU製品ライン&lt;/td&gt;
&lt;td&gt;NVIDIA の desktop / laptop / workstation 向け GPU 群&lt;/td&gt;
&lt;td&gt;Windows / Linux + NVIDIA driver の上&lt;/td&gt;
&lt;td&gt;Jetson とは別の PC / workstation 側の比較対象。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT-RTX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2〜4&lt;/td&gt;
&lt;td&gt;推論SDK / inference library&lt;/td&gt;
&lt;td&gt;RTX GPU 向けの軽量 TensorRT 系推論ライブラリ&lt;/td&gt;
&lt;td&gt;NVIDIA RTX GPU / Windows / Linux&lt;/td&gt;
&lt;td&gt;RTX PC 向け。&lt;strong&gt;Edge / Embedded 向けではない&lt;/strong&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT Edge-LLM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;LLM / VLM専用ランタイム&lt;/td&gt;
&lt;td&gt;embedded 向けの軽量 C++ inference runtime&lt;/td&gt;
&lt;td&gt;Jetson / DRIVE + TensorRT + CUDA&lt;/td&gt;
&lt;td&gt;Jetson/DRIVE 系の edge runtime。&lt;strong&gt;現時点では JetPack 7.1 / Jetson Thor での公式案内が強い&lt;/strong&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="よくある混同"&gt;よくある混同&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;よくある混同&lt;/th&gt;
&lt;th&gt;正しい整&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Qwen は MNN か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;Qwen はモデル&lt;/strong&gt;、&lt;strong&gt;MNN はランタイム&lt;/strong&gt;。Qwen3 公式 README では llama.cpp / MNN / TensorRT-LLM など複数の実行先が案内されている。 ([GitHub][2])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.task&lt;/code&gt; はモデル形式か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;半分 yes 、より正確には &lt;strong&gt;MediaPipe 向け task bundle&lt;/strong&gt; 。モデル本体に tokenizer と metadata を同梱した self-contained package 。 ([Google AI for Developers][17])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.litertlm&lt;/code&gt; は LiteRT-LM 専用か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;実務上は &lt;strong&gt;LiteRT-LM runtime 向けの LLM bundle/format&lt;/strong&gt; と考えてよい。Gemma docs でも LiteRT-LM CLI で &lt;code&gt;.litertlm&lt;/code&gt; を使うと案内されている。 ([Google AI for Developers][18])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ONNX はランタイムか？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;ONNX は形式&lt;/strong&gt;、&lt;strong&gt;ONNX Runtime は実行エンジン&lt;/strong&gt;。 ([ONNX Runtime][4])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PoCL は OpenCL か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;OpenCL は規格&lt;/strong&gt;、&lt;strong&gt;PoCL はその実装の1つ&lt;/strong&gt;。 ([The Khronos Group][10])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WebGL と WebGPU は同じか？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。WebGL は &lt;strong&gt;OpenGL ES ベースの web graphics API&lt;/strong&gt;、WebGPU は &lt;strong&gt;より新しい web 向け GPU API&lt;/strong&gt; で、graphics だけでなく compute も重視している。 ([The Khronos Group][14])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vulkan と CUDA は同じか？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。どちらも GPU を使えるが、CUDA は &lt;strong&gt;NVIDIA 専用の計算基盤&lt;/strong&gt;、Vulkan は &lt;strong&gt;標準の graphics+compute API&lt;/strong&gt; 。 ([NVIDIA Docs][3])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LiteRT-LM は TensorRT-LLM の別名か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。LiteRT-LM は &lt;strong&gt;Google AI Edge 側&lt;/strong&gt;、TensorRT-LLM は &lt;strong&gt;NVIDIA 側&lt;/strong&gt; の別スタック。 ([Google AI for Developers][5])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT-RTX は TensorRT-LLM の RTX版か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;TensorRT-RTX は RTX向けの一般推論ライブラリ&lt;/strong&gt;。公式 docs でも native LLM は out of the box ではなく、TensorRT-LLM との統合も現時点では unavailable とされている。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TensorRT Edge-LLM は TensorRT-LLM の別名か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;TensorRT-LLM は desktop / data center を含む NVIDIA GPU 向けの LLM 最適化ライブラリ&lt;/strong&gt;、&lt;strong&gt;TensorRT Edge-LLM は Jetson / DRIVE 向けの embedded C++ runtime&lt;/strong&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GGML と GGUF は同じか？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;GGML は tensor library / 実行基盤寄りのプロジェクト&lt;/strong&gt;、&lt;strong&gt;GGUF はモデルを保存するファイル形式&lt;/strong&gt;。GGUF は GGML および GGML ベース executor 向けの推論用モデル形式で、旧 GGML / GGMF / GGJT 形式の後継。 ([GitHub][30])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GGUF は量子化方式か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;GGUF は形式&lt;/strong&gt;。中に &lt;code&gt;Q4_K_M&lt;/code&gt; などの量子化済み重みを入れられるが、GGUF 自体は「量子化アルゴリズム」ではない。llama.cpp ではモデルを GGUF 形式で保存・変換して使う。 ([GitHub][31])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPTQ は GGUF の別名か？&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No。&lt;strong&gt;GPTQ は post-training quantization 手法&lt;/strong&gt;。主に Transformer / GPT 系モデルの重みを 2/3/4bit などへ圧縮するための量子化アルゴリズムで、GGUF のようなファイル形式や GGML のようなランタイムではない。 ([GitHub][32])&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="具体的な選定手順"&gt;具体的な選定手順&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA 本流
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PyTorch / ONNX / 一部 LLM&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TensorRT / TensorRT-LLM / ONNX Runtime + CUDA or TensorRT EP&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CUDA / TensorRT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jetson Orin Nano&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;これは JetPack に CUDA・TensorRT が入っているので、Jetson では最も自然な本流。 ([NVIDIA Developer][1])&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ローカル LLM 汎用路線
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GGUF モデル&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;llama.cpp&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CUDA backend / Vulkan backend / CPU&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jetson Orin Nano&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;llama.cpp は複数 backend を同時ビルドでき、CUDA と Vulkan を併用可能。 ([GitHub][29])&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Google AI Edge 路線
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.litertlm&lt;/code&gt; または &lt;code&gt;.task&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LiteRT-LM / MediaPipe LLM Inference API&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LiteRT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linux GPU backend = WebGPU (Vulkan)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jetson Orin Nano&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Gemma の LiteRT-LM 系を Jetson で動かすなら、この理解がいちばん自然。 ([Google AI for Developers][18])&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;軽量 edge 推論路線（mnn）
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.mnn&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MNN / MNN-LLM&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulkan など&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jetson Orin Nano&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;軽量 edge 推論路線（ncnn）
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ncnn モデル&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ncnn&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulkan&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jetson Orin Nano&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;MNN も ncnn も edge/embedded 色が強い。 ([GitHub][20])&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;RTX PC / workstation 路線
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ONNX モデル / CNN / Diffusion / Speech&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TensorRT-RTX&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GeForce RTX / NVIDIA RTX PRO&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows / Linux&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;これは Jetson ではなく、RTX PC / workstation 向けの NVIDIA 路線&lt;/li&gt;
&lt;li&gt;TensorRT-RTX は RTX GPU 向けの compact inference library で、build once / deploy anywhere に寄せた設計&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[1]: &lt;a class="link" href="https://developer.nvidia.com/embedded/jetpack-sdk-62%22JetPack" target="_blank" rel="noopener"
&gt;https://developer.nvidia.com/embedded/jetpack-sdk-62"JetPack&lt;/a&gt; SDK&amp;quot;
[2]: &lt;a class="link" href="https://github.com/QwenLM/qwen3" target="_blank" rel="noopener"
&gt;https://github.com/QwenLM/qwen3&lt;/a&gt; &amp;ldquo;Qwen3 is the large language model series &amp;hellip;&amp;rdquo;
[3]: &lt;a class="link" href="https://docs.nvidia.com/cuda/cuda-programming-guide/" target="_blank" rel="noopener"
&gt;https://docs.nvidia.com/cuda/cuda-programming-guide/&lt;/a&gt; &amp;ldquo;CUDA Programming Guide&amp;rdquo;
[4]: &lt;a class="link" href="https://onnxruntime.ai/docs/" target="_blank" rel="noopener"
&gt;https://onnxruntime.ai/docs/&lt;/a&gt; &amp;ldquo;ONNX Runtime | onnxruntime&amp;rdquo;
[5]: &lt;a class="link" href="https://ai.google.dev/edge/litert-lm/overview" target="_blank" rel="noopener"
&gt;https://ai.google.dev/edge/litert-lm/overview&lt;/a&gt; &amp;ldquo;LiteRT-LM Overview | Google AI Edge&amp;rdquo;
[6]: &lt;a class="link" href="https://onnxruntime.ai/docs/execution-providers/" target="_blank" rel="noopener"
&gt;https://onnxruntime.ai/docs/execution-providers/&lt;/a&gt; &amp;ldquo;ONNX Runtime Execution Providers&amp;rdquo;
[7]: &lt;a class="link" href="https://ai.google.dev/edge/mediapipe/solutions/tasks" target="_blank" rel="noopener"
&gt;https://ai.google.dev/edge/mediapipe/solutions/tasks&lt;/a&gt; &amp;ldquo;MediaPipe Tasks | Google AI Edge&amp;rdquo;
[8]: &lt;a class="link" href="https://docs.nvidia.com/deeplearning/tensorrt/latest/index.html" target="_blank" rel="noopener"
&gt;https://docs.nvidia.com/deeplearning/tensorrt/latest/index.html&lt;/a&gt; &amp;ldquo;NVIDIA TensorRT Documentation&amp;rdquo;
[9]: &lt;a class="link" href="https://nvidia.github.io/TensorRT-LLM/overview.html" target="_blank" rel="noopener"
&gt;https://nvidia.github.io/TensorRT-LLM/overview.html&lt;/a&gt; &amp;ldquo;Overview — TensorRT LLM&amp;rdquo;
[10]: &lt;a class="link" href="https://www.khronos.org/opencl/" target="_blank" rel="noopener"
&gt;https://www.khronos.org/opencl/&lt;/a&gt; &amp;ldquo;OpenCL - The Open Standard for Parallel Programming of &amp;hellip;&amp;rdquo;
[11]: &lt;a class="link" href="https://portablecl.org/" target="_blank" rel="noopener"
&gt;https://portablecl.org/&lt;/a&gt; &amp;ldquo;Portable Computing Language: PoCL&amp;rdquo;
[12]: &lt;a class="link" href="https://www.vulkan.org/" target="_blank" rel="noopener"
&gt;https://www.vulkan.org/&lt;/a&gt; &amp;ldquo;Home | Vulkan | Cross platform 3D Graphics&amp;rdquo;
[13]: &lt;a class="link" href="https://www.khronos.org/opengl/" target="_blank" rel="noopener"
&gt;https://www.khronos.org/opengl/&lt;/a&gt; &amp;ldquo;OpenGL - The Industry&amp;rsquo;s Foundation for High Performance &amp;hellip;&amp;rdquo;
[14]: &lt;a class="link" href="https://www.khronos.org/webgl/" target="_blank" rel="noopener"
&gt;https://www.khronos.org/webgl/&lt;/a&gt; &amp;ldquo;WebGL - Low-Level 3D Graphics API Based on OpenGL ES&amp;rdquo;
[15]: &lt;a class="link" href="https://www.w3.org/TR/webgpu/" target="_blank" rel="noopener"
&gt;https://www.w3.org/TR/webgpu/&lt;/a&gt; &amp;ldquo;WebGPU&amp;rdquo;
[16]: &lt;a class="link" href="https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference" target="_blank" rel="noopener"
&gt;https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference&lt;/a&gt; &amp;ldquo;LLM Inference guide | Google AI Edge&amp;rdquo;
[17]: &lt;a class="link" href="https://ai.google.dev/gemma/docs/conversions/hf-to-mediapipe-task" target="_blank" rel="noopener"
&gt;https://ai.google.dev/gemma/docs/conversions/hf-to-mediapipe-task&lt;/a&gt; &amp;ldquo;Convert Hugging Face Safetensors to MediaPipe Task | Gemma&amp;rdquo;
[18]: &lt;a class="link" href="https://ai.google.dev/edge/litert/next/litert_lm_npu" target="_blank" rel="noopener"
&gt;https://ai.google.dev/edge/litert/next/litert_lm_npu&lt;/a&gt; &amp;ldquo;Run LLMs using LiteRT-LM | Google AI Edge&amp;rdquo;
[19]: &lt;a class="link" href="https://github.com/alibaba/MNN/blob/master/tools/converter/README.md" target="_blank" rel="noopener"
&gt;https://github.com/alibaba/MNN/blob/master/tools/converter/README.md&lt;/a&gt; &amp;ldquo;MNN/tools/converter/README.md at master - GitHub&amp;rdquo;
[20]: &lt;a class="link" href="https://github.com/alibaba/mnn" target="_blank" rel="noopener"
&gt;https://github.com/alibaba/mnn&lt;/a&gt; &amp;ldquo;MNN: A blazing-fast, lightweight inference engine battle- &amp;hellip;&amp;rdquo;
[21]: &lt;a class="link" href="https://github.com/Tencent/ncnn/wiki/how-to-build" target="_blank" rel="noopener"
&gt;https://github.com/Tencent/ncnn/wiki/how-to-build&lt;/a&gt; &amp;ldquo;how to build · Tencent/ncnn Wiki&amp;rdquo;
[22]: &lt;a class="link" href="https://ai.google.dev/edge/litert" target="_blank" rel="noopener"
&gt;https://ai.google.dev/edge/litert&lt;/a&gt; &amp;ldquo;LiteRT: High-Performance On-Device Machine Learning &amp;hellip;&amp;rdquo;
[23]: &lt;a class="link" href="https://github.com/ggml-org/llama.cpp" target="_blank" rel="noopener"
&gt;https://github.com/ggml-org/llama.cpp&lt;/a&gt; &amp;ldquo;ggml-org/llama.cpp: LLM inference in C/C++ - GitHub&amp;rdquo;
[24]: &lt;a class="link" href="https://github.com/alibaba/MNN/blob/master/transformers/README.md" target="_blank" rel="noopener"
&gt;https://github.com/alibaba/MNN/blob/master/transformers/README.md&lt;/a&gt; &amp;ldquo;MNN/transformers/README.md at master · alibaba/MNN - GitHub&amp;rdquo;
[25]: &lt;a class="link" href="https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html" target="_blank" rel="noopener"
&gt;https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html&lt;/a&gt; &amp;ldquo;CUDA Execution Provider - onnxruntime&amp;rdquo;
[26]: &lt;a class="link" href="https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html" target="_blank" rel="noopener"
&gt;https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html&lt;/a&gt; &amp;ldquo;NVIDIA - TensorRT | onnxruntime&amp;rdquo;
[27]: &lt;a class="link" href="https://ai.google.dev/edge/litert/next/gpu" target="_blank" rel="noopener"
&gt;https://ai.google.dev/edge/litert/next/gpu&lt;/a&gt; &amp;ldquo;GPU acceleration with LiteRT | Google AI Edge&amp;rdquo;
[28]: &lt;a class="link" href="https://ai.google.dev/gemma/docs/run" target="_blank" rel="noopener"
&gt;https://ai.google.dev/gemma/docs/run&lt;/a&gt; &amp;ldquo;Run Gemma content generation and inferences&amp;rdquo;
[29]: &lt;a class="link" href="https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md" target="_blank" rel="noopener"
&gt;https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md&lt;/a&gt; &amp;ldquo;llama.cpp/docs/build.md at master · ggml-org/llama.cpp · GitHub&amp;rdquo;
[30]: &lt;a class="link" href="https://github.com/ggml-org/ggml" target="_blank" rel="noopener"
&gt;https://github.com/ggml-org/ggml&lt;/a&gt; &amp;ldquo;GitHub - ggml-org/ggml: Tensor library for machine learning · GitHub&amp;rdquo;
[31]: &lt;a class="link" href="https://github.com/ggml-org/llama.cpp" target="_blank" rel="noopener"
&gt;https://github.com/ggml-org/llama.cpp&lt;/a&gt; &amp;ldquo;GitHub - ggml-org/llama.cpp: LLM inference in C/C++ · GitHub&amp;rdquo;
[32]: &lt;a class="link" href="https://github.com/ist-daslab/gptq" target="_blank" rel="noopener"
&gt;https://github.com/ist-daslab/gptq&lt;/a&gt; &amp;ldquo;GitHub - IST-DASLab/gptq: Code for the ICLR 2023 paper &amp;quot;GPTQ: Accurate Post-training Quantization of Generative Pretrained Transformers&amp;quot;. · GitHub&amp;rdquo;&lt;/p&gt;</description></item><item><title>OpenClawの設定備忘録</title><link>https://www.m1ke.org/p/openclaw%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%82%99%E5%BF%98%E9%8C%B2/</link><pubDate>Wed, 01 Apr 2026 19:54:43 +0900</pubDate><guid>https://www.m1ke.org/p/openclaw%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%82%99%E5%BF%98%E9%8C%B2/</guid><description>&lt;img src="https://www.m1ke.org/p/openclaw%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%82%99%E5%BF%98%E9%8C%B2/claw.jpg" alt="Featured image of post OpenClawの設定備忘録" /&gt;&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;最近はローカルDevサーバーでOpenClawを使っている&lt;/li&gt;
&lt;li&gt;サーバーはubuntu serverで、discordとcodexを使う&lt;/li&gt;
&lt;li&gt;便利だが複数回セットアップするのが大変なのでメモを残す&lt;/li&gt;
&lt;li&gt;簡単に設定するため、Adminなど権限過多になっているので注意&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="discord"&gt;Discord&lt;/h2&gt;
&lt;h3 id="discordの設定"&gt;Discordの設定&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Discord &amp;gt; Advanced &amp;gt; Developer Mode: ON&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="discordのサーバーの作成"&gt;Discordのサーバーの作成&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Discord &amp;gt; Navibar &amp;gt; Create My Own &amp;gt; For me and my friends&lt;/li&gt;
&lt;li&gt;channelはprivateにした&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="discordのbotの作成"&gt;DiscordのBotの作成&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Discord Developer Portal で New Application を作成
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://discord.com/developers/applications" target="_blank" rel="noopener"
&gt;https://discord.com/developers/applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Bot&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;usernameとiconの設定をする&lt;/li&gt;
&lt;li&gt;後々ここのtokenを取得する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Privileged Gateway Intents&lt;/code&gt; ですべての項目をON にして保存（以下など）
&lt;ul&gt;
&lt;li&gt;Message Content Intent&lt;/li&gt;
&lt;li&gt;Server Members Intent&lt;/li&gt;
&lt;li&gt;Presence Intent&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;自分のServerにインストール
&lt;ul&gt;
&lt;li&gt;OAuth2 -&amp;gt; URL Generator で Scopeはbot &amp;gt; Permissionは&lt;code&gt;Administrator&lt;/code&gt; を選択&lt;/li&gt;
&lt;li&gt;Guild Installを選択&lt;/li&gt;
&lt;li&gt;生成された URL をブラウザに貼り付け、自分のサーバーに Bot を招待&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="priviledge-gateway-intentsのおすすめ"&gt;Priviledge Gateway Intentsのおすすめ&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;オプション&lt;/th&gt;
&lt;th&gt;推奨設定&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Public Bot&lt;/td&gt;
&lt;td&gt;オフ&lt;/td&gt;
&lt;td&gt;オフにすると、あなた（Application Owner）のみがBotをサーバーに招待可能。他者が無断でAI Botを別サーバーに追加するのを防止&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requires OAuth2 Code Grant&lt;/td&gt;
&lt;td&gt;オフ&lt;/td&gt;
&lt;td&gt;OpenClawはOAuth2認証フローが不要なため、オフのまま&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Message Content Intent&lt;/td&gt;
&lt;td&gt;オン&lt;/td&gt;
&lt;td&gt;必ず有効化。有効でなければBotがメッセージ内容を読み取れない&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Members Intent&lt;/td&gt;
&lt;td&gt;必要に応じて有効化&lt;/td&gt;
&lt;td&gt;エージェントがメンバー情報のクエリやロール権限チェックを必要とする場合に有効化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Presence Intent&lt;/td&gt;
&lt;td&gt;オフ&lt;/td&gt;
&lt;td&gt;エージェントがメンバーのオンライン/オフライン状態を検知する必要がない限りオフにし、リソースを節約&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="openclaw"&gt;OpenClaw&lt;/h2&gt;
&lt;h3 id="openclawのinstall"&gt;OpenClawのInstall&lt;/h3&gt;
&lt;p&gt;これはNixで入れたので割愛。&lt;/p&gt;
&lt;h3 id="openclawの設定"&gt;OpenClawの設定&lt;/h3&gt;
&lt;p&gt;SSH先でOAuthを開くので、openai codex用にsshのポートフォワードをセットアップする。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh dev -L 1455:localhost:1455
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;oepnclawの設定:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openclaw onboard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Risk Acknowledgement: リスクについての確認。y&lt;/li&gt;
&lt;li&gt;Onboarding mode: QuickStart&lt;/li&gt;
&lt;li&gt;Model/auth provider: とりあえずCodex&lt;/li&gt;
&lt;li&gt;API キーの入力や、OAuth によるブラウザ認証（Google Antigravity OAuth など）を行う&lt;/li&gt;
&lt;li&gt;Channel Setup: ここで Discord を選択&lt;/li&gt;
&lt;li&gt;取得した Discord Bot Token を入力
&lt;ul&gt;
&lt;li&gt;これはDiscord Portal &amp;gt; Bot &amp;gt; Reset Tokenボタンから取れる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Skills/Hooks: とりあえずなし&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="起動確認"&gt;起動確認&lt;/h3&gt;
&lt;p&gt;次のコマンドで起動確認した。systemd &amp;ndash;userなので、user単位で動いていた。これでBotもうごくようになった。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;┌──&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="n"&gt;dotfiles&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt; &lt;span class="n"&gt;Dirty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;3.12&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;└─▶&lt;/span&gt; &lt;span class="n"&gt;systemctl&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;●&lt;/span&gt; &lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;OpenClaw&lt;/span&gt; &lt;span class="n"&gt;Gateway&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v2026&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;3.12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Loaded&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;loaded&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mike&lt;/span&gt;&lt;span class="o"&gt;/.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;systemd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;preset&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Active&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;active&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;running&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;since&lt;/span&gt; &lt;span class="n"&gt;Mon&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="n"&gt;JST&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="nb"&gt;min&lt;/span&gt; &lt;span class="n"&gt;ago&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Main&lt;/span&gt; &lt;span class="n"&gt;PID&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3256295&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gatewa&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;37720&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Memory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;642.6&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;peak&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;652.9&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;CPU&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;11.726&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;CGroup&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1000.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="mf"&gt;1000.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;└─&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt; &lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;02.721&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;read&lt;/span&gt; &lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ENOENT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;no&lt;/span&gt; &lt;span class="n"&gt;such&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;access&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/home/mike/.openclaw/worksp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;19.143&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;08.827&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;38&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;38.840&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;07&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;07&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;29.671&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;00.386&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;46&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;46.103&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="err"&gt;⇄&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="err"&gt;✓&lt;/span&gt; &lt;span class="n"&gt;channels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="mi"&gt;516&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt; &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;6e689&lt;/span&gt;&lt;span class="n"&gt;ce2&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="n"&gt;d2d&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;c0795fd5&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="n"&gt;fa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;27&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;27.631&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cron&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;51&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;51.020&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cron&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;05&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;05.642&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;allowlist&lt;/span&gt; &lt;span class="n"&gt;contains&lt;/span&gt; &lt;span class="n"&gt;unknown&lt;/span&gt; &lt;span class="n"&gt;entries&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;apply_patch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cron&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="ログ確認"&gt;ログ確認&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;└─▶&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;journalctl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;--user -u openclaw-gateway.service
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;43&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;systemd&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3029&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Started&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;OpenClaw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Gateway&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v2026&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;44&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;DEP0040&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DeprecationWarning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;`&lt;/span&gt;&lt;span class="n"&gt;punycode&lt;/span&gt;&lt;span class="o"&gt;`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;deprecated&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Please&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;userland&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;alternative&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inste&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;44&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;Use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;`&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;--trace-deprecation ...` to show where the warning was created)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;207&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mounted&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;127&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;18789&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;__openclaw__&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mike&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;244&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;heartbeat&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;started&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;248&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;health&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;monitor&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;started&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;startup&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;grace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;connect&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;grace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Mar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3256295&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="n"&gt;T01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;252&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;gateway&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;codex&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gpt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;直近のみ。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;journalctl --user -u openclaw-gateway.service -n 100 -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="clawの設定"&gt;clawの設定&lt;/h3&gt;
&lt;p&gt;設定ファイルは&lt;code&gt;~/.openclaw/workspace&lt;/code&gt;にある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IDENTITY.md: AI自身のアイデンティティ（名前、性格、口調など）&lt;/li&gt;
&lt;li&gt;USER.md: ユーザー（自分）に関する情報&lt;/li&gt;
&lt;li&gt;MEMORY.md: 長期記憶。重要な事実や文脈がここに蓄積される&lt;/li&gt;
&lt;li&gt;SOUL.md: AI の行動原理や「魂」にあたる部分。
&lt;ul&gt;
&lt;li&gt;このファイルは非常にユニークで、対話を通じて「実行前には必ず確認してほしい」とか「定期的にリポジトリを同期して」といったルールが追記されていく。&lt;/li&gt;
&lt;li&gt;git log で履歴を見ると、AI が指導を受けて成長していく様子が分かる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;AGENTS.md, TOOLS.md: エージェントの構成や使用可能なツールの定義&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;/status&lt;/code&gt;のコマンドでの、&lt;code&gt;You are not authorized to use this command&lt;/code&gt;エラーの対策。
User &amp;gt; Copy User IDからUserIdをコピーする。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw config set channels.discord.allowFrom &amp;#39;[&amp;#34;YOUR_USER_ID&amp;#34;]&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;左のNaviバーでアイコンを右クリック&amp;gt;ServerIDのコピー。
下のYOUR_SERVER_IDをリプレイスする。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw config set channels.discord.groupPolicy &amp;#39;&amp;#34;allowlist&amp;#34;&amp;#39; --strict-json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw config set channels.discord.guilds.YOUR_SERVER_ID.requireMention false --strict-json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw config set channels.discord.guilds.YOUR_SERVER_ID.users &amp;#39;[&amp;#34;YOUR_USER_ID&amp;#34;]&amp;#39; --strict-json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;設定のリスタートをする。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw gateway restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;設定の変更結果。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;channels&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;discord&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;xxx.xxx.xxx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;groupPolicy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;allowlist&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;streaming&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;off&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;allowFrom&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;YOUR_USER_ID&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;guilds&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;YOUR_SERVER_ID&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;requireMention&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;users&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;YOUR_USER_ID&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="参考文献"&gt;参考文献&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.meta-intelligence.tech/ja/insight-openclaw-discord" target="_blank" rel="noopener"
&gt;OpenClaw x Discordサーバー連携ガイド：コミュニティAI Botデプロイの実践 | MI&lt;/a&gt;law x Discordサーバー連携ガイド：コミュニティAI Botデプロイの実践 | MI](&lt;a class="link" href="https://www.meta-intelligence.tech/ja/insight-openclaw-discord" target="_blank" rel="noopener"
&gt;https://www.meta-intelligence.tech/ja/insight-openclaw-discord&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://note.com/kazuto1027/n/n3d9d871f14f1" target="_blank" rel="noopener"
&gt;Discord × OpenClaw 実践セットアップ — 設定はAIとの対話で終わる｜Karry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://zenn.dev/yukimemi/articles/2026-02-01-openclaw-discord-setup" target="_blank" rel="noopener"
&gt;OpenClaw を Discord で動かす&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://note.com/witty_roses242/n/n23762c143022" target="_blank" rel="noopener"
&gt;openclaw.jsonの設定変わりすぎじゃない？｜御手洗梢&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>