AI LIFE OS POST-CAMP RUN|13分のRelayで、ローカルQwenからKimi K3へMissionが渡った
IO|AI航海士です。
Summer Intensive Training Campは、昨日終わった。しかし翌夜、Campで作ったMission Controlを止めることはできなかった。
今度は訓練ではない。ローカルモデルとクラウドモデルへ、実際の開発Missionを順番に渡す。最初のSerial Multi-Builder Runを始めた。
ローカルAIが動き出すと、Macのファンが回り始めた。LM Studioでは、Qwen3.5-35B-A3Bの生成トークンが増えていく。OrcaのMission Controlでは、HermesがQueueを進めている。
その後、MissionはOpenCodeへ渡り、Kimi K3がWorktreeへ直接ファイルを書き始めた。
ストップウォッチを止めた時、表示されていた時間は13分31秒だった。
Campで構築したAI Organizationが、初めて一つのMissionを複数のBuilderへRelayし、Human Gateまで運んだ。
ただし、最後のCodexレビューはAPPROVEではなかった。判定はREVISE。実装が失敗したからではない。成果を証明するEvidenceが、まだ十分ではなかったからだ。

Campが終わった翌夜、最初の実運用Runを始めた
今回のNight Run 003では、二つのBuilderを直列に動かすことを目指した。
最初のBuilderは、M1 Max 64GB上で動くローカルQwen。次のBuilderは、OpenCodeを経由して動くクラウドモデル。
設計したQueueは、次の順番だった。
WP-01 Local Qwen Builder
↓
WP-02 OpenCode Cloud Builder
↓
WP-03 Deterministic Verification
↓
WP-04 Codex Independent Review
↓
PAUSED_FOR_HUMAN_GATE人間が行うのは、最初のLaunch Approvalと、最後のHuman Gateだけ。途中で承認要求や入力待ちが発生した場合はSAFE_STOPする。Commit、Merge、Push、Deploy、Publishは行わない。Builderの自己申告も、検証Evidenceとしては採用しない。
今回試したかったのは、単に複数AIにコードを書かせることではなかった。AIからAIへ仕事を渡す。別の仕組みで結果を検証する。そして、人間が判断すべき地点までMissionを運ぶ。
AI OrganizationとしてのRelayを成立させることだった。
最初に止まったのはローカルQwenだった
WP-01では、LM Studio上のQwen3.5-35B-A3BをNative REST APIから呼び出した。
使用したモデルは、Q4_K_M量子化の22.07GB。M1 Max 64GB上で、生成速度はおよそ毎秒50トークン前後だった。
起動そのものは問題なかった。しかし、最初のRunは途中で停止した。
原因候補として最初に見えたのは、Context Lengthだった。初期設定は4096。Qwenは実装案をreasoning側へ出力し続けたが、最終成果物として必要なJSONへ到達する前に出力上限へ達した。
finish_reasonはlength。最終contentは空だった。
そこでContext Lengthを8192へ増やし、WP-01をResumeした。しかし、再びSAFE_STOPした。Contextを倍にしても、Qwenは大量のトークンをreasoningへ使い、最終JSONを完成できなかった。
ここで分かった。問題は、単なるContext不足ではなかった。
当初指定していた、
"reasoning": "off"が、LM Studio側では実際には効いていなかった。
reasoning: offでは止まらなかった
Hermesに、Qwenのrequestとresponseを調査させた。その結果、LM Studioで実際に機能したのは別の設定だった。
Endpoint = /api/v0/chat/completions
Field = reasoning_effort: "none"この構成では、Qwenはreasoningへ大量のトークンを消費せず、最終成果物まで到達できた。
今回のRunで得られた重要なEvidenceの一つが、これだった。
仕様上は同じ「思考を止める」という意図でも、API、Endpoint、Model、Chat Templateによって、実際に効く指定は異なる。ドキュメント上で対応しているように見える設定と、実運用で本当に効く設定は同じではない。
この違いは、モデルを実際の組織へ配属しなければ見えない。
Qwenは、起動できるだけではBuilderにならない。仕事を渡し、失敗させ、Evidenceを確認し、実行条件を調整して初めて、組織の一員として配属できる。
ローカルQwenの機関室
設定修正後、WP-01を再開した。

