Kawarin

しくみ

AI と MCP のしくみ

LP では省いた、実際の道具立ての話です。 AI に何を渡していて、何を渡していないのか。 組んだものを走らせる前に、どうやって安全に確かめるのか。

前提

AI が触るのは、ファイルと測定だけ

Kawarin の自動化は 1 つのファイルに収まっています。 AI はそのファイルを書き、画面を測り、保存した画面で試すことができます。 開いている Kawarin の画面を AI が直接操作することはありません — 出来上がったファイルを、あなたが開いて確かめてから走らせます。

頼む AI がファイルを書く 開いて見る 保存画面で試す 直す 走らせる

ドライランは入力を送りません

守りは 2 枚あります。実画面ではなく保存しておいた画面を見せること、 そして入力を送る関数そのものを外すこと。 外へ触る口はクリック・キー入力・文字入力・音・ウィンドウ前面化の 5 つしかないので、 そこを塞げば数え漏らしが起きません。 待ち時間は仮想時計で進めるため、判定の回数と分岐は本番と同じまま、実時間だけ使いません。

画面の画像は AI に渡りません

道具が返すのはファイルのパスと数字だけで、撮った画面そのものは送りません。 撮影先の captures/ は保存先に残るだけです。 AI に画面を見せたいときは、あなたが明示的に読ませることになります。

しきい値

当たらないときは、勘ではなく数字で直す

画像検出がうまくいかないとき、しきい値を勘で下げると、 当たらない原因を残したまま誤検出だけが増えます。 probeしきい値未満でも一致度を返すのは、 「ある画面」と「ない画面」の両側を測って間を取るためです。

目印 の一致度分布(実測)

目印がある 3 サンプルは 0.896〜0.974、ない 行 5 つ × 10 フレームは 最大 0.469。あいだが広く空いているので、しきい値は 0.70 で確定します。 薄い目盛りは手で引き直していた頃の値で、 0.35 と 0.45 は偽物の最大を下回っています — 何も無い場所を、ずっと「見つかった」と判定していたわけです。 両側を測れば数分で分かることに、当時は 30 分かけて 3 回引き直しました。

片側だけ見て決めると、この取り違えに気付けません。 「本物の最小」と「偽物の最大」を並べて、間を取るのが確実です。

道具

AI から使えるもの

いずれも読める文章で返します。次に決めたいのは「しきい値をいくつにするか」なので、 生の JSON より材料を並べた文章の方が早いためです。

道具返すもの
node_defs使えるノード・ポート・設定値の一覧。AI が語彙を推測せずに済む
dry_run保存画面にグラフを通し、押すつもりだった座標とログを返す
capture画面を撮って保存。対象が隠れていれば警告する
cut_template撮った画面から目印を切り出す
probe一致度と座標。しきい値未満でも数字を返す
probe_all目印 × 画面の総当たり。しきい値決めの分布取り
list_windows開いている窓の名前と位置

probe / probe_all は画像検出を使うため Pro が要ります。 それ以外は無料版でも動きます。

限界

できないこと

AI が画面のノードを直接いじることはできますか?
できません。AI が触るのはファイルと測定までで、 開いている Kawarin の画面を書き換える口はありません。 AI が書いたファイルを、あなたが開いて確かめる流れになります。
AI が書いたファイルは、そのまま信用していいですか?
いいえ。画面でつなぐときに働く整合チェックを通っていないので、 つなぎ間違いが残ることがあります。 開いて確かめ、保存画面で試してから走らせてください
隠れているウィンドウも撮れますか?
撮れません。画面の見えている内容をそのまま取る方式なので、 対象が他の窓に隠れているとその窓が写ります。 capture は隠れている割合を見て警告を出します。