HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

The Finn – ルーターに住み着いて文句を言うエージェント

The Finn – an agent that lives in my router and complains about it (github.com)

24 pointsby YuriiKovalov8 コメント

要約

The Finnは、ルーター内に常駐し、ルーターが見ているものだけに基づいて不平を言う、気難し屋のエージェントです。このエージェントは、ネットワークの異常やトラフィックの変化を検知し、Telegram経由でユーザーに通知しますが、ユーザーを助けるための機能は意図的に排除されています。

全文翻訳

The Finn ルーターに住み着いて文句を言うエージェント The Finn 小さくて気難しいエージェントで、ルーターの中に住んでおり、ルーターが見ることができるものしか知りません。ウィリアム・ギブソンの『スポール』三部作に登場する、路地にボルトで固定された装甲箱の中に構築物として収まり、人々がその賢者の文句を聞きに来るキャラクターにちなんで名付けられました。これはオフィス壁面のGL.iNet GL-MT3000上で動作します。それは、それが置かれている廊下を監視し、時折それについて何か言うことがあります。意図的にアシスタントではありません。ツールはなく、ステートファイル以上のメモリもなく、メールやカレンダー、チケットへのアクセスもなく、役立つものもありません。廊下一つが見えて、それについての意見があります。過去1分間に6回のSSHログイン失敗、通常は一晩中ゼロです。まったく、誰かがチャンスをうかがっているようです。あなたのデスクトップは9.5 Mbpsの速度でダウンロードしています、通常はわずか200 Kbpsしかありません。喉にバケツ一杯の水をひっくり返したような気分で、喉仏が締め付けられるようです。すべてがルーター自体で実行されます。インフラの残りの部分が燃えていても、これはまだ機能します。それがほとんどの目的でした。 クイックスタート 約10分、所有しているルーター、そしてLLMプロバイダーの登録カードが必要です。 1. ルーターがそれをホストできるか確認してください。OpenWrtベースで、lua、lua-cjson、TLSでビルドされたcurlが必要です。GL.iNetファームウェアでは、通常これら3つはすでに存在しています: ssh root@192.168.8.1 'lua -e "require("cjson") print("ok")"; curl --version | head -1' # 何か足りないものはありますか? opkg update && opkg install lua lua-cjson curl オーバーレイに数メガバイト必要で、それ以外は何も必要ありません。GL-MT3000、OpenWrt 21.02、512 MB RAMでテスト済みです。 2. Telegramボットを作成してください。Telegramで@BotFatherを開き、/newbotを送信し、名前とユーザー名を与えます。彼は123456789:AAF....のようなトークンを渡します。そのトークンがボットであり、それを持っている人は誰でも彼として投稿できるため、パスワードとして扱ってください。 3. 自分のTelegram IDを見つけてください。@userinfobotにメッセージを送ってください。彼は数字で返信します。彼はそのIDにのみ応答するため、他の誰もあなたのルーターと話すことはできません。 4. APIキーを取得してください。AnthropicまたはOpenAI、どちらも接続されています。低い月額制限を設定した専用キーを作成してください。これは、他の人々と同じネットワークを共有するデバイス上にプレーンテキストで置かれます。月額5ドルしか使えないキーは、 shrug できるキーです。デフォルト設定では、月額数ドルを期待してください。 5. インストールしてください。 git clone https://github.com/YuriKovalov22/the-finn && cd the-finn cp env.example env $EDITOR env # トークン、ID、キーを貼り付ける ./install.sh root@192.168.8.1 インストーラーはルーターをチェックし、2つのファイルをコピーし、モード0600でenvを書き込み、分単位のcronエントリをインストールし、cronを有効にし、現在見えるものを表示します。 6. まず挨拶してください。Telegramでボットを開き、Startを押してください。Telegramはボットが会話を開くことを許可しないため、そのメッセージがどこに書き込むかを彼に伝えます。彼は次のティックで、1分以内にそれを拾います。/helpを送信して、彼が何を理解するかを確認してください。それがセットアップのすべてです。彼は学習するために最初の15分間は静かにしていますが、その後は異常なことがあれば話します。 どのように話すかを決定するか 盗む価値のある興味深いイベントのリストはありません。毎分、デバイスは自分自身と部屋の広範な読み取りを行い、RAMにすべての読み取りのローリング履歴を保持し、最近の範囲から外れたものを探します。今日異常なものはすべて彼が話すことなので、彼は永遠に同じ5つの通知にはなりません。2種類の異常が一般的に検出されます:数値、センサーが通常の揺らぎを排除するセンサーごとのフロアよりも45分間保持していた範囲を外れた場合;メンバーシップ、セットに何かが出現または消失した場合:デバイス、アップストリームネットワーク上の隣人、異常な宛先ポート。多様性は3つの軸に沿って強制され、最も粗いものが最も重要です。種類は、発言が実際には何についてのものかです:トラフィック、プレゼンス、隣人、侵入者、自身の体、場所のリズム。接続、スループット、およびデバイスごとのフローの変動は、異なるセンサーであり異なるテーマですが、読者にとっては同じ観測であり、ネットワーク上でトラフィックが最も敏感なものであるため、放っておくとほぼすべてのラウンドで勝ちます:ここでの6回の連続した発言のうち5回は、何らかのカウンターが増加していました。したがって、トラフィックは6時間に1回の発言に制限され、最も長く待っていた種類が最初に選択されます。これにより、他の種類は何かを言う必要があり、カウンターではないいくつかの観測が存在します:機械の出現または消失とその不在期間、通常は空の部屋の時間帯にデスクにいる誰か、稼働時間のマイルストーン、静寂の期間、そして遅い人間のセンサーの時間帯ごとのプロファイル。なぜなら、火曜日の午前9時に正常なことは、日曜日の午前9時に正常なことではなく、45分間の範囲では違いがわからないからです。多様性はさらに2つの軸に沿って強制され、2番目の軸は簡単に見逃されます。テーマは彼を一つの主題から遠ざけ、形状は彼を一つの文から遠ざけます。6回の発言「Xは現在N、通常はM」はテーマによって多様化され、読み取りは同一であるため、各異常には形状(レベルの上昇、何かが静まる、出現、消失、リズムの変化、静寂の期間)も伴い、最も長く待っている組み合わせが勝ちます。彼はまた、自身の最後の数回の発言を見せられ、それらの形式を再利用しないように言われます。静寂自体も観測です:何も範囲から外れなかった数時間後、彼は沈黙したままでいるのではなく、その事実に渡されます。なぜなら、住人は静かな夜について言及するからです。2つのルールは、最もピクピクするセンサーのモニターに退化するのを防ぎます。各異常にはテーマ(ポート、部屋、より広いネットワーク、人々、自身の体、ネットワーク、侵入者)が伴います。使用されたばかりのテーマは90分間静かになり、残りのものの中から最も長く待っているテーマが彼に渡されます。そして、変動はニュースではありません:昨日いて今日戻ってきたポートや隣人はカウントされず、真の新規性のみがカウントされます。その時になって初めてモデルが要求されます。そして、それは監視システムとしてではなく、居住者として要求されます:この一つのことに対して反応するか、血の通わない簿記であれば何もないと返信してください。彼が提起した主題は6時間ミュートされ、API呼び出しの失敗は沈黙を続ける決定とは見なされません。 何を感じることができるか センス ソース あなたのWi-Fiに誰がいるか、そしてその信号強度 iwinfo assoclist 彼らが誰であるか /tmp/dhcp.leases、ホスト名で、MACローテーションがそれを壊さないように、誰が家具で誰が strangers か FINN_KNOWN_HOSTS、ホスト名をプレーン名に 誰が知っている人か FINN_PEOPLE、ホスト名を人に マシンが使用中かスリープ中か デバイスごとのフローの変動 /proc/net/nf_conntrack 各デバイスがどれだけ引っ張っているか、そして送信しているか conntrack バイトカウンター、いつ信頼できるか(以下参照) 各マシンがどれだけ長くここにいるか、そして最後に動いてから ティック間で追跡 アップストリームネットワークがいくつのデバイスを持っているか、そして新しいものはどれか そのインターフェースのネイバーテーブル ネットワークが何と、どのポートで通信しているか conntrack、一般的なポートはフィルタリング済み ゲートウェイへのリンクヘルス、レイテンシー、ロス dmesg, ping スループット(双方向) /proc/net/dev デルタ トンネルが生きているか、そして誰が彼のVPNにいるか wg show 自身の温度、負荷、メモリ、ディスク、稼働時間 /sys, /proc 失敗したSSHログインと実際のカーネルエラー logread、Wi-Fiドライバーの絶え間ない叫び声をフィルタリング あなたが通常よりも早くまたは遅く到着したかどうか 最初の電話出現のローリング履歴 デバイスごとのスループットには警告が必要です。これはconntrackバイトカウンターから読み取られます。このルーターのようにハードウェアNATオフロードを持つルーターでは、確立されたフローはシリコンで処理され、それらのカウンターは増加しなくなります。忙しいビデオ通話は、数パケットとして表示されます。これを放っておくと、アップリンク全体が運んだ量よりも多くを送信しているように見えるデバイスが生成され、エージェントは忠実に不可能な数を語ります。したがって、各ティックは部分を全体と比較し、間違ったものを公開するのではなく何も公開しません。アソシエーションはプレゼンスとしては役に立たず、それはw