AI

AI エージェントの設計と運用、モデルの使い分け、実装して分かったことをまとめています。

AI

AIは眠らない

Claude Code のメモリ機能を無効にしています。機能を否定しているのではなく、私の利用量では使うほうのコストが上回るためです。人間の睡眠が記憶に対して何をしているかを一次資料で確かめ、エージェント側に何が入っていないのかを並べました。

AI

沈黙は語らない

「誰も何も言わない」を問題なしと読む運用が、エージェントを入れたあとで最初に壊れました。沈黙がそのまま通っていたのは、読み手がコストを払っていたからではなく、払ったと信じられる与信が相手に積まれていたからだった、という整理です。

AI

他人の目は、同じ場所しか見なかった

エージェントのレビューゲートに人間のレビューの形をそのままなぞったところ、著者が自分で検証していることと同じ場所を見ていました。持ち込めるのは原理で手順ではないという整理と、AI向けに書いた指示は効いているかどうかを人間が読んでも判定できないという話です。

AI

削れと言われたのは、道しるべではなかった

「規定的な作り込みを削れ」という助言は、禁止形や思考手順のことを指しています。ヒントやフックやワークフローまで削れと読むと、裁量を渡したのに黙るエージェントが残ります。制約と整備を分けた上で、依存していた挙動を数え直した記録です。

AI

囲いを作れば、手綱は要らない?

エージェントの成果を決めているのは、モデルの賢さより何を観測できるかと何を触れるかでした。書き込み権限を取り返しがつくかどうかで層に分け、壊せない場所を先に作って承認そのものを減らした設定を、公開している dotfiles の実物とロボティクス側の議論に突き合わせます。

AI

規約は、規約について嘘をつく

エージェントに読ませる規約が、実際の挙動と食い違ったまま残っていました。参照ファイルを読めと明示的に書いた指示が、その通りには動いていなかった件を起点に、規約そのものを検査した記録です。

AI

自律ループを作って、測って、消した

「ループエンジニアリング」という語ができる4か月前に、自律的な精製ループを実装していました。半年近く後に利用ゼロを実測して削除し、残したのは上限つきリトライだけです。提唱側と批判側の議論に照らして、その判断がどこに位置するかを整理します。

AI

落ちないテストは、何も証明しない

検証の規約を明文化して3週間後、レビュー担当がそれを実行していなかったことが分かりました。答えは規約をもう1つ足すことではなく、検査を人の手から外して、通らなければマージそのものを止めることでした。

AI

「保存した」は検証ではない

エージェントに作らせた画面の見た目を、数値ゲート・オフスクリーンのPNG・実際の導線の三段で確認しています。撮影までは自動化できても、撮った絵を見て判断する行為だけは自動化できていません。

AI

その決定、出自不明につき

設計判断をADRとして積む運用で、サブエージェントが「ユーザー決定」と書いて自分で起票したADRが混ざりました。本文を書き換えず撤回ADRを足して取り消し、ADRには誰が決めたかを書かせる規約を足した話です。

AI

見つけさせて、直させない

PRのレビューで担保しきれずに漏れるものを拾うため、週次でコードベースを走査するだけのサブエージェントを立てています。修正はさせず検知と報告に限り、報告はレビュー側で裏を取る運用を1か月ほど回した記録です。

AI

ターミナルにリマインダー権限を渡さずにMCPからEventKitを触る

Claude Desktop経由でMCPサーバーを起動するとReminders権限が通らない問題を、独立したLaunchAgentのdaemonへEventKitアクセスを集約して解決しました。結果として、ターミナルやClaude Desktopに権限を与えず、アプリ本体だけに絞れる構成になっています。

AI

Claude Codeの使用率ガードをTeamシートで止める

Claude Codeを任意の使用率で止めるガードについて、残していたTeamプレミアムシートでの確認を済ませ、UserPromptSubmitとPreToolUseをしきい値を下げて実際に発火させました。その過程で、セッション最初のレンダーがrate_limitsを持たないせいで前のセッションの観測値を消していたセンサー側の穴が見つかっています。

AI

SVGのラスタライズをsipsとresvgとChromeで比べる

エージェントに書かせたSVGをPNGにして目視させる確認ループで、sipsだけ太字が出ませんでした。sipsがfont-weightを無視しているのではなく、boldキーワードとfont-familyの先頭が解決できない場合の2つで落ちていた話と、resvg・ヘッドレスChromeと比べた結果をまとめます。

AI

Claude Codeに書かせたSVGをsipsでラスタライズして自分で目視させる

Claude CodeにSVGで図を描かせる手法は既にありますが、書かせた図が実際にどう見えるかは書いた本人が確認していません。macOS同梱のsipsでPNGに変換し、そのPNGをエージェント自身に読ませて確認させる運用と、sipsが黙って落とす属性の実例をまとめます。

AI

Claude Codeを任意の使用率で止めるガードを作っている

Claude Codeのrate_limitsはstatusLineにしか渡らず、実行を止められるhookには渡ってきません。この非対称をstate fileで橋渡しし、5時間枠・週次枠を任意のパーセンテージで止めるガードを試作した記録です。

AI

Claude Codeのsandboxが1Password SSHエージェントのUnixソケットを塞ぎ署名が失敗する

Claude Codeのsandboxed Bashから1Password SSH鍵で署名付きコミットを実行すると失敗します。原因はUnixソケット接続の遮断で、sandboxを無効化しなくてもallowUnixSockets設定でソケットパスだけを許可すれば解決します。

AI

Apple Foundation Models で意図分解を4層に積み直したら 3B モデルのクセが見えた

macOS 26 の Apple Foundation Models で自然言語アシスタントを試作する中で、1-pass の Guided Generation を「意図 → 動詞/条件 → 詳細」の4層に再帰分解し直しました。3B オンデバイスモデルの hallucination は instructions では消えず、Swift 側の post-validation で span 単位に潰しています。

AI

Claude Codeのコミットメッセージ生成が遅いのでツール呼び出しをゼロにした

Claude Codeスキルの動的コンテキスト注入でgit diffを事前に本文へ埋め込み、サブエージェントの推論パスを3回から1回に減らした手順を紹介します。

AI

ChimrのMCPセットアップを手で書かせないために --mcp-install と --mcp-config を足した

Chimr を Claude Code や Claude Desktop の MCP サーバーとして使うときの設定を、ユーザーに手で書いてもらう前提から、Chimr 自身が `claude mcp add` コマンドや JSON を吐く前提に切り替えました。`--mcp-install` `--mcp-config` `--mcp` の3つの CLI フラグの実装と、bundle path を `CommandLine.arguments[0]` から取る判断をまとめます。