定義: 暗闇工場型 AI Agent は人間不在で稼働する。タスクを実行し、成果を監視し、承認ゲートに到達したとき、あるいは重要な変化を検知したときのみエスカレーションする。名前は製造業に由来する——「lights-out factory」は作業員がいないから消灯で操業する。設計の課題は、Agent が一人で走れるほど賢くすることではなく、一人で走りながらノイズを出さないほど自制させることである。
核心の設計問題
ほとんどの AI アシスタントはインタラクション用に設計されている:問われて答え、会話そのものがプロダクトだ。自律 Agent はこれを反転させる。プロダクトは誰も見ていない間に行われた仕事であり、インタラクションはハンドオフの瞬間——Agent が成果物を届けるとき、判断を求めるとき、失敗を報告するときにのみ起きる。この反転は設計思想の根本的な変更であり、単に「自動応答を有効にする」という話ではない。
ここに特定の設計上の緊張が生まれる。Agent が静かすぎると、ユーザーは何をしたか、失敗したかどうかも分からない。信頼は透明性から生まれるため、沈黙は疑念を生む。一方、うるさすぎると、無視するもう 1 つの通知ストリームになる。暗闇工場原理は、すべての潜在的シグナルをユーザーに届ける前にスコアリングパイプラインに通すことで、この緊張を解消する。重要でない信号は濾過され、重要な信号だけがユーザーの注意を引く。
注意スコアモデル
提案、変化検知、タスク完了、失敗——あらゆるシグナルは通知になる前にスコアリングパイプラインに入る。パイプラインは複数のスコア要素を合算し、最終スコアが通知のティアを決定する:
score = ruleScore + recencyScore + relationshipScore + urgencyScore + userPreferenceScore − noisePenalty − cooldownPenalty
スコアがティアを決定する。ティアは段階的にエスカレーションし、それぞれ異なるユーザーとの関わり方を持つ:
- Suggest(≥ 0.70): Agent の提案エリアに表示。プッシュ通知はしない。ユーザーが暇なときに確認する想定。
- Notify(≥ 0.82): プッシュ通知。ただしアクティブ時間帯のみ。ユーザーの集中を邪魔するが、重要な変化の可能性が高い。
- Auto-draft(≥ 0.90、低リスクのみ): 確認なしに回答やアクションを準備する。最もスコアの高いシグナルで、かつ低リスクに限定される。
外部への書き込み操作が自動実行されることはない。Auto-draft ティアはファイルの整理や要約の準備など、低リスクの内部アクション専用だ。この設計は、間違った自動実行のコストが自動応答の節約する時間よりも常に大きいという前提に基づいている。
注意予算
注意予算(Attention Budget)は、1 日にユーザーに届けられるシグナルの数に上限を設ける。これは Agent の仕事に対するスロットルではなく、Agent の割り込みに対するスロットルだ。Agent は連続して作業できるが、連続して注意を要求することはできない。ユーザーの注意は有限資源であり、それをどう配分するかはユーザー自身が決めるべきだ。
予算はクールダウンと連動する:通知の後、クールダウンタイマーが設定可能な期間中の次の通知を防ぐ。これは、Agent が何か面白いものを発見してユーザーに通知し、すぐにそれに関連するものを発見してまた通知するというよくある失敗モードを防ぐ。クールダウンは連続通知を防ぎ、ユーザーが前の通知を処理する猶予を与える。時間帯別の予算設定も可能で、作業中の集中時間帯と休憩中の寛容な時間帯で異なる閾値を適用できる。
設計哲学:ノイズを作るくらいならアラートを見逃す
V3 注意力戦略は保守的な姿勢をデフォルトとする:
宁可少提醒,不要频繁打扰。
ノイズを作るくらいならアラートを見逃す。
これは哲学的選択であり、技術的妥協ではない。論理はこうだ:1 つの関連通知を見逃したユーザーは、後で Agent のサマリーを確認すれば回復できる。しかし通知を多く受け取りすぎたユーザーは通知を完全に無効化し、それ以降すべてを見逃す。コストの非対称性が自制を支持する。一度信頼を失った通知システムを取り戻すのは、一度見逃した通知を取り戻すよりもはるかに難しい。
秘書=暗闇工場のインスタンス
Semibot の秘書は暗闇工場の主要コンポーネントだ。定期チェックを実行し、接続されたサービスを監視し、ダイジェストをまとめ、ユーザー不在で結果を届ける。秘書の注意モデルも同じパイプラインに従う——入力が必要なとき、承認が必要なとき、注意閾値を超える重要な変化を検知したときだけ割り込む。秘書は常に動いているが、ユーザーに気づかれない限りにおいて効率的だ。
秘書は単にタイマーでタスクを実行するわけではない。変化を見張っている。「前回チェック以降に新しいコンテンツがある」と「定刻になった」は異なるシグナルだ。変化認識型の配信により、何も動いていないとき秘書は静かにしている——これはまさに暗闇工場の原理である。変化がないのに報告するのは工場のラインが止まっているのに報告するのと同じで、情報価値がゼロだ。
自律モードの承認ゲート
自律稼働は無制限の稼働を意味しない。承認モデルは、Agent の確信度に関係なく迂回できないハードゲートを定義する。これらのゲートはAgent がどれほど自信を持っていても超えられない線であり、ユーザーの制御を保証する仕組みだ:
- 外部サービスへのメッセージ送信。Slack やメールへの自動投稿を含む。
- 許可されたディレクトリ外へのファイル書き込み。
- Git の書き込み操作(commit、push)。リポジトリの履歴を変更する操作は必ず承認を経る。
- 機能ポリシーがハイリスクとフラグをつけたあらゆる機能。財務操作やデータ削除など。
ユーザーはセッションを「auto-execute」モードに切り替え、ほとんどのアクションの確認をスキップできる。ただし auto-execute は危険として視覚的にマークされ、フォルダ許可、ブラウザのハードゲート、システム権限を迂回することはできない。この設計により、完全自律の Agent であっても、ユーザーが明示的に設定した境界内で動作する。自律性と制御のバランスは、デフォルトで制御を優先する形で解決されている。
却下フィードバックと学習
ユーザーが提案を却下すると、その却下はフィードバックになる。スコアモデルはユーザー選好の重みを調整し、類似のシグナルは将来スコアが低くなる。これによりフィードバックループが生まれる:Agent は保守的にスタートし、ユーザーの却下が「うるさい」とは何かを教え、時間とともにシグナル対ノイズ比が改善する。初期の段階では多少のうるささは許容範囲であり、学習のためのコストとして受け入れる設計だ。
代替案——ユーザーに手動で通知設定を構成してもらう——はさらに悪い。ほとんどのユーザーはしきい値を設定せず、ノイズに耐えるか通知を完全にオフにするかのどちらかだ。却下=フィードバックは、選好学習のためのより良いインターフェースだ。ユーザーは設定画面を開かなくても、不要な通知を閉じるだけで好みを教えてくれる。この暗黙のフィードバックは、明示的な設定よりも多くの情報を提供し、モデルの精度を継続的に向上させる。
限界
- 注意モデルはスコアリングにモデルプロバイダが必要だ。モデルが利用できない場合、エージェントは精度の低いルールベーススコアリングにフォールバックする。これは一部のシグナルの見落としや誤検知を増やす可能性がある。
- アクティブ時間帯は大まかな仕組みだ。明示的な設定なしには、Agent はあなたが会議中か、寝ているか、休暇中かを知らない。カレンダー連携による自動検出は現時点では未実装だ。
- 却下フィードバックは局所最適を生む:すべてを却下すると、Agent は何も表示しなくなる。これは正しい振る舞いだが、Agent が動かなくなったように感じられる。定期的な「見直し」提案や、長期的な却下パターンのリセット機能が将来必要になるかもしれない。
- 暗闇工場原理は、Agent の仕事が无人で走るに値するほど価値があることを前提とする。アドホックな一回限りのタスクには、会話型インターフェースの方がシンプルで適している。暗闇工場が効果を発揮するのは、継続的な監視や繰り返し作業がある場面だ。
無人運転を可能にする四つの保障ゲート
Semibot の暗闇工場(Goal Factory)は単一のゴールカーネルの上に構築され、第二のタスクシステムを持ちません。セッションの入力欄がゴール作成の唯一の入り口です。無人運転が可能なのはモデルが強くなったからではなく、四つの明示的なゲートのためです。第一に、承認は事前委譲できない。定期タスクは作成時の承認モードのスナップショットを持ち、無人実行が確認待ちの段階に達したらその場で停止します。ユーザーが不在だからと自動で承認に昇格することはありません。第二に、消費は事前割当て必須。すべてのバックグラウンド実行は、最初の管理呼び出しの前に作成時に固定されたポイント予算を保持し、上限に達すれば停止して通知します。先に実行して後から聞くことはできません。第三に、自己複製の禁止。実行中のタスクはタスクの作成・削除・再スケジュールができず、スケジューラの自己拡散を防ぎます。第四に、無人の資格情報入力の禁止。定期ブラウザ実行もログインと決済のハードゲートに従います。
同様に研究価値が高いのは、記録された失敗事例です。あるリリースレビューで、ゴール作成時に入力欄の下書きを無条件にクリアし、ユーザーの資料と意図が静かに失われる問題が発生しました。復元不可能です。これは P0 のデータ連続性ゲート違反と判定され、リリースは却下され、修正は資料をゴール契約に永続化するか、明示的な説明とともに提出を阻止することを要求しました。教訓は一般化できます。無人システムの本当のリスク分布は、誤ったモデル推論ではなく、工学の継ぎ目での静かなデータ損失にあります。
適用境界も設計に書き込まれています。暗闇工場は明確な完了終点を持つ複雑なゴールを対象とします。開かれた継続的注視は秘書の継続委任モデルの領域であり、両者は混ざり合うのではなく、アーキテクチャ上で分担します。
FAQ
Agent は常に稼働しているのか?
秘書は自身のスケジュールで稼働する。他のタスクは割り当てられたときに走る。注意システムは常にアクティブで、すべての実行中タスクからのシグナルをスコアリングしている。ただしスコアリング自体は軽量な操作で、Agent がタスクを実行していないときは待機状態になる。
アプリを閉じるとどうなるか?
デスクトップでは、アプリが再起動されたときにスケジュール済みタスクが再開される。アプリを閉じている間に生成された保留中の結果は、次回起動時に配信される。つまりアプリを閉じている間にも秘書の仕事は蓄積され、開いたときにまとめて受け取れる。
タスクごとに異なるノイズレベルを設定できるか?
現在の設計ではタスク単位ではない。注意予算とクールダウンはグローバルに適用される。タスク単位のしきい値設定は将来の拡張候補の一つとして検討されているが、設定の複雑さとのトレードオフがある。
「おやすみモード」と同じか?
おやすみモード(DND)はすべての通知を抑制する。注意モデルは選択的だ:スコアの高いシグナルは、低いものが抑制されていてもアクティブ時間帯に届く。おやすみモードが「全拒否」なら、注意モデルは「選択的受入」だ。解決する問題が異なる。
Agent は「重要な変化」をどう判断するか?
スコアモデルは、ルールベースのヒューリスティクス(新しいコンテンツ、ステータス変化、エラー)とモデルベースの関連性スコアリングを組み合わせる。「重要な」の閾値は保守的にチューニングされており、曖昧な変化は見逃す方向に倒している。これにより、ユーザーにノイズが届くリスクを抑えている。
