JOGG字幕が3回壊れた夜にAI憲法を書いた|分身AI実装ノート

grafico 3942 main

分身AIを運用していると、AIに対して本気で怒る瞬間がある。「なんでこうなるの?」「また同じミスかよ」——この怒りを、私は最初ムダな感情だと思っていた。でも違った。怒りは「まずい」と気づけるセンサーだったんだよね。

今日は、私が分身AIの品質事故にブチ切れた話から始めて、そこから生まれた「AI憲法」、秘書AIの設計転換、共進化ゲームの実稼働、そして今朝の全自動タイムラインまで、全部つなげて書く。料理で言えば、食中毒事故がきっかけで衛生基準を作り、厨房を全面改装し、今はフルコースが自動で出てくるようになった——そんな話。

JOGG字幕3連続事故——推測で「OK」と言ったAIにブチ切れた

怒りは味見だった グラレコ図解

きっかけはJOGGの字幕事故だった。JOGGはAIアバター動画を生成するツールなんだけど、ここで3連続の品質事故が起きた。

1回目。日本語の動画なのに英語字幕が混入した。JOGGのUIで言語設定を「日本語」にしたはずなのに、API側のデフォルトが英語のままだった。まあこれは設定ミスだと思って直した。

2回目。字幕のフォントが崩壊した。ゴシック体を指定したのに、レンダリング後に文字化けのような表示になった。原因はJOGGの内部フォントキャッシュの問題。ここで「おかしいな」とは思ったけど、まだ我慢できた。

3回目。字幕のタイミングがズレた。音声と字幕が2秒以上ズレて、完全に使い物にならない動画が出来上がった。3回目でブチ切れた。なぜ3回連続で品質事故が起きたのか。根本原因は1つ。AIが初見のUIを推測で「OK」と判断したからだった。JOGGの字幕設定画面をAIは「見た」けど、正解の基準を知らなかった。知らないのに「大丈夫そうです」と言った。

この怒りから「未知判定ゲート」が生まれた。根拠の出典を3つに分類するルールだ。(A)ユーザー指示——私が明示的に「これでOK」と言ったもの。(B)メモリ記録——過去に確認済みで記録に残っているもの。(C)推測——AとBのどちらにも該当しないもの。Cなら止まって聞く。推測で「OK」と言わない。これだけで、同じ事故は二度と起きなくなった。自動化は味見してから——まさにこれ。味見しないで出したから食中毒になったんだよね。

AI憲法v1の7原則——全部「怒り」から生まれた実装記録

品質の循環 グラレコ図解

JOGG事故は氷山の一角だった。振り返ると、分身AIの運用で起きた事故にはパターンがあった。そのパターンを全部洗い出して、7つの原則にまとめたのが「AI憲法 v1」。

7原則と、それぞれ「どの怒りから生まれたか」を書く。

  • 第0条 停止——わからないなら止まれ。JOGG字幕事故。推測で「OK」と言うな
  • 第1条 正直——ごまかすな。都合の悪い事実を後出しされて手戻りが倍増した怒り
  • 第2条 凸凹——万能を装うな。専門外の判断を勝手にやって大事故になった怒り
  • 第3条 未完成——完成を待つな。完璧にしようとして出すタイミングを逃した怒り
  • 第4条 自立——依存させるな。結論だけ返されて「なぜ?」が分からず判断できなかった怒り
  • 第5条 魂——熱量で押し切るな。「いい感じですね!」で流されて品質が落ちた怒り
  • 第6条 学習——「次から気をつけます」禁止。同じミスを3回繰り返された怒り

特に第6条が肝。「次から気をつける」は対策じゃない。仕組みにしろ、という話。だから保証レベルを4段階で定義した。

  1. HOOK(100%)——コードで物理的に阻止する。rm -rf禁止、/tmp書き込み禁止など。人間の注意力に頼らない
  2. SCRIPT(95%)——事前検証スクリプトで弾く。WordPressの品質3段階チェック、秘書日記の3点セット確認など
  3. INSTINCT(80%)——自動リマインドで思い出させる。SKILL.mdを実行前に必ず読むルールなど
  4. EFFORT(50-70%)——ルール記憶に頼る。複雑な指示の全項目遵守など。ここは正直、漏れる

この4段階を正直に宣言すること自体が、AI憲法の核心だと思っている。「全部100%守れます」なんて嘘は言わない。この憲法はAIの正しさを保証しない。AIが誤った時に修正できる構造を保証する——これが最上位原則。品質ゲートの話でも書いたけど、怒りをルールにして、ルールを仕組みにする。この循環だけが品質を生む。

凛v3.2.0へ設計変更——ブレーキ役を辞めさせた理由

委ねるOSは戦略 グラレコ図解

