ARTICLE / 00406 章立て

Harness は、モデルの外側にある仕事の設計。

OpenCode、Plugins、OmO、Pi、oh-my-pi、Codex。名前を並べるのではなく、どこで実行し、どう引き継ぎ、どう受け入れるかを考える。

  • Harness
  • Plugin
  • Orchestration
  • Coding
研究ノート
ARTICLE / 004技術研究・開発ノート

01

まず Model と Harness を分ける。

モデルの回答能力と、作業環境に何ができるかは別の問題だ。

Harness はモデルを仕事に参加させる外側の仕組みだ。ファイル、編集、Shell、LSP、ブラウザ、権限、Context、分担、報告まで含む。モデルだけがワークフローではない。

同じモデルでも、Harness が違えば読めるファイル、使えるツール、並行実行、確認に戻る場所が変わる。名前の比較だけでは、結果を決める条件を隠してしまう。

先に仕事がどこで終わるかを決め、そのあとでモデルを選ぶ。

CONTEXT
必要な資料をモデルに渡す
TOOLS
読む・直す・実行する手段
POLICY
できることと止まる場所を決める

02

Plugin は作業環境をイベントにつなぐ。

OpenCode の Plugin は魔法のボタンではなく、確認できる拡張の境界だ。

OpenCode の公式ドキュメントでは、Plugin は project または global の .opencode/plugins に置け、npm からも読み込める。permission、tool.execute、session、message などのイベントに接続できる。

まず AI に公式ドキュメントを読ませ、Plugin のイベントと制限を平易な言葉に直してもらう。そのうえで、自分が解決したい反復作業を話し合い、どのイベントで介入し、どの Context を読み、いつ確認に戻るかを設計する。

Plugin はすべての能力を開くものではなく、一つの明確な動作を AI に任せる境界だ。小さな試作から始め、差分、権限、出力、Shell 引数、データの範囲を確認してから残す。

一つの Plugin の流れ概念図
  1. 01

    LOAD

    project / global / package

  2. 02

    HOOK

    決めたイベントで介入する

  3. 03

    REVIEW

    差分・権限・出力を見る

03

OmO は編成を広げ、コストも広げる。

複数の Agent が、そのまま良い判断になるわけではない。

oh-my-opencode(資料では oh-my-openagent という名前も使われる)は、OpenCode を複数 Agent、役割、LSP / AST ツール、MCP の組み合わせへ広げる。計画、研究、実装、Review を並行する仕事には魅力がある。

OmO は自分が主に開発で使う作業面だ。複数ファイルの理解、計画、実装、Review が必要なときに仕事を分けて引き継がせる。ただし小さな仕事には厚すぎる。引き継ぎ、設定、実行状態で問題が出たら Codex に切り替え、差分と受け入れ確認を一つの作業面へ戻す。

編成の層が厚くなるほど Context、モデル設定、Hook、権限、失敗経路も増える。OmO は既定のスイッチではなく、まず小さな引き継ぎを試してから広げる作業モードとして扱う。

編成で増えるもの概念図
手順GAINCOSTSTOP
並行研究・専門役割・ツール連携含む含まない含まない
増える Context・権限・引き継ぎ含まない含む含まない
一つの Agent に戻る判断含まない含まない含む

04

Pi は Agent を組み立てられる端末へ戻す。

oh-my-pi は IDE のような機能を、組み立てられる核に置く。

OpenCode は、Plugin を project または global の設定から読み込み、イベントやツールを足していける比較的厚い作業台として見ている。Pi は最小の terminal coding harness として core loop を小さく保ち、必要な機能を extension、skill、package で組み立てる方向だ。oh-my-pi はそこへ LSP、AST、Browser、Python、Subagents、SDK、RPC を足す。最初から持つ機能と、使う側が後から組み立てる部分が違う。

DeepSeek Harness は developer preview の研究対象で、モデル、ツール、session、sandbox、loop までを plugin として差し替えられる設計を示している。MiniMax Code は別の方向で、公式リポジトリでは terminal coding agent として、検索、plugin、multimodal tool、既存モデルの接続を一つの作業面にまとめる。どちらも日常開発では使っていないので、ここは資料を読んで整理した設計の比較だ。

自分の場合、GPT 系のモデルは native Harness に戻した方が、プロジェクトの読解からツール呼び出し、差分、受け入れ確認までが一続きになりやすい。Cursor も似ていて、Composer 2.5 と Grok 4.6/4.7 は Cursor の中で使う方がまとまりがよく、外へ出すと Context やツールの引き継ぎで迷うことがある。これは今の自分の使い方から出てきた感想だ。

組み立てられても、コストはある概念図

CORE

Agent loop と端末作業

EXTENSIONS

LSP・AST・Browser・Subagents

OWNERSHIP

設定・更新・互換性

05

Codex は依頼・変更・受け入れを一本につなぐ。

大切なのは、差分が人の手に戻ることだ。

Codex CLI はモデルだけでなく、プロジェクトの読解、編集、コマンド、approval を同じ面に置く。変更を差分とテストへ戻しやすい。

OpenCode、Codex、Pi を置き換えの順位で見ない。Context の渡し方、ツール、権限の停止点、結果の戻り方が違う。

送信、公開、デプロイの前には、人が確認できる停止点を残す。それが Harness の最後の責任だ。

DIFF
何を変えたか
CHECKS
どう確認したか
BOUNDARY
まだしていないこと

06

日常の主力は、OpenCode と Codex。

他の Harness は、違いを知るために試している。

日常の開発では OpenCode と Codex を使っている。OpenCode は複数ファイルを読み、計画、実装、Review まで続ける主な作業面。Codex は同じプロジェクトで差分、コマンド、テスト、受け入れ確認を一つにつなぎやすい。

Pi、DeepSeek Harness、MiniMax Code などは、どのようにモデルを接続し、Context を保ち、ツールと権限を扱うかを見るための試用だ。主力を置き換えるためではなく、今の道具の良さと限界を理解するために触っている。

Google の Gemini CLI も、Google の OAuth を第三者 Harness がそのまま借りる形には制限がある。第三者の開発環境から使うなら、Google AI Studio の API key や Vertex AI のように、公式に用意された経路を使う必要がある。

DAILY
OpenCode / Codex
STUDY
Pi / DeepSeek Harness / MiniMax Code
ACCESS
公式 API と権限の境界