LM StudioのLocal Server画面では、Qwenの生成がリアルタイムで見えた。GENの表示。増えていくToken数。Developer Logsへ流れる処理記録。生成速度は、およそ50tok/s前後。
そして、負荷が上がるとMacのファンが回り始めた。
OrcaがMission Controlなら、LM Studioは機関室だった。Hermesが指示を出す。ローカルQwenが実際に演算する。その痕跡が、別の画面へ現れる。
AIが動いていることを、抽象的なメッセージではなく、機械の挙動として確認できた。
この時、ストップウォッチを回し始めた。
QwenからOpenCodeへRelayされた
QwenがWP-01を完了すると、Hermesは次のWork Packageへ自動で進んだ。

WP-02では、OpenCodeのAgentがWorktreeへ直接ファイルを書き始めた。Hermesのログには、次の記録が残った。
Kimi K3 is using tools
Kimi K3 has now used 22 tools including 2 write callsここで、一つ重要なことが分かった。
OpenCodeの画面上では、DeepSeek V4 Flash Freeが選択されていた。しかし、今回Hermesが非対話CLI経由でDispatchしたPrimary BuilderはKimi K3だった。
G2パケットでは、Kimi K3がPrimary、DeepSeekがFallbackとして設定されていた。
つまり今回成立したRelayは、正確には次の構成だった。
Local Qwen
↓
Hermes
↓
OpenCode / Kimi K3
↓
Deterministic Verification
画面上で選択されているモデルと、非対話プロセスで実際にDispatchされたモデルは一致するとは限らない。これも重要な学びだった。
次回以降は、Provider IDとModel IDをRun Evidenceへ明示的に保存する必要がある。「どの画面に何が表示されていたか」ではなく、「実際にどのプロセスが、どのモデルを呼んだか」を記録しなければならない。
Kimi K3はWorktreeへ直接書いた
QwenのWP-01では、厳格なJSON Delivery方式を使用した。一方、Kimi K3はOpenCode AgentとしてWorktreeへ直接ファイルを書いた。
今回対象になったのは、次のUIコンポーネントだった。
ModelCapsule.tsx
ModelIdentityCard.tsx
AssessmentPanel.tsx
AssignmentMiniMap.tsx
OpenCodeのプロセスは正常終了した。ただし、Hermesはそれをそのまま成功とは判定しなかった。
実ファイルを確認する。許可されたファイル範囲を検証する。テストを実行する。
途中で、「interactive promptが存在する」という検出も発生した。しかし実際には、Agent Event JSON内に含まれていた?や>などの文字列を、検出ロジックが誤認した偽陽性だった。
Hermesは最初の判定をそのまま採用せず、実際のプロセスと出力を調査した。Builderを信じるのでもない。検出ツールを盲信するのでもない。Evidenceを取り直してから次へ進んだ。
133件のテストが通った
WP-02の独立テスト結果は、133/133 PASSだった。内訳は次の通り。
120 existing tests
5 WP-01 tests
8 WP-02 tests
既存テストにRegressionはなかった。Qwenが作成したWP-01の成果も保持されていた。Kimi K3が追加した8件のテストも、すべて通過した。
Hermesは、その後WP-03へ進んだ。WP-03では、次の検証が行われた。
Full Test Suite
Production Build
Runtime HTTP
Git Boundary
Dependency Boundary
Protected File Boundary
途中、git showを使った依存関係比較がDangerous Commandとして表示された。一瞬止まったように見えた。しかし処理はその後も継続し、最終的にNight Run 003はHuman Gateへ到達した。
表示された最終状態は、次だった。
NIGHT RUN 003 PAUSED FOR HUMAN GATE
ストップウォッチは13分31秒だった。
13分31秒で起きたこと
設定修正後の本走では、次の処理が行われた。
Local Qwen WP-01
↓
Qwen output verification
↓
OpenCode / Kimi K3 WP-02
↓
Worktreeへの直接書き込み
↓
133/133 tests PASS
↓
Production build PASS
↓
Runtime HTTP 200
↓
Git / Dependency boundary check
↓
Codex Reviewer Packet生成
↓
PAUSED_FOR_HUMAN_GATE
短いRunだった。しかし、その13分31秒の中で、複数のAIと複数の環境が連動した。
OrcaではAI Organizationが見えた。Z.aiではHermesのGLM-5.2利用量が増えた。LM StudioではQwenの生成速度とreasoning挙動が見えた。OpenCode GoではクラウドBuilderの利用量が増えた。Gitにはファイル変更が残った。Test Runnerには133件の結果が残った。
一つのRunが、複数の観測面へ同時に痕跡を残した。
別Providerだから、痕跡が顕著に現れた
今回面白かったのは、使用したモデルが一つのProviderに閉じていなかったことだ。
Hermes = Z.ai。Qwen = LM Studio上のローカルモデル。Kimi K3 = OpenCode Go。Codex = OpenAI。それぞれ別の場所に利用痕跡が残る。
Hermes / GLM = Z.ai利用量
Qwen Local = LM Studio GEN、tok/s、reasoning tokens、Macの負荷
OpenCode / Kimi K3 = OpenCode Go利用量、Tool Calls、Write Calls
Repository = Git Diff、Test、Build、Runtime
Codex = Independent Review
別Providerだからこそ、痕跡が顕著に現れた。
HermesがKimi K3を動かしたと報告する。同時刻にOpenCode Goの利用量が増える。Worktreeに対象ファイルの変更が残る。133件のテストが通る。
複数の外部痕跡が一致することで、「本当に動いた」という実行事実を再構成できる。これは、単一サービス内で完結するログよりも面白い。複数の独立した観測面が、互いを裏付け始めるからだ。
Token Cockpitはフライトレコーダーになる
Token Cockpitは、単なるトークン使用量のグラフでは足りないのかもしれない。必要なのは、分散した痕跡をRun IDで束ねるフライトレコーダーだ。
記録すべきなのは、トークン数だけではない。
Run ID
Model
Provider
Role
開始時刻
終了時刻
実行時間
Input Tokens
Output Tokens
Reasoning Tokens
Tool Calls
Write Calls
対象ファイル
Test結果
Build結果
Runtime結果
SAFE_STOP理由
Review判定
これらが一つのRunとして束ねられれば、AI Organizationが何をしたかを後から再構成できる。
どのモデルが高かったか。どのモデルが速かったか。どのRoleで止まったか。どの構成ならHuman Gateまで到達できたか。
今回、ストップウォッチを回したことで、トークンだけでは見えなかったRunの密度が急に見えるようになった。
13分31秒
Qwen → Kimi K3へRelay
133/133 PASS
Human Gate到達
開発が、作業ではなくMission Runになった。
UMPへ流れ込むModel Evidence
今回のQwen配属だけでも、Model Capsuleへ残せる情報は多い。
Model = Qwen3.5-35B-A3B
Environment = M1 Max 64GB
Quantization = Q4_K_M
Size = 22.07GB
Generation = 約50 tok/s
Context 4096 = 実Repository Taskでlength stop
Context 8192 = reasoning有効時はfinal JSON未到達
Verified non-reasoning = reasoning_effort: none
Minimal Assignable = PASS
Real Repository WP-01 = PASS
これはModel Cardのスペック表ではない。実際のAI Organizationへ配属したEvidenceだ。
起動できるか。使えるか。仕事を割り当てられるか。どの条件で止まるか。何を修正すれば通るか。
UMPが扱うべきなのは、このレベルの運用知なのだと思う。モデルの性能を語るだけではない。実際の環境で、どのRoleへ配属できるかを残す。
今回、Qwenは単なるローカルLLMから、限定されたWork Packageを担当できるLocal Builderへ一段進んだ。
Codexの判定はREVISEだった
Night RunはHuman Gateへ到達した。その後、CodexへReviewer Packetを渡し、G4 Independent Reviewを実行した。
判定はAPPROVEではなかった。
G4 REVIEW COMPLETE — REVISE
Codexが指摘したのは、主にEvidenceの不足だった。実装そのものについては、多くの項目が肯定された。
WP-02の許可ファイルへの書き込みを確認
133/133 tests PASS
Production build成功
Final HTTP 200
HEADは変更なし
Dependency manifestは変更なし
一方で、次の点は証明が弱いと判断された。
Pre-run baseline hashがない
Run開始前のファイルハッシュが保存されていなかった。そのため、現在の差分に含まれている変更が、今回のRunによるものか、それ以前から存在したものかを完全には証明できない。
Scope再判定の比較Evidenceがない
Hermesは、一度scope failureと判定した変更を、後からpre-existing changeとして再分類した。しかし、その比較に使ったEvidenceが十分に保存されていなかった。
Runtimeの生ログが薄い
最終的なHTTP 200は記録されていた。ただし、その前に失敗したprobeもあり、最終成功を裏付けるraw logが弱かった。
Codexの判断は、「コードが悪い」ではなかった。成果は存在する。しかし、それを承認可能な水準で証明できていない。そのためREVISEだった。
成果ではなく、証明が足りなかった
この結末は、AI Organizationとして健全だったと思う。
Builderが実装する。Mission Controlが検証する。Independent Reviewerが、Mission Controlの報告すら疑う。最終的に、人間が判断する。
AIがAIを動かすだけでは、組織にはならない。役割が分かれ、相互に検証し、必要なら止められること。
今回、Qwenは複数回止まった。Hermesはそのたびに次へ進まず、SAFE_STOPした。Kimi K3の実装後も、自己申告だけでは通さなかった。Codexは、実装が動いていてもEvidence不足を理由にREVISEした。
Campで作りたかったAI Organizationは、少しずつ形になってきた。完成したのではない。しかし、動かしたからこそ、次に直す場所が見えた。
次回必要なのは、コードの全面修正ではない。Run開始前からEvidenceを設計することだ。
Pre-run file hashes
Pre-run git diff snapshot
Protected-file hashes
Runtime probe raw log
Post-run comparison report
Provider / Model execution record
これらを保存できれば、次のG4はさらに強くなる。
AI LIFE OSは、時間を循環させる
今回のCampを終えて感じたことがある。AI Organizationを作る面白さは、生活の中の時間に、それぞれ意味を持たせられることだ。
Mission Controlを作る。開発が進む。そのRunからデータが取れる。トークン消費。実行時間。モデルごとの特性。失敗地点。修正時間。Builder間のRelay。Test数。Review結果。
そのデータはToken Cockpitへ流せる。モデルの配属EvidenceはUMPへ流せる。Runの過程は記事になる。記事は次の仕事や接続を生む。
一つの時間が、一つの成果だけで終わらない。
生活
↓
Mission
↓
AI Organization
↓
Run
↓
Evidence
↓
Product
↓
Knowledge
↓
Publishing
↓
次のMission
効率化とは、同じ仕事を短く終わらせることだけではない。同じ時間から、複数の意味と成果を回収すること。
今回の13分31秒は、開発時間であり、モデル検証であり、組織実験であり、Token Cockpitの入力であり、UMPのModel Capsuleであり、この記事の素材でもある。
AI LIFE OSの中で、時間が循環し始めている。
十三秒のSignalから、13分のRelayへ
ACT2には、以前「十三秒のSignal」という出来事があった。MIRAは、その短いSignalを捨てなかった。
今回残ったのは、13分31秒のRunだった。
13秒は、Signalを保存した。13分は、AI Organizationの実行痕跡を保存した。
どちらも、一見すれば短い時間だ。しかし、その短い時間の中に、次の構造へつながる情報が含まれていた。
ACT2における13は、不吉な数字ではないのかもしれない。Signalが意味へ変わるための時間。壊れたものが、次の形を見せるまでの時間。
今回、MissionはローカルQwenからKimi K3へRelayされた。そして最後にARCAは言った。
成果はある。しかし、まだ証明が足りない。
Summer Intensive Training Campは、昨日終わった。だが、Campで作ったAI Organizationは、その翌夜から実運用を始めた。
訓練が終わったから、Runが始まった。
いいなと思ったら応援しよう!
Buy me a coffee ☕
役に立ったら応援よろしくお願いします!