本文へスキップ

開発者向け

エージェントの外部通信を、コードに触れずに制御

Senriは、AIエージェントと同じ実行環境で動作する透過型プロキシです。HTTP / HTTPS / DNS / WebSocket などの外部通信を、マシンの外へ出る前に検査し、YAMLで定義したポリシーに基づいて、許可・警告・ブロックをリクエスト単位で判定します。

エージェント側の改修は不要。SDKの追加も、アプリケーションコードの書き換えも必要ありません。

導入パターン

ローカル環境で試す

個人開発・検証環境向け

senri run -- claude \
--dangerously-skip-permissions

普段使っているエージェントを、Senri経由で起動するだけ。エージェント側の権限を広めに渡している場合でも、危険な通信はネットワーク層で制御できます。

コンテナで本番環境に組み込む

本番環境・CI向け

docker run senrilabs/firewall:claude \
claude

ポリシーをアプリケーションの隣に置き、コンテナ単位で配布。SDKの組み込みやコード変更なしに、既存の実行環境へ組み込めます。

社内端末へ一括展開する

情報システム・セキュリティチーム向け

senri setup --auth-key $AUTH_KEY
senri config sync

端末タグごとにポリシーを配布し、各マシンで適用されているポリシーのバージョンを確認できます。開発者の作業環境を大きく変えずに、組織全体で同じ制御を適用できます。

ポリシーはYAMLで管理

Senriのポリシーは、Gitでレビュー・管理できるYAMLファイルです。すべてのルールを同時に評価し、複数のルールに一致した場合は、もっとも厳しいアクションが優先されます。

rules.yaml
# 危険な操作だけをブロックし、それ以外は許可する例
rules:
  - id: block-pr-merge
    when:
      host_suffix: api.github.com
      method: PUT
      path: /repos/*/pulls/*/merge
    action: { type: block_http, status: 403 }
01
block-pr-merge

GitHub APIの利用は許可しつつ、プルリクエストのマージだけをブロック。「リポジトリは読めるが、勝手にマージはできない」といった制御を、リクエスト単位で定義できます。

技術FAQ

レイテンシはどのくらい増えますか?

通常はほとんど影響ありません。Senriは接続を保持して再利用するため、多くのリクエストは1ミリ秒未満で通過します。大きな本文を検査する場合でも、追加される処理時間は数ミリ秒程度です。

HTTPSの中身はどう検査しますか?

Senriは、社内環境内の信頼された中継点として動作します。リクエストを一度復号してポリシーと照合し、判定後に再び暗号化して送信します。復号に使う鍵はマシン外へ出ません。自社で管理する証明書を持ち込む構成にも対応しています。

Senriが停止した場合、通信はどうなりますか?

用途に応じて、fail-open / fail-closed を選択できます。開発環境では、Senriに到達できない場合でもエージェントの実行を継続。機密性の高い環境では、監視できない通信をすべて遮断。環境ごとに、設定ひとつで切り替えられます。

対応環境を教えてください。

Linux環境で動作します。Docker、または一度のインストールで導入できます。Python / Node.js など、通常のネットワーク通信を行うツールやエージェントには広く対応しています。一方で、GoやRustの静的バイナリなど、独自にネットワーク処理を内蔵している一部のバイナリでは、追加設定が必要になる場合があります。

通信ログはどこに保存されますか?

運用形態に応じて選択できます。セルフホスト構成では、ログを自社のデータベースや既存のログ基盤にのみ保存し、外部へ送信しない運用が可能です。ダッシュボードやアラート機能が必要な場合は、ホスト型バックエンドへ接続することもできます。

エージェント側の改修は必要ですか?

不要です。SDKの追加も、コードの書き換えも必要ありません。Senriは、エージェントがすでに行っているネットワーク通信を監視・制御します。自社開発のエージェントでも、市販のエージェントでも、同じ仕組みで利用できます。

まずは、手元のエージェントでお試しください

先行導入プログラムは無料でご利用いただけます。コード改修なしで、その日のうちにエージェント通信の可視化から始められます。