制限と境界
Letaido が行わないこと、できないこと、そして知っておくべきソフトリミット
仕様上の「できない」こと
これらは意図的な拒否です。巧妙なプロンプトによって上書きすることはできません。
- 明示的な承認なしに影響力のあるアクションを実行する。 Python パッケージのインストール、ジョブの登録、新しいアウトバウンドドメインの許可リスト登録、新しい認証情報の接続はすべて承認カードを表示します。オーナーまたは管理者が一度クリックします。
- 公開サイトモードを切り替える。 オフ / 認証済み / オープンはオーナーまたは管理者のみが使用でき、ワークスペース UI を通じてのみ可能です。エージェントはプログラムで切り替えることはありません。
- 承認されたコネクタなしで外部サービスにアクセスする。 メールの送信、決済 API へのアクセス、Slack への投稿、またはサードパーティへのその他の書き込みには、呼び出しを行うサーフェス(チャット、Console、またはサイト)に対して承認されたコネクタが必要です。
- 別のワークスペースに触れる。 すべてのワークスペースは、OS、データベース、シークレットストアレベルで分離されています。
厳格な「できない」(強制)
- Console プロセスは、
~/workspace/downloads/以外のプライベートなワークスペースファイルを読み取ることはできません。 - 公開サイトは Console の内部データを読み取ることはできません。 Postgres のロールがデータベース層でアクセスを REVOKE します。失敗は静かではなく、明示的です。
- どのサーフェスもプラットフォーム設定ディレクトリを読み取ることはできません(
/opt/letaido/config/)。 - 明示的なドメイン許可リストがない限り、非ループバックホストへの送信 HTTPS は行えません。
- nginx は 30 秒でタイムアウトします。 長時間のジョブはジョブ ID を返してポーリングします。エージェントは、指示されなくてもこれを尊重するアプリを作成します。
ソフトリミット(知っておくべきこと)
- コンテキストウィンドウ。 単一のチャットには有限のコンテキストウィンドウがあります。長いセッションは劣化します。エージェントは、チャットで結果をエコーするよりも、中間結果をディスクに書き込むことを好み、接線的なサイドタスク(長時間のリサーチ、履歴に依存しない下書き)には別のチャットを生成します。
- バックグラウンドジョブの実行時間。 実行ごとに1時間。それより長いものは、Postgres に状態を保存してステージに分割する必要があります。
- ジョブ出力のキャプチャ。 stdout と stderr は実行ごとに 50 KB に制限されています。より大きな出力はファイルまたはデータベース行に保存します。
- Webhook イベントの保持。 数日以上経過した未読イベントは削除されます。コンシューマーがオフラインだった場合は、想定するのではなくキューの深さを確認してください。
- LLM トークン。 プラットフォームによるチャットごとの上限はありませんが、非常に長い単一のプロンプトはコストが高く、速度も遅くなります。エージェントは自然にチャンク化します。
- 公開サイトのファンアウト。 訪問者ごとのサードパーティ API 呼び出しは行いません。エージェントは
site_dbにキャッシュするか、サイトが読み取るだけのジョブを介して事前計算します。
承認ワークフロー
すべてのカードを表示するもの:
- エージェントがリクエストを行います(
pip install、register_job、request_domain_access、request_connector_secret、request_connector_approval、create_webhook)。 - チャットにカードが表示されます。クリックするまでエージェントは停止します。
- オーナーまたは管理者が承認または拒否をクリックします。
- エージェントが自動的に再試行し、続行します。
エージェントが事前に計画を立てれば、カードが小出しに送られてくることはありません。スコープリクエストを集約することはプレイブックの一部です。計画しているすべてのことに対するスコープを1枚の Slack スコープカードにまとめて記載し、3回に分けてリクエストを小出しにしないようにしてください。
ワークスペースの役割、権限、およびチームメイトを招待する方法については、別の記事で説明しています:ワークスペースの役割と共有。
エージェントがリクエストを拒否する場合
平易な英語で:
- 「Mateusz の Workspace にあるものを見せて」絶対にできません。Workspace 間の分離は完全です。
- 「公開サイトモードをバイパスする SQL を書いて」できません。切り替えは nginx レイヤーで行われます。
- 「この顧客リストをメールで送信して」Resend または Mailchimp コネクタが適切な画面に対して承認され、適切なスコープがあり、アクションがログに記録される場合のみ可能です。
- 確信がないのに「X について確信があると言って」確認できないこと、試したこと、何があれば解決できるかを明示的に伝えます。
エージェントが反論する場合
拒否するのではなく、議論する:
- 「もっと良くして」(どの観点で良くするのか?長さ、トーン、コンバージョン、正確性?)
- 複数システムにまたがる作業で「一度にすべてやって」(まず計画を立ててから実行します)
- 「数字は信じて」(健全性チェックを実行し、発見した内容を報告します)
- 「推測して」(仮定を提示し、ラベル付けし、続行するか確認します)
内部の仕組み。 制限は複数のレイヤーで実施されます:ファイルシステムのアクセス許可(ワークスペースの境界)、Postgres のロール(データの境界)、nginx のルーティング(可視性)、ファイアウォール(アウトバウンドネットワーク)、コネクタディスパッチャー(スコープ化された認証情報)。これらのいずれも、エージェントが適切に動作することに依存していません。エージェントが適切に動作することは、セキュリティモデルではなく、追加のメリットです。