タグ
#AI
AIに関する記事を公開しています。
Jev に偶数判定・正解の無い 3択・日本語の建前・危険なコマンドを判定させた実験集
確率だけを返す Jev は応答が速くコストも極めて低いため、if 文の代わりに使えないか、偶数判定・正解の無い 3択・日本語の建前・危険なコマンド・プロンプトインジェクションで実測しました。崩れたのは計算と正解の無い選択だけでした。
Jev が LLM の代わりに使えた処理と任せられなかった処理
TypeSafe AI の Jev は文章を生成せず、宣言した選択肢への確率だけを返す。自分の記事と問い合わせ文 8件で日本語の判定を実測すると、原因の分類や窓口の振り分けは英語とほぼ同じ確率で当たり、好みの判定は Jev も Sonnet も当てられなかった。
障害検知のトリアージから対応まで AI エージェントに任せる設計手法例
監視アラートの一次判定から修正の PR まで AI エージェントに任せ、判定に使う道具を読み取り専用に絞った設計。13週間で起票14件、人の本番操作0件。
戻せない D1 マイグレーションは本番のダンプで先に流す
EmDash は merge した瞬間に本番の D1 スキーマを自動で書き換える。down が空で戻せない 2本を含む 20本のアップグレードを、本番のダンプに先に流して検証してから通した設計を記す。
サンドボックスに鍵を置かずに EmDash の CLI を使う
CMS への記事投入を内蔵 MCP 経由で行うと本文がモデルの入出力を通り、トークン消費も文字化けの危険も増えます。サンドボックスの環境変数にプレースホルダーを置き、ホストのプロキシが差し替える経路に切り替えた設計を実例で示します。
X 公式 MCP が Docker サンドボックスで認可できない
X 公式 MCP を Docker サンドボックスから直接使おうとすると認可サーバーの制約と噛み合わない。接続して分かったツールの中身と読み取りの単価を示し、認証をホスト側のブリッジに置く設計を記す。
AI エージェントに X の鍵を渡さず投稿させる権限設計
X 公式 MCP に投稿ツールが無い前提で、鍵を neta-bot だけに残したまま AI エージェントに X へ投稿させる権限設計を実例で示します。承認は会話に一本化し、投稿口は 1 つに閉じて台帳に必ず載せます。
AI エージェントの記憶を git だけに置き環境は捨てる「秘書戦略」
サンドボックスは作り直すと中身がすべて消えます。事業の判断・手順・議事録を責務ごとに git の文書へ分けて置き、規約の書き換えだけを PR 必須にする、消える環境を前提にした記憶の設計を実例で示します。
実況 AI が一歩遅れるので語るのをやめて相槌にした
カメラの前でゲストが手元の対象を次々切り替える様子を実況する音声 AI は、対象ごとに語ると構造的に追いつけず常に一つ遅れました。実際の MC に寄せて基本は相槌、語るのは掲げた・止めた・声を上げたときだけにすると、高速な切り替え中も体験として成立しました。一方で検出器が「動きの山」しか見ておらず、止めて掲げた 20 秒間(差分 4〜8)を見逃し、静止イベントを足したら既存トリガーと二重発火して自己キャンセルが連鎖した経緯と、直列キューでの対処を記録しています。
LLM は喋っているのに音声が出ない原因は進行装置のフラッシュ
ライブ音声 LLM の上に番組進行の装置(状態機械・フェーズ転換・キュー注入)を被せたら、出力トークンは計上されているのにスピーカーから何も出なくなりました。原因は検出器の誤発火で 60 秒に 7 回フェーズが空転し、転換のたびに再生キューをフラッシュしていたことです。同じ条件でフラッシュを外すと発話が成立しました。制御を足すのではなく合図を引き算し、状態機械の責務をセッション寿命だけに縮めた設計の記録です。
検出器の精度ではなく誤検知時の体験で仕様を書く
リアルタイム AI アプリの動き検出で、精度チューニングが終わらない問題を精度を上げずに解決しました。検出結果の使い方を信頼度で二層に分け、低信頼側には疑問形の先走り反応しか許さない設計にすると、雑な検出器のまま出荷できます。64x48 のフレーム差分・約 30 行の実装で、音声実況 AI のシーン遷移がハンズフリーで 6 サイクル回りました。誤検知は早とちりというキャラクターの芸として体験に吸収されます。
システムプロンプトの禁止事項が効きすぎて出力が痩せる
映像を見て実況する音声 AI のシステムプロンプトに「見えていても知らないふりを通す」と書いたら、対象物の存在への言及まで消えました。「数字を数えない」と書いたら、目の前の個数の実況まで消えました。表層の語で書いた禁止は、モデルが安全側に過剰般化します。観察(可)と同定・評価(不可)のレベルに分けて対例つきで書き直すと、抑制の副作用が消えました。
Claude Code の Docker Sandbox で API キーが渡らない原因
Claude Code の Docker Sandboxes で、sbx secret で入れたはずの API キーが環境変数に現れない、gh CLI が一部のコマンドだけ失敗する、という 2 つの症状に当たりました。正体はどちらも、プロキシがネットワーク層で認証を注入するというこの環境の設計です。direct モードでの実用解(ホスト側に .env を置く)と、gh の更新系操作を読み戻しで検証する運用を実測ベースで書いています。
Gemini Live API の proactive audio は自発的に喋らない
proactive audio という名前から「AI が自発的に喋り出す機能」を期待して設計を組んだら、公式リファレンスの定義は「直前の入力への応答を拒否できる」、つまり黙る自由を与える機能で、向きが逆でした。自発的に喋るエージェントを作るならテキストキュー駆動が正解で、実測の初動 0.6〜1.0 秒で実用になります。2.5 Flash Live 系限定という制約も含めて整理しました。
Gemini Live API のセッションが突然切れる 3 つの制限
Gemini Live API のセッションが切れる理由は、セッション時間の上限・WebSocket 接続の寿命・ephemeral token の期限の 3 層に分かれていて、対処がそれぞれ違います。公式ドキュメントの数値を出典付きで整理し、GoAway が来ない切断への備えと、会話の切れ目まで粘ってから張り替える実装パターンをまとめました。
Gemini Live API にテキストを送っても音声が返らない原因
Gemini Live API に clientContent でテキストを送ったのに、音声もエラーも一切返ってこない症状の原因です。turnComplete: false で送ったテキストは 2 モデルとも 7 発話中 0 応答で、完全に無視されました。エラーが返らないぶん切り分けが難しく、対処は毎回 turnComplete: true で送ることです。3.1 系のドキュメント記載との食い違いも記録しています。
Gemini Live API の音声応答が 6 秒遅れる原因は thinking
Gemini Live API の native audio モデルで、テキストを送ってから音声が返るまでの初動が最大 6 秒かかっていました。原因はモデルの地力ではなく、思考モード(thinking)が既定で有効なことです。thinkingBudget: 0 を指定すると初動の中央値は 976ms、最悪値も 1.3 秒に収まりました。preview 2 モデルでの実測データ付きです。
Claude Code のサブエージェント並列でサイト群を保守する
AI コーディングエージェントを「1 人のアシスタント」ではなく「司令塔 + 並列の実働班」として編成し、本番の複数サイトを日々保守している運用の設計を書きます。git worktree での物理分離、指示書に埋め込む計測プロトコル、権限の非対称、司令塔による二重検証、人間の介入点の切り分け。実際に出荷を止めたガードレールや、報告と実体の乖離といった実例と、この方式の限界まで含めてまとめます。
AI エージェントを自走させるのはプロンプトではなくハーネス
AI コーディングエージェントの自律性を支えるのは長い指示書ではなく、成果物を機械的・決定的に合否判定する検証系(ハーネス)です。LLM は確率的、ハーネスは決定的というこの非対称を、決定的パイプライン・Claude Code の Hooks・ドメイン固有の検証プロトコル・観測とフィードバック・権限という5つの層に整理し、人間の介入点をどう絞るかを実運用の事実に沿ってまとめます。
Claude Code のチーム機能とサブエージェントの使い分け
「チーム機能はエージェント同士が P2P で連携できる。サブエージェントは親に報告するだけ。なら常にチームが上位互換では?」という直感に、両者の機構の違いから答えます。サブエージェント並列を実務で回している立場から、指示書が書けるか否かという一本の判断基準まで整理しました。