Safe Outputs は、Continuous AI を支えるパーミッションモデルに対する GitHub の呼称であり、エージェントに何を許すかについての決定的な契約である。実践における Continuous AI:エージェント型 CI で開発者が今日自動化できること での説明によれば、エージェントはデフォルトでリポジトリへの読み取り専用アクセスで動作し、明示的に許可されない限り、issue の作成、プルリクエストのオープン、コンテンツの変更を行うことができない。ワークフローを定義する際、開発者はエージェントが生成してよい成果物――プルリクエストのオープンや issue の起票など――と、その際の制約を厳密に指定し、その境界の外にあるものはすべて禁止される。

用法

このモデルは、エージェントが失敗したり予期しない振る舞いをしたりしうることを前提としていると説明されている。述べられている特性は、出力がサニタイズされること、パーミッションが明示的であること、すべての活動がログに記録され監査可能であることであり、その結果として影響範囲は決定的であると説明されている。情報源はこの仕組みを、開発者が明示的に定義したガードレールの内側で AI が動作するものと特徴づけており、AI がソフトウェア開発を乗っ取ることとは区別している。

同じ設計において、エージェント型ワークフローは自律的なコミットを行わない。開発者が作るのと同じ種類の成果物を作成し、最も一般的な出力はプルリクエストだと報告されている。開発者がすでに変更をレビューしているやり方に合致するからである。述べられている帰結は、エージェントはコードをマージせず、開発者が完全なコントロールを保持し、すべてが可視化されレビュー可能であるということである。

GitHub Agentic Workflows では、この契約はワークフローファイル自体のフィールドである。GitHub のドキュメントは safe-outputs を主要なフロントマターフィールドの 1 つとして挙げ、エージェントが実行を許される書き込み操作――たとえば create-issue、add-comment、create-pull-request――を定義するものとしている。これと並ぶのが、エージェントに付与されるリポジトリのパーミッションである permissions で、デフォルトは read-all である。ドキュメントの例である週次の issue 活動レポートは create-issue のみを宣言しており、そのためレポートは新しい issue として届けられる。

適用される場面

これは、開発者がエージェント型ワークフローを定義するときに適用される。開発者はエージェントが生成してよい成果物とその際の制約を宣言し、その境界の外にあるものはすべて禁止され、結果として得られる成果物は開発者によってレビューされる。情報源は、開発者の判断が最終的な権限であり続けると説明している。

確立の度合い:ここで参照できる説明はいずれも単一のベンダーである GitHub によるものである。一方は GitHub Next のブログ記事で説明された設計原則、もう一方はパブリックプレビュー中の製品である GitHub Agentic Workflows 向けに文書化された設定フィールドである。どちらも測定された結果は示していない。

関連用語