コンテンツにスキップ

AIOS
AIOSリリースMCPaios-shell要件grillingLLM安定性

v5.8.1:エージェントがフリーズしない——aios-shell 停止修正と LLM の意味判断による要件明確化

v5.8.1:エージェントがフリーズしない——aios-shell 停止修正と LLM の意味判断による要件明確化

v5.8.1 は 2 つの長年の痛点を修正します:コーディングエージェント(opencode、codex)がコマンド実行中に固まって回復不能になる問題と、ワークフロー層が「依頼が実際には曖昧である」ことを検出できない問題です。

停止問題:長いコマンドがエージェント全体をフリーズ

aios_shell で時間のかかるコマンド(ビルド、テスト実行、数分かかるスクリプト)を実行すると、エージェントが完全に停止しました。ping 応答なし、キャンセル不可、進行状況なし。Esc を押して「continue」を送るまで動きませんでした。

根本原因はアーキテクチャにありました:MCP server と stdio proxy が JSON-RPC を直列に処理していたのです。1 つの長時間コマンドが後続のすべてのリクエストをブロックし、Esc が送る notifications/cancelled も含まれていました。クライアントは文字通りコマンドをキャンセルできず、応答も一切返ってきませんでした。

変更内容

  • shell server のメインループは並行処理になりました:コマンド実行中も ping・キャンセル・その他のリクエストに即時応答します。
  • stdio proxy も並行転送するため、プロキシ層が上流コマンドでブロックされません。
  • notifications/cancelled は requestId 単位で実行中のコマンドを即時終了し、タイムアウトを待ちません。
  • Windows では taskkill /T /Fプロセスツリー全体を掃除します——cmd.exe 終了後に node/npm/git の子プロセスが残りません。
  • stdin クローズ時は実行中の全コマンドを整理し、何も放置しません。

aios-shell プロキシチェーンは維持されます:aios-mcp-proxy.mjs_meta.aios 観測メタデータとローカル ref を引き続き付与します。RTK/Caveman は引き続きクライアント側の出力圧縮です(プロキシは実際には出力を圧縮せず、そのまま転送します——SHELL_TOOL.description はもはや圧縮を主張しません)。

並行処理修正に加え、生成される MCP server 設定に起動タイムアウトの安全網を追加しました(Codex の startup_timeout_sec 60/30/30、OpenCode は experimental.mcp_timeout: 90000 を注入)。

もう一つの修正:依頼が曖昧であることを見抜く

ワークフロー層は以前、「この依頼は曖昧だ」を正規表現で判定していました。VAGUE_BEHAVIOR_PATTERN のようなパターンは明示的な言い回し(「优化一下」「tweak the login logic」)だけに一致し、より一般的なケース——具体的な機能名があるのに受け入れ基準・範囲・成功定義がない——を見逃しました。正規表現はユーザーがたまたま想定どおりの言い回しをしたときだけ発火したため、要件明確化はしばしばトリガーされず、エージェントは間違ったものを作りました。

Grilling は LLM の判断 + 実行中内蔵に

  • derive-facts.mjs は文言から正規表現で曖昧さを導出しなくなりました。
  • requirements Capability は grill/spec インテント(LLM の意味判断)またはドメイン語彙の曖昧さ observation でのみアクティベートされます。
  • rex-requirements実行中に埋め込まれた grilling を中心に書き直しました:一度に一つの決定質問・推奨回答付き・3 ラウンドで収束、そして本当の決定ポイントに当たったときだけ質問します。Grilling は冒頭の尋問ゲートではありません——エージェントはまず作業し、自分で事実を調べ、決定が本当にユーザーに属するときだけ立ち止まって質問します。
  • ワークフローランタイムは各ステージ境界で次の Capability を再選択するため、明確化を実行途中に挿入でき、完了後に元の Capability を再開します。

スキルの description は二重トリガーです:LLM は曖昧・範囲未定義・複数解釈可能な依頼(具体的な機能名があっても)で自己トリガーでき、rex-harness は従来どおりアクティベートできます。

アップグレード

aios update

設定の移行は不要です。更新後は opencode/codex を再起動し、新しい shell server と proxy を反映させてください。

このリリースのその他の内容

  • rex-code-reviewシナリオベースのサブエージェント受入モードを追加:隔離・コンテキストフリーの受入実行で、正常/境界/異常シナリオをカバーし、各発見に証拠を添付します。
  • すべての MCP 設定ジェネレーター(Codex TOML、OpenCode JSON)が起動タイムアウトをデフォルト出力します。