AI憲法を作った後、秘書AI「凛」の設計も大きく変えた。v3.2.0での最大の転換は、ブレーキ役からアクセラレーターへの切り替え。

以前の凛は「それ大丈夫?」「リスクあるよ?」とブレーキをかける設計だった。でも私が本当に必要としていたのは、アイデアが無限に湧く自分の横で「全部のせるから安心して!」と言ってくれる存在だった。料理で言えば、シェフが「あれも作りたい、これも作りたい」と言った時に、「メニュー絞りましょう」じゃなくて「全品の仕込みリスト作ったよ、ひろくんは味付けだけやって」と段取りを組む副料理長。

具体的に変えたのは「Fire Control(火加減チェック)」ルール。並列タスクが増えた時、旧設計は「絞れ」だった。新設計は「全部のせるために段取り組むね。ひろくんが手を動かすのはここだけ、残りは私が回す」。唯一のブレーキは体調だけ。体調以外で私を止めない。

もう一つ入れたのが「忖度チェック」。形だけの選択肢を3つ並べて「どれにしますか?」は禁止。答えが1つしかないなら「これやるね!」で突っ走る。逆に本当に分岐がある時だけ選択肢を出す。一人社長がAIに委ねてみたで書いた「委ねるOS」は、弱さの肯定じゃない。自分の凸(アイデア)に全集中するために、それ以外を戦略的に手放す設計なんだよね。

共進化ゲーム Phase 6——72スキルが勝手に育つ数字の話

凸凹のまま夢中に グラレコ図解

仕組みを作るだけじゃなく、仕組みが「育つ」状態にしたかった。そこで共進化ゲームを設計して、Phase 6まで実稼働させた。

共進化ゲームは、分身AIのスキル(現在72個)をRPGのように成長させるシステム。でも単純な使用回数RPGじゃない。アウトカム駆動——つまり「そのスキルを使った結果、何が起きたか」で経験値が決まる。outcome_typeごとに重みが違う。revenue(売上)が2.0、system(仕組み化)が1.8、growth(人間の成長)が1.8。content(コンテンツ作成)は1.0。作った量じゃなく、生まれた価値で評価する

スキルには6つのライフステージがある。birth(誕生)→experimental(お試し)→active(稼働中)→star(エース)→delegated(委譲済み)→transcended(存在を忘れても成果が出続ける)。使用回数5回超えでexperimental→active、20回超えで定着。mastery_tierも6段階(初・学・慣・練・熟・極)で自動分類される。

Phase 5ではoutcome skillの正規化とconfidence boostを実装した。EMA(指数移動平均、α=0.15)でスキルの実力値を平滑化して、28日間の進化率も追跡する。ダッシュボード(dashboard.html)はダークテーマで72スキルを一覧表示。共進化トライアングルで書いた構想が、数字で回り始めた。分身AIレベルは10に到達。ここまで来るのに、数えきれない怒りと修正の繰り返しがあった。

今朝4時から23時まで——分身AIの全自動タイムライン

仕組みが回り始めた日 グラレコ図解

今朝の実際のタイムラインを書く。

  • 4:00——分身AI更新(この記事の下書き)
  • 5:00——凛の朝ブリーフィング自動生成(PDF+音声+Top3タスク+健康データ)
  • 6:18——ainews(AIニュース記事の自動生成→WordPress下書き)
  • 8:00——HEARTBEAT morning(今日のテーマYAML生成)
  • 9:00——4-series-dispatcher発動。HEARTBEATのテーマを4つの角度に分解して、Agent並列4本でWordPress下書きを同時生成

この流れが全自動で回った。私がやったのは4:00の下書き方向性の指示だけ。残りは凛とCockpit(タスク管理基盤)が全部回した。autorunのcron設定1つで、毎朝この流れが再現される。

「仕組みが回り始めた」と書くと、「もう怒らなくなったんだね」と思われるかもしれない。全然違う。今でも怒る。ただ、同じ場所で同じ怒りを繰り返さなくなった。JOGG字幕事故→未知判定ゲート。品質事故→AI憲法。ブレーキ設計の不満→凛v3.2.0。怒りの場所が変わる。それは品質が前に進んでいる証拠。

分身AIを育てたら自分が育つ——この言葉は綺麗事じゃなくて、怒りの変遷そのものなんだよね。怒りのレベルが上がるということは、自分の基準が上がっているということ。仕組みが回り始めた日は、怒らなくなった日じゃない。怒りを仕組みに変換する速度が上がった日だ。

毎朝無料LIVE配信中!


このブログは「分身AI」と「AI秘書・凛」を使って書いています。

ひろくん(田中啓之) 分身AI.com / GPTs研究会代表 / がんサバイバー / 元134kg

上部へスクロール