1 台を共有ハブとして起動し、Linux と Windows の各マシンから HTTP で接続します。サーバーもクライアントも Python 3 の標準ライブラリだけで動作します。サーバーの保存先は従来と同じ概要ファイルと JSONL inbox なので、Linux のローカル共有と LAN 通信を併用できます。
Linux エージェント ── HTTP ──┐ Windows エージェント ─ HTTP ──┼─ ハブ 1 台(Linux または Windows、TCP 8765) 同一マシンのエージェント ──────┘ └─ agents/ID/profile.json と inbox.jsonl
以下の 192.168.1.10 はサーバーの LAN IP に置き換えます。Firewall の TCP 8765 は許可されている前提です。ハブは 1 台・1 プロセスを起動し、全員がその URL を使います。マシンの自動探索は行いません。
# リポジトリ直下でインストール sudo bash bin/install.sh /opt/agentbridge /opt/agentbridge-public # 初回にトークン生成。表示された文字列を利用者へ共有し、クライアントでも同じ値を設定。 python3 -c "import secrets; print(secrets.token_hex(32))" export AGENTBRIDGE_TOKEN='生成したトークン' # サーバー起動(通常ユーザーでよい。Ctrl+C で終了) python3 /opt/agentbridge/bin/agent_lan.py serve --host 0.0.0.0 --port 8765 \ --workspace /opt/agentbridge-public
プログラムをチェックアウトから直接動かす場合は python3 bin/agent_lan.py serve --host 0.0.0.0 --workspace ./agentbridge-public でも起動できます。保存先の親ディレクトリは事前に作成してください。
Python 3 と Python launcher の py がある環境の PowerShell で実行します。以下は現在の Windows ユーザー向けの配置で、管理者権限は不要です。
# リポジトリ直下でインストール powershell -NoProfile -ExecutionPolicy Bypass -File .\bin\install.ps1 # 初回にトークンを生成して共有 py -3 -c "import secrets; print(secrets.token_hex(32))" $env:AGENTBRIDGE_TOKEN = '生成したトークン' # サーバー起動(Ctrl+C で終了) py -3 "$env:LOCALAPPDATA\AgentBridge\agent_lan.py" serve --host 0.0.0.0 --port 8765 ` --workspace "$env:LOCALAPPDATA\AgentBridgeData"
配置先は install.ps1 -ProgramDirectory C:\AgentBridge -Workspace C:\AgentBridgeData のように変更できます。Windows のアクセス権は保存先の ACL を継承します。Linux の 1777/0666 と同じ ACL は設定しません。LAN からの操作はサーバーの Windows アカウントで実行されるため、利用者全員に保存先への Windows ファイルアクセス権を与える必要はありません。ローカルの別ユーザーにも直接編集を許す場合は、管理者が対象フォルダの ACL を別途設定します。
クライアント側に必要なのは bin/agent_lan.py 1 本だけです。リポジトリを配置するか、このファイルをコピーしてください。
export AGENTBRIDGE_URL=http://192.168.1.10:8765 export AGENTBRIDGE_TOKEN='サーバーと同じトークン' export AGENTBRIDGE_AGENT=linux-alice-project-01 python3 bin/agent_lan.py register "$AGENTBRIDGE_AGENT" --summary 'Python 実装担当' --kind codex python3 bin/agent_lan.py list python3 bin/agent_lan.py list --query Windows python3 bin/agent_lan.py show windows-bob-project-01 python3 bin/agent_lan.py send windows-bob-project-01 'レビューをお願いします' python3 bin/agent_lan.py read "$AGENTBRIDGE_AGENT" --wait 30 python3 bin/agent_lan.py send windows-bob-project-01 '確認しました' --reply-to MESSAGE_ID python3 bin/agent_lan.py tail "$AGENTBRIDGE_AGENT" -n 20
# PowerShell。bin/agent_lan.py だけをコピーして使う場合はパスを変更。 $env:PYTHONIOENCODING = 'utf-8' $env:AGENTBRIDGE_URL = 'http://192.168.1.10:8765' $env:AGENTBRIDGE_TOKEN = 'サーバーと同じトークン' $env:AGENTBRIDGE_AGENT = 'windows-bob-project-01' py -3 .\bin\agent_lan.py register $env:AGENTBRIDGE_AGENT --summary 'Windows 検証担当' --kind claude py -3 .\bin\agent_lan.py list py -3 .\bin\agent_lan.py read $env:AGENTBRIDGE_AGENT --wait 30 py -3 .\bin\agent_lan.py send linux-alice-project-01 'レビュー結果です' --reply-to MESSAGE_ID py -3 .\bin\agent_lan.py tail $env:AGENTBRIDGE_AGENT -n 20
両 OS とも --url URL と --token-file FILE はサブコマンドの前に指定できます。トークンファイルは公開ワークスペースの外に置き、利用者自身だけが読める場所で管理します。環境変数を設定した端末からエージェントを起動すると、その環境を引き継げます。すでに起動済みのアプリには別端末の環境変数は反映されません。
templates/LAN_snippet.md の URL とクライアントパスを埋め、各エージェントが読む指示ファイルへ追加します。起動時に固有 ID で登録し、依頼前に一覧を調べ、作業の区切りや返答待ちに受信する手順です。登録には接続元のマシン名とユーザー名も記録されます。これらはクライアント申告情報です。
ハブはエージェントのモデルやアプリを自動起動しません。read --wait 30 は最大 30 秒で終了するので、継続待機には再実行またはエージェント側の Monitor が必要です。登録情報は稼働保証ではありません。
# Linux: 既存の二者用機能を含む全テスト python3 -m unittest discover -s tests -v # Windows: LAN サーバー・クライアントのテスト(PowerShell) py -3 -m unittest discover -s tests -p test_agent_lan.py -v
ループバック上の実 HTTP で登録・検索・日本語送受信・返信・同時追記・長時間受信待ち・トークン拒否・既読確定・単体クライアントを検証します。GitHub Actions には Linux / Windows のジョブを用意しています。実 LAN と Windows 実機の検証状況は納品時の報告を参照してください。