自分のサーバーや VM を接続する
自分の Linux サーバーや VM を、エージェントの endue Computer として使わせることができます。そのマシンでインストールコマンドを1つ実行すれば、それ以降、エージェントのファイルとプログラムはそこに置かれます。
そのマシンにしかないものが作業に必要なときに、自分のサーバーを使います。社内ネットワークへのアクセス、インストール済みのツールやデータ、既定より多くの CPU やディスク、自分で選んだリージョンにあるマシンなどです。自分で管理している Linux マシンであれば、Vultr の VPS、AWS の EC2 インスタンス、オンプレミスのサーバーなど、何でも使えます。
どれにも当てはまらなければ、このページは必要ありません。エージェントは、初めて必要になったときに endue クラウド上の endue Computer を自動的に使えるようになります。デバイスを参照してください。
- x86_64 または aarch64 の Linux。プログラムは単一の静的バイナリなので、ディストリビューションは問いません。
- systemd。
sudoによる root 権限。- 外向きのインターネット接続。endue Computer は安全な WebSocket で endue に接続しに行くため、受信用のポートを開ける必要はありません。
インストール
Section titled “インストール”-
左サイドバーからリソース › デバイスを開き、endue Computer グループの自分のデバイス・サーバーにインストールを選びます。
エージェントビルダーで1つのエージェントのページを開いている場合は、リソース › デバイス › 自分のサーバーを接続で、そのエージェントに対して同じ操作ができます。
-
エージェントを選び、必要に応じて一覧に表示するデバイス名(例:
build-server-01)を入力します。インストールコマンドを作成を選びます。エージェントがすでに endue クラウド上の endue Computer を持っている場合は、先にそれとその中のファイルを削除するかどうかを確認されます。キャンセルすれば何も変わりません。エージェントの endue クラウド Computer を置き換えるを参照してください。
-
コマンドをコピーして、サーバーで実行します。コマンドは次のような形です。
Terminal window curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \--endpoint <endpoint> --token <token> --instance <agent-id>コマンドには、このエージェント用の接続トークンが含まれています。表示されるのは一度だけです。コピーする前にウィンドウを閉じてしまった場合は、新しいコマンドを作成します。
-
接続済みになるまで待ちます。コマンドが完了して数秒後に、ダイアログとデバイス一覧が接続済みに変わります。
インストーラーの処理内容
Section titled “インストーラーの処理内容”-
アーキテクチャを判別して endue Computer をダウンロードし、SHA-256 チェックサムを検証します。チェックサムが一致しない場合は、何もインストールしません。
-
カーネルがどのプロファイルに対応しているかを確認します。
-
ログインできないシステムユーザー
endueを作成します。 -
エージェント用に、次のものを作成します。
パス 所有者とモード 内容 /etc/endue-computer/<agent-id>.envroot, 0600接続先のアドレス、トークン、選んだ設定 /var/lib/endue-computer/<agent-id>/workspaceendueエージェントのワークスペース(エージェントが作業するフォルダー) /var/lib/endue-computer/<agent-id>/stateendueワークスペースの外に置かれる、チェックポイントと保存済みのファイル -
エージェント用の systemd サービス
endue-computer@<agent-id>を有効化して起動し、接続できたかどうかを報告します。
エージェントにできることを決める
Section titled “エージェントにできることを決める”インストールコマンドの末尾に、オプションを追加します。
curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \ --endpoint <endpoint> --token <token> --instance <agent-id> \ --allow-exec git,python3 --no-network| オプション | 既定値 | 効果 |
|---|---|---|
--allow-exec <list> | git,node,npm,npx,python3,pip3,curl | エージェントが実行できるプログラム。パスを付けずに、カンマ区切りで指定します。--allow-exec "" を指定すると、プログラムの実行を完全に無効にします。 |
--no-network | ネットワークを許可 | エージェントが実行するプログラムは、ネットワークを使えません。 |
--no-delete | 削除を許可 | エージェントは、ワークスペース内のファイルを削除できません。git や npm などのツールはロックファイルや一時ファイルを削除するため、sandboxed プロファイルでは失敗します。 |
--profile auto|sandboxed|managed | auto | 使用するプロファイル。 |
一覧にあってもサーバーにインストールされていないプログラムは、インストール時に報告されます。エージェントがそのプログラムを実行しようとすると、「インストールされていません」という結果が返ります。
プログラムを許可しても、そのプログラムでできることが制限されるわけではありません。node や python3 を許可すると、エージェントはプロファイルの範囲内で、それらが実行できるあらゆるコードを実行できます。
プロファイル
Section titled “プロファイル”| プロファイル | 条件 | エージェントが実行するプログラムにできないこと |
|---|---|---|
sandboxed | Linux 6.12以降(Landlock ABI 6) | ワークスペースフォルダーの外にあるファイルの読み書き。managed の制限もすべて適用されます。 |
managed | それ以外のカーネル。Ubuntu 22.04(5.15)や Ubuntu 24.04 の GA カーネル(6.8)など | root になることや、権限の取得。systemd が /home、/root、ほかのエージェントのフォルダーを隠し、それ以外のシステムを読み取り専用にします。ファイルシステムのサンドボックスはないため、プログラムは endue ユーザーが読めるファイルなら、どれでも読めます。 |
auto は、カーネルが対応していれば sandboxed を選び、対応していなければ通知を出したうえで managed にフォールバックします。対応していないカーネルで sandboxed を指定すると、インストーラーはインストールせずに終了します。managed は、エージェント専用のサーバーか VM でのみ使ってください。
同じサーバーに別のエージェントを追加する
Section titled “同じサーバーに別のエージェントを追加する”1台のサーバーを、複数のエージェントで使えます。リソース › デバイスでサーバーの行のメニューを開いてエージェントを追加を選び、エージェントを選んだら、新しいコマンドを同じサーバーで実行します。
エージェントごとに専用のサービス、設定ファイル、フォルダーが作られ、プログラムと endue ユーザーは共有されます。managed プロファイルで、各エージェントがほかのエージェントのフォルダーに入れないようにしているのは systemd です。
起動・停止とログ
Section titled “起動・停止とログ”<agent-id> は、コマンドの --instance の後ろにある値に置き換えます。
sudo systemctl status endue-computer@<agent-id> # 実行中かどうかsudo systemctl start endue-computer@<agent-id> # 起動sudo systemctl stop endue-computer@<agent-id> # 停止sudo journalctl -u endue-computer@<agent-id> -f # ログを追うサービスが停止している間、デバイスはオフと表示され、エージェントは起動するよう知らせます。endue が代わりにクラウドの Computer を作成することはありません。
再インストール
Section titled “再インストール”同じ --instance でインストールコマンドをもう一度実行すると、トークンを含む設定が置き換えられ、サービスが再起動されます。
エージェントのサーバーが接続されている間は、新しいコマンドを作成できません。先にサーバーでサービスを停止してから、コマンドを作成し直します。
アンインストール
Section titled “アンインストール”curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \ --uninstall --instance <agent-id>このコマンドは、エージェントのサービスを停止して無効化し、設定ファイルを削除します。ワークスペースと state のフォルダーは、--purge を付けない限り残ります。--instance を指定しない場合は、サーバー上のすべてのエージェントが削除されます。エージェントが1つも残らなければ、プログラムとサービス定義も削除されます。
サーバーでアンインストールしても endue からデバイスは削除されず、endue で削除してもサーバーからアンインストールされるわけではありません。ここでのアンインストールと、デバイスの行メニューでそのエージェントを外す操作の両方を行ってください。デバイスを削除するを参照してください。
- 対応しているのは、x86_64 または aarch64 の Linux のみです。macOS 版と Windows 版はまだありません。
- endue Computer は、エージェントごとに1台です。自分のサーバーにいるエージェントが endue クラウド上にも持つことはできません。また、すでに別のサーバーにいるエージェントは、先にそちらから外す必要があります。
- endue は、自分のサーバーやサービスを起動できません。どちらかが停止している場合、エージェントはそれなしで作業します。
- エージェントがサーバー上のツールを使えるのは、サービスが接続されている間だけです。エージェントがバックグラウンドで起動したプログラムは、サービスが停止すると一緒に停止します。
- 一部のコンテナなど systemd がない環境では、
--no-systemdを付けます。インストーラーはファイルを配置し、endue Computer を自分で起動するためのコマンドを表示します。この場合、前述の systemd による保護は適用されません。 - サービスが
status=226/NAMESPACEで起動に失敗する場合、そのマシンではマウント名前空間を作成できません。これは一部の LXC や OpenVZ のコンテナで起こります。完全な VM を使うか、--no-systemdを付けます。