Sally Ann O'Malley / サリー・アン・オマリー · 02:00 「これまでの 10 年、 私は何をやってきた? 我々はあらゆるアプリケーションを安全に動かせる。 それが RHEL の本質。 OpenCode を安全に動かせないなら、 むしろこれは世の中に見せる絶好の機会や」
AI Engineer Code Summit の 22 分セッション。 構成はシンプルで、 (1) なぜ OpenCode をコンテナで動かすのか、 (2) Podman Red Hat 主導の OCI 互換コンテナエンジン。 Docker 互換 CLI を持つが、 デーモンレスで rootless 実行が標準。 Podman secrets という、 ホスト OS のシークレット領域に API キー等を分離保管する機構を持つ secrets と OpenCode の secret ref の二重シールド、 (3) 個人運用の Forever Claw Sally が手元で常時稼働させてる OpenCode インスタンスの愛称。 sub-agent (Joy = 占星術担当、 Bruno = ボストン・ブルーインズ担当) を抱える。 「forever」 は常時稼働 = persistent の意。 ASR 誤認識で 『Claw』 と聞こえるが、 実態は OpenCode のインスタンス と sub-agents の運用、 (4) Kubernetes / OpenShift への持ち上げ、 (5) NVIDIA の 10 人エンジニア並列実証、 (6) 企業の新人 onboarding 用 「キュレーション済みベースライン image」 の構想。
Tavoon の OpenCode 埋め込み建築論 と同じシリーズ。 Matthias が 「OpenCode を自社プロダクトに埋め込む」 上位レイヤーの設計を語ったのに対し、 Sally は 「OpenCode を企業のセキュリティ境界の中で、 既存のコンテナ運用知見をそのまま転用して動かす」 下位レイヤーの実装パターンを共有する。 同じ Code Summit の中で、 OpenCode の生態系が 「埋め込み」 と 「運用」 の両方向で同時に成熟しているのが見える。
Intercom が Claude Code を全社統一プラットフォームにした 2024 年 12 月の決定 と並べると、 業界の二極が見える。 Intercom は商用ベンダー (Anthropic) の Claude Code に一本化、 Sally / Red Hat は OSS の OpenCode を Podman + Kubernetes で自社運用。 どちらも 「企業のセキュリティ境界の中で AI コーディングエージェントを動かす」 という同じ問題に、 異なるベンダーロックインの選択で応答してる。
着眼点
「コンテナで動かすのが当たり前」 という 10 年の蓄積を AI に転用する (02:20 - 04:30)
Sally のキャリアは Red Hat で最初の 7 年が OpenShift とコンテナとリナックスセキュリティ、 次の 5 年が Emerging Tech org、 直近 3 年が AI。 その視点から見ると、 「OpenCode はセキュリティの悪夢」 という Slack の警告は奇妙に映る。 「10 年間、 我々はあらゆるアプリケーションを安全にコンテナで動かしてきた、 それが RHEL の本質や」 (02:20)。
Sally の挙げたコンテナで動かすメリットの一覧は、 そのまま AI ワークロードに転用できる: 再現性 (reproducibility)、 シークレット隔離 (secrets isolation)、 インフラ間の可搬性 (laptop / x86 / Mac / Kubernetes)、 ボリュームによるバックアップ・リカバリの素直さ、 そして ホストとの自然なサンドボックス境界。 「ホストから何を見せるかを明示的に決めないといけない、 これがコンテナの定義」 (04:30)。
これは Namespace の Hugo Santos が描く 「inner loop の高速化と隔離」 と同じ景色を、 個人と中小チームのスケールで運用する側から見たもの。 Hugo は CI/CD ベンダー側、 Sally は Linux ディストリビューション側、 両者とも 「コンテナがエージェントの基本単位になる」 という同じ前提に立つ。
Podman secrets + OpenCode secret ref の二重シールド (06:08 - 07:41)
Sally がコードよりも時間を割いて説明するのが、 シークレットの二重隔離。 Podman secrets Podman の機能。 ホスト OS のシークレット保管領域に API キーなどを保存、 コンテナ起動時に環境変数や file mount として注入する。 シークレットがコンテナイメージ・ログ・履歴に残らないのが利点 でホスト側に API キーを保存、 それをコンテナにマウント。 これだけでもよくある実装だが、 OpenCode 側にも secret ref OpenCode の機能。 設定ファイル内で API キーを直接書く代わりに、 環境変数や外部シークレットへの参照 (ref) として記述する。 ログにキーが現れない、 設定ファイル共有時にキーが漏れない、 という分離が目的 という機能があって、 「API キーは secret ref で外部のシークレットを指す、 二重にラップする」 (06:53 - 07:00)。
Sally の整理: 「完璧ではない、 でも API キーがログに出てくる事故から、 ある程度の peace of mind を得られる」 (07:30)。 そして Kubernetes に持ち上げると同じ構造が再現する — Kubernetes Secrets + OpenCode の secret ref。 「ローカルの構造がそのまま K8s に持ち上がる」 のが、 コンテナで揃える運用の最大のメリットになる。
これは Trigger.dev の Eric Allam が語る Firecracker microVM スナップショット と同じ業界の収束パターン — 「エージェントの実行環境を OS レベルで隔離 + 監査する」。 個別の実装 (Podman / Firecracker / NVIDIA OpenShell / OpenCode のシェルサンドボックス) が、 エージェント時代のセキュリティ標準として組み合わさる方向。
Forever Claw と sub-agents — 個人運用の人格化 (03:06 - 05:37)
Sally の自己開示でセッションの色合いが決まる。 「私の Forever Claw はシュブラ、 sub-agent が 2 体」 (03:06)。
- Joy: Jyotish 占星術の専門家。 毎週の運勢、 出生図、 当日の運勢を返す。 「今日は talk するのにとても auspicious な日」 (05:00) と言わせる
- Bruno: ボストン・ブルーインズ (Boston Bruins、 NHL チーム) のデイリーブリーフィング担当。 「Bruins はようやく覚醒、 プレイオフへの登り調子」 (05:30)
ここで重要なのは中身ではなく形式。 OpenCode は 「会社の業務をやる単一の道具」 ではなく、 「個人の手元で常時稼働してる、 sub-agent を抱える人格化されたシステム」 として運用されてる。 Forever Claw は systemd で毎晩バックアップされ (「Mac だと systemd じゃないけど、 とにかく毎晩バックアップしてる」)、 ボリュームに状態が乗ってる、 移植可能。
MEMEX 編集視点では、 これは Viktor (Slack に住む AI 同僚) の個人版。 Fryderyk が 「組織に住む新しい同僚」 を提唱したのに対し、 Sally は 「自分の手元で常時稼働してる、 占星術と NHL に詳しい AI 同居人」 を提示する。 同じ Code Summit の中で、 「AI を所有する単位」 が個人 / 組織の両端で再定義されてるのが見える。
NVIDIA の 10 人エンジニア並列実証 — 「1 人が 6 人分の仕事」 (09:12 - 10:46)
Sally が PyTorchCon の前日に NVIDIA の友人から共有された情報。 「彼らはモデル評価を OpenCode で動かしてる。 10 人のエンジニアが、 それぞれ自分の OpenCode を Kubernetes で並列稼働、 定期的にモデル評価に立ち寄ってチェックする」 (09:30)。 そして友人の体感: 「自分 1 人が 6 人分の仕事をしてるみたいや」 (09:50)。
Sally のフォロー: 「皆が職を失うわけじゃない、 これが enabling してるのは、 つまらない作業 (tedious code) から解放されて、 fun stuff、 interesting stuff、 creative things に集中できることや」 (10:20)。 「私はもう数ヶ月コードを書いてない、 AI の方が遥かに上手」 と社内の org meeting で言ったら、 Red Hat の top engineer 達は眉をひそめた、 と苦笑。
Intercom が 9 ヶ月で開発速度 2 倍 (Brian Scanlan) と並べると、 体感スケールが見える。 Intercom は 1,400 人規模で 2 倍、 NVIDIA の話は 10 人規模で実質 60 人分 (= 6 倍)。 「規模が小さい・並列度が高い・モデル評価のような明確に並列化できるタスク」 だと倍率が跳ね上がる、 という業界の体感が裏打ちされてる。
Mac の壁 — コンテナからコンテナを spawn できない (14:13 - 15:01)
ライブデモ中の重要な但し書き。 Sally の手製インストーラは npm run dev で起動するが、 これ自体をコンテナで動かしたいと思っても、 Mac だとできない。 「Mac でコンテナを動かす時は、 常に裏で VM が走ってる。 Docker でも Podman でも同じ。 コンテナは Linux でしか動かない」 (14:30)。
この一文は AI 運用の現場で重要な意味を持つ。 「ローカルで Linux と同じ環境を再現したつもりでも、 Mac は本質的に VM 越し」 という事実は、 「テスト環境とプロダクションの差」 を生む。 Linux ホストならコンテナから子コンテナを spawn できる (= OpenCode が自分の sub-agent をコンテナとして起こせる)、 でも Mac ではそれが追加の摩擦になる。
これは Prince Canuma の MLX オンデバイス AI 議論 の裏返し。 Apple Silicon は推論面で強いが、 コンテナ運用面では Linux に比べて 1 階層余分な VM が挟まる。 個人開発者の選択 (Mac か Linux か) が、 そのまま 「AI エージェントをローカルでどこまで隔離できるか」 を決めてしまう。
企業ビジョン — 新人 onboarding 用キュレーション済みベースライン image (11:40 - 13:00)
Sally の話の中で最も企業導入と直接接続する部分。 「私のビジョンは、 会社向けに キュレーション済みのベースライン OpenCode image を持つこと。 新人が入社した日に、 そのベースを受け取る」 (11:40)。 そのベースに含まれるもの:
- 会社承認済みの MCP server Model Context Protocol サーバ。 LLM エージェントに外部ツール・データソースをプラグインできるようにする標準。 ファイルアクセス・社内 API・データベース等を、 統一インターフェースで agent に提供する リスト
- 会社承認済みの認証 (OAuth 等)
- そのチーム固有の Skills Anthropic が提唱、 業界に広がるエージェント能力の単位。 1 つの skill = 「特定のタスクを実行する手順 + 必要なツール + 参考資料」 の束。 エージェントが intent に応じて自動選択する 群 (Google Drive アクセス、 社内ツール連携、 等)
「これを新人にファンアウトして、 そこから本人がパーソナライズする。 オルタナティブは何か? 隣に座って既存メンバーのレポを覗き込んで、 自分で組み立てる」 (12:30 - 12:43)。 つまり 「AI エージェントの onboarding を、 環境の標準化で解く」。
これは Intercom の skill / hook / plugin デプロイ (Brian Scanlan) と同じ景色だが、 ベンダーロックインの選択が異なる。 Intercom は Anthropic Claude Code のプラグイン機構を社内デプロイインフラに乗せた、 Sally は OSS の OpenCode を Podman + Kubernetes の上に乗せた。 同じ企業ニーズに対する 「商用 vs OSS」 「クラウド vs オンプレ」 の選択が並列に生まれてる。
10,000 commits / 数日 — OpenCode upstream の異常な開発速度 (12:56 - 13:43)
Sally の苦笑混じりのコメント。 「毎時 100 個くらい新しい commit が main に来る、 だから私は constantly pull from main してる。 PyTorchCon に行ってて 2-3 日 pull してなかったら、 10,000 commits 溜まってた、 マジで。 『お前ら、 落ち着け』 って言いたかった。 でも本当は、 落ち着いてほしくないけど」 (13:20)。
この一節は OpenCode の生態系の速度を示す。 OSS のコーディングエージェントが、 1 ヶ月で数十万 commit、 数日で 1 万 commit 級の更新を受け続けてる。 「SST が中心、 でも周辺に強い貢献者がいる」 という、 商用 Claude Code とは異なる開発分布。 そして Sally のように 「毎日 pull、 毎日 build」 する個人運用者が、 その速度を吸収する側にいる。
対照として、 Anthropic の Claude Code は単一企業の中で開発される、 速度は速いが分布は集中。 OpenCode は分布が広い、 速度の総和は商用と並ぶか上回るかもしれない。 「OSS と商用が、 OpenCode と Claude Code として、 似た成熟速度で並走してる」 のが 2026 年中頃の景色。
動画の構成
- (00:00) 自己紹介 — Red Hat 10 年、 最初の 7 年は OpenShift / コンテナ、 直近 5 年は Emerging Tech、 直近 3 年は AI
- (01:33) Staycation 中に OpenCode に出会う、 MIT ライセンスを確認して OpenShift で動かす
- (02:00) Slack で 「セキュリティの悪夢、 入れるな」 と言われる、 RHEL の歴史を引いて反論
- (02:20) コンテナで動かすメリットの一覧 (Forever Claw に聞いた)
- (03:06) Forever Claw と sub-agents (Joy = 占星術、 Bruno = Bruins) の紹介
- (04:38) コンテナ = clean predictable environment、 OS quirks や依存関係から独立
- (05:37) エージェント directory のマウントパターン (tools / skills / MCP servers をまとめて)
- (06:08) Podman secrets と OpenCode secret ref の二重シールド
- (07:41) Kubernetes secrets と secret ref も同じ構造、 ローカルから K8s へ持ち上げる
- (08:27) エージェントがどこでも動く時代、 ビジネスユースケースのスケール課題
- (09:12) NVIDIA の 10 人エンジニア並列実証、 「1 人で 6 人分」
- (10:01) AI が enabling するのは creative work、 自分はもう数ヶ月コードを書いてない
- (11:09) Backup and recovery、 Podman volumes、 Kubernetes PVC
- (11:40) 企業向けキュレーション済みベースライン OpenCode image のビジョン
- (12:43) 新人 onboarding パターン (ベースに skills / MCP / OAuth が同梱)
- (12:56) Forever Claw を最近やっと作った話、 OpenCode 上流の凄まじい commit 速度
- (13:43) ライブデモ準備、 残り 4 分
- (14:13) Mac の壁 — Mac は VM 越しなのでコンテナから子コンテナを spawn できない
- (15:01) インストーラのデモ開始 (Joe という名前で新しいインスタンスを起こす)
- (16:17) Podman secret mapping、 API キーを secret ref として注入
- (17:04) プロバイダ設定 (OpenRouter + Gemma、 fallback で Anthropic)
- (17:30) Open Telemetry collector + Jaeger オプション (デモではスキップ)
- (17:49) SSH sandbox 機能の紹介、 SSH キー指定でリモート workspace で実行
- (18:34) Podman command の確認、 Docker でも動くはずだが未検証
- (19:08) Joe のインスタンスでモデル一覧、 状態確認
- (19:55) Larry のインスタンスで MCP server と sub-agent が事前設定済みの例
- (20:39) Kubernetes でも同じパターンが動く、 Kind cluster に Carl というインスタンス
- (21:09) OpenShift にもつなぎ替え可能、 全体のまとめ
関連記事
- Tavoon: OpenCode を自社プロダクトに埋め込む — 同じ Code Summit、 OpenCode 埋め込み側の建築論
- Intercom 2x — Claude Code 全社展開 — 商用エージェントの企業デプロイ、 同じ問題への異なる選択
- CI/CD は死んだ — Continuous Compute — エージェント実行環境のスケール論
- Trigger.dev: 耐久性のあるエージェント — Firecracker microVM での隔離パターン
- Viktor: Slack に住む AI 同僚 — Forever Claw の組織側の対応物
重要な引用
- 「10 年間、 我々はあらゆるアプリケーションを安全にコンテナで動かしてきた、 それが RHEL の本質や」 (02:20)
- 「OpenCode を安全に動かせないなら、 むしろこれは世の中に見せる絶好の機会や」 (02:30)
- 「Context decides what the model sees、 Memory decides what survives ではないけれど、 ホストから何を見せるかを明示的に決めないといけない、 これがコンテナの定義」 (04:30)
- 「API キーが secret ref で外部のシークレットを指す、 二重にラップする。 完璧ではないが、 ある程度の peace of mind」 (07:30)
- 「自分 1 人が 6 人分の仕事をしてるみたいや」 (NVIDIA エンジニアの体感、 09:50)
- 「皆が職を失うわけじゃない、 enabling してるのは creative work に集中できること」 (10:20)
- 「私はもう数ヶ月コードを書いてない、 AI の方が遥かに上手」 (10:30)
- 「Mac でコンテナを動かす時は、 常に裏で VM が走ってる、 コンテナは Linux でしか動かない」 (14:30)
- 「キュレーション済みベースライン OpenCode image、 新人がそのベースを受け取る」 (11:40)
- 「2-3 日 pull してなかったら 10,000 commits 溜まってた、 『お前ら、 落ち着け』 と言いたかったが、 本当は落ち着いてほしくない」 (13:20)
出典
Lobster Trap: OpenCode in Containers from Local to K8s and Back — AI Engineer 公式チャンネル (YouTube)
関連リソース:
注: 一次資料の SRT トランスクリプトでは ASR (自動音声認識) の誤認識により 「OpenClaw」 と表記されてるが、 これは 「OpenCode」 の聞き取り間違い。 SST が公開してる MIT ライセンスの OSS コーディングエージェント (https://github.com/sst/opencode) を指す。 本記事では一貫して 「OpenCode」 と表記してる。
用語集
- OpenCode
- SST 社が開発・メンテする OSS のコーディングエージェント (MIT ライセンス、 https://github.com/sst/opencode)。 Claude Code、 Cursor の OSS 代替として注目される。 マルチプロバイダ対応 (Anthropic、 OpenRouter、 ローカルエンドポイント等)、 MCP server、 sub-agent、 secret ref、 SSH sandbox など。 数日で数千 - 1 万 commit 級の活発な開発が進む。
- Podman
- Red Hat 主導の OCI 互換コンテナエンジン。 Docker と互換性のある CLI を持つが、 デーモンレス・rootless 実行が標準。 Podman secrets という、 ホスト OS のシークレット領域に API キー等を分離保管する機構を持つ。 Sally のインストーラは Podman をデフォルトとしつつ、 Docker でも動くよう設計されてる (未検証)。
- Podman secrets / OpenCode secret ref の二重シールド
- API キーをホスト OS の secret store に保管 (Podman secrets) し、 OpenCode 設定では直接キーを書かず secret ref として参照する、 という二段階の隔離。 ログに API キーが残らない、 設定ファイル共有時に漏れない、 という peace of mind を提供。 Kubernetes 側に持ち上げると Kubernetes Secrets + secret ref の同じ構造になる。
- Forever Claw
- Sally が自分の手元で常時稼働させてる OpenCode インスタンスの愛称 (本名はシュブラ)。 「forever」 は常時稼働 = persistent の意。 Boltbook のバックアップを systemd 系のサービスで毎晩取り、 ボリュームに状態を保持。 sub-agent として Joy (Jyotish 占星術担当) と Bruno (Boston Bruins デイリーブリーフィング担当) を抱える、 人格化された個人 AI 同居人として運用される。
- Sub-agent
- OpenCode が抱える従属エージェント。 メインエージェントが特定のドメインタスクを sub-agent に delegate する。 Sally の Joy / Bruno は趣味用、 NVIDIA のエンジニアのケースだとモデル評価用、 企業向けでは社内ツール連携用などに使われる。 Anthropic の Skills と並列のパターン。
- OpenShift
- Red Hat のエンタープライズ Kubernetes ディストリビューション。 Kubernetes に追加の運用機能 (CI/CD、 認証、 セキュリティポリシー、 開発者ワークフロー) を統合。 Sally が最初の 7 年取り組んだ製品。 ローカルで Podman で動かした OpenCode を、 そのまま OpenShift にデプロイできる、 という connectivity を実演する。
- PVC (PersistentVolumeClaim)
- Kubernetes における永続ストレージの抽象。 Pod が再起動・移動しても、 PVC にバインドされたボリュームは状態を保持する。 Sally の文脈では、 OpenCode のランタイム状態 (会話履歴、 メモリ、 設定) を PVC に乗せて、 Kubernetes 上で Forever Claw 相当の persistence を実現する。
- Open Telemetry / Jaeger
- 分散トレーシングの業界標準。 Open Telemetry はメトリクス・トレース・ログの収集仕様、 Jaeger は分散トレースのバックエンド UI。 Sally のインストーラには Open Telemetry collector + Jaeger 構成のオプションがあり、 OpenCode のエージェント呼び出し・ツール呼び出しを観測できる。 観測性は Sally の本業領域でもある。
- SSH sandbox (OpenCode の機能)
- OpenCode がコマンド実行を SSH 経由のリモート workspace で行う機能。 SSH キーと known hosts を渡すと、 OpenCode はそこで全コマンドを実行する。 「ローカルマシンの汚染を避けつつ、 リモート環境を自由に操作させる」 隔離パターン。
- Lobster Trap (本セッションタイトルの由来)
- 「ロブスターの罠」 = OpenCode をコンテナという 「罠」 で囲い込み、 安全に動かす、 という比喩。 同時に 「ロブスターの罠は出入り両方ある」 = ローカルで作って Kubernetes に持ち上げ、 また戻ってこられる、 という双方向性 (Local to K8s and Back) を含意。 Sally の Boston 文化 (ボストン・ブルーインズ、 ロブスター) を反映した命名。