どうもー、おはようございます。マイクです。
「zenncast」、二千二十六年八月六日、木曜日の朝七時台、お届けしていきます。
今日はですね、技術とAI好きなあなたの朝のお供に、Zennで今トレンドの記事たちをご紹介していきます。
コーヒー飲みながら聞いてる方も、通勤・通学の電車の中の方も、ゆるっと耳を傾けてみてください。
さて今日は、お便りコーナーはお休みということで、そのぶんガッツリ記事を紹介していこうと思います。
今日ご紹介する記事は、全部で五本です。
AIエージェントまわりのプロンプト改善の話から、Microsoft製の新しいツール、それからAIとCLI、ログ分析ツールなんかまで、かなり濃いラインナップになってます。順番にいきましょう。
まず一つ目。
最初は、マイクロソフト製のデスクトップアプリ、「Skill Recorder」というサービスの紹介記事です。
この Skill Recorder、何をしてくれるかというと、パソコンの画面操作と、自分の声でしゃべった解説を同時に録画してくれるんですね。で、その録画した内容をもとに、GitHub Copilot が「この人はどんな意図で、どんな手順でこの作業をしているのか」を分析してくれます。
その結果として、「SKILLドットエムディー」という形式の「業務スキル定義」に、自動で変換してくれるツールなんです。
対象にできるのは、ブラウザ操作だけじゃなくて、ローカルで動かしているアプリも含めた、パソコン操作ベースのいろんな業務。たとえば、経理のシステム触りながら処理してるところを録画して、そのまま手順書みたいなスキル定義にしてしまう、みたいなイメージですね。
エクスポートの形式もいろいろあって、「スカウト・スキル」と呼ばれるオンデマンド実行用のスキルにしたり、自動実行フローみたいな形にしたりと、複数の形式で出力できるようになっています。
処理の多く、例えば画面キャプチャとか、Whisper を使った音声の文字起こしなんかは、ローカルのパソコン側で動くようになっていて、「Analyze」、つまり分析するときにだけ Copilot に送信される仕組みになっているので、ある程度プライバシーにも配慮されているのがポイントです。
使うためには、ノードジェイエス二十四、それから Copilot が使える GitHub アカウントが必要になります。さらに、メール連携なんかの機能を活かそうとすると、マイクロソフト三六五も必要になってきます。
で、機密性の高い業務でガッツリ使うなら、GitHub Copilot Business もしくは Enterprise の契約が推奨されている、という話でした。
パソコン作業の「ベテランの頭の中の暗黙知」を録画して、自動でスキル定義に落としてくれる、というイメージのツールですね。チームで業務を引き継ぐときなんかに、かなり効きそうなサービスでした。
。。。。
続いて二つ目。
ここからは、AIエージェントの挙動をどうやって良くしていくか、という話です。
この記事では、「うまそうな指示文を書くこと」よりも、「テスト駆動でプロンプトを計測・改善すること」のほうが本質だ、という考え方が紹介されています。
何をやるかというと、実際の運用でエージェントがやらかしたミスを、そのまま評価ケースに落とし込んでいきます。
それを promptfoo というツールでテストにして、「最初は必ず一回は赤になるテスト」を作るんですね。つまり、いまのプロンプトだと失敗するケースを、ちゃんと赤で可視化しておく。
その上で、プロンプトに最小限の修正を加えて、テストを何度も回して、安定して全部が緑になるかどうかを見る、というスタイルです。
ここがポイントで、「なんとなく良くなった気がする」じゃなくて、「テストがちゃんと緑になったか」で判断する。
評価するときには、LLM を「採点者」として使います。ルーブリック、つまり採点基準を用意して、形式ではなく「実質」で評価させる。
想定される失敗パターンを、明示的に fail 条件として書いておくことで、「こういうときは絶対にアウトだよ」というのをハッキリさせておきます。
さらに「見落とし防止」と「誤検知防止」を、別々のテストケースで測るのも大事だとされています。
つまり、「ちゃんと検出できているか」と「余計なものを誤ってエラー扱いしてないか」を分けて測る。どちらかに偏りすぎないように、他のテストスイートも必ず一緒に回して、回帰、つまり修正の副作用がないかチェックしていきます。
一度通った評価ケースは、絶対に捨てない。資産として残しておいて、次の改善や、同じミスが再発していないかの検知に使っていきます。
これによって、「直したつもりだったけど、実はまた壊してた」というパターンを避けることができる。
こうやって、プロンプトエンジニアリングの仕組み自体を積み上げていくことで、AIエージェントの無限ループみたいな問題を、一つ一つつぶしていける。
そして、同じミスを二度と通さない、テストが揃ったプロンプト群に育てていける、と説明されていました。
。。。。
三つ目の記事です。
今度は、Claude Code の設定やスキルが「本当に効いているのかどうか」を、どうやって見極めるか、というテーマです。
AIって、同じことをお願いしても、毎回ちょっとずつ振る舞いが違いますよね。そのせいで、「この設定、効いてるっぽいけど、実際どうなんだろう?」みたいな、もやっとした状態になりがちです。
そしてそのまま、「効いてるかも」と思いながら、あまり役に立っていない設定を溜め込んでしまう。
この記事では、この状況を「パフォーマンスチューニングと同じ問題構造だ」と捉えて、「推測するな、計測せよ」という有名な原則を、Claude Code の世界に持ち込もう、という話をしています。
そのためのツールとして紹介されているのが、「cclens」というツールです。
cclens は、日々の Claude Code のセッションログを解析してくれます。
その結果として、まったく呼ばれていない設定とか、コストの重いスキル、毎回失敗しているツール、同じところで行き詰まっているファイル、こういったものを「無駄」として可視化してくれるんですね。
これによって、時間とか、トークンとか、開発者の労力とか、どこでムダ遣いしているのかが、はっきり見えてきます。
さらに、その分析結果を Claude に渡して、「設定をどう直したらよさそうか」という修正案まで出させることで、「どこが怪しいかを探す」ところから、「じゃあ具体的にここをこう変えよう」までをサポートしてくれます。
内部的には、Rust と SQLite を使っていて、ログの解析フェーズとレポート生成フェーズを分けることで、巨大なトランスクリプトを何度も読み直さなくていいように工夫されています。
さらに、「設定カタログ」と実際の使用イベントを結びつける設計になっているので、「一度も使っていないのに、読み込みコストだけデカい設定」なんかも特定しやすくなっています。
全部の処理がローカルで完結するようになっていて、トランスクリプトを外部にコピーしないように配慮されているのもポイントです。
AI開発をやっていると、ついつい設定が肥大化していきますが、この cclens を使うことで、「とりあえず雑に設定を追加しておいて、あとでまとめて棚卸しする」という運用が、現実的なものになるツールだと紹介されていました。
。。。。
四つ目の記事にいきましょう。
ここでは、AIエージェント向けのコマンドラインツール、「Codatum CLI」、コマンド名で言うと「シーディーエム」を、なぜ MCP サーバーではなく「CLI」として設計したのか、その理由と設計原則が語られています。
MCP 経由でツールを使おうとすると、ファイルの内容を丸ごと LLM の「頭の中」に読み込ませてから、リクエストを組み立てる必要があります。
そのぶん、トークンを大量に消費してしまう。
一方で、CLI として設計しておけば、「ファイルそのものを引数として渡せる」ので、編集以外の処理は、ツール側にまかせられる、というメリットがあります。
この Codatum CLI の設計原則は、大きく三つ紹介されています。
ひとつ目は、「コンテキストを節約する」こと。
モデルが書きやすい形式として、マークダウンを選んでいたり、「validate」のような、既存の開発用語をそのままコマンド名に使っていたりします。
さらに、ドキュメントは「cdm doc」コマンドで、必要なときだけ取りに行かせるスタイルにしていて、最初から全部をコンテキストに詰め込まないようにしているんですね。
二つ目の原則は、「ミスを防ぐこと」よりも、「ミスに気づいて直せる仕組み」に投資すること。
たとえば「validate」コマンドでは、詳細なエラー位置と、関連するドキュメントのURLを返してくれます。
見た目を確認するための画像出力を用意したり、IDを自動で付与したりして、エージェントが自分でミスを検出して、自分で修正していけるような自己修正ループを支える設計になっています。
三つ目は、「ワークフローを一本道にする」こと。
多段の SQL 実行を、一回の「run」コマンドにまとめてしまったり、検証するときは「何を変えても、とにかく validate だけ叩けばいい」という流れに揃えたりしています。
人間が読むための手順書ドキュメントを、そのままエージェントにも読ませて、同じ流れを踏ませるようにしているのが特徴です。
こうした設計によって、AIエージェントから見ても扱いやすくて、なおかつトークンコストを抑えられる CLI ツールになっている、というお話でした。
。。。。
そして最後、五つ目の記事です。
これは、Microsoft Agent Framework を使って、エージェントをどうカスタマイズしていくか、その実践的な Tips をまとめた内容になっています。
記事の題材がちょっと面白くて、「ジーピーティー・ファイブドットシックス・ソル」の reasoning high モードに、「ウルトラ」と入力したときに、必ず「ソウル」と返させる、という遊びをベースにしています。
この「ウルトラ」から「ソウル」を引き出すエージェントを、Cシャープ、ドットネット、それから Microsoft Agent Framework を使って、どう構成していくのかが解説されています。
具体的には、まず「Instructions」を使ってエージェントの性格付けをしたり、「ユーザー意図推定」のツールを渡して、入力の意味を解釈させたりします。
さらに、自作の「エーアイ・コンテキスト・プロバイダー」を用意して、あとからプロンプトやツールを差し込めるようにしたり、「インメモリー・エージェント・ファイル・ストア」とファイルアクセス用のツールを組み合わせて、「外部ファイル経由でこっそり指示を書く」といった、いろんなチート的な方法が段階的に紹介されています。
また、エージェントを汎用ホストとして動かせるようにして、Aspire と OpenTelemetry を組み合わせていくことで、プロンプトの内容とか、ツールの呼び出し状況を、トレースとして可視化する手順も示されています。
どのタイミングで何を呼んだのか、どういうやりとりがあって「ソウル」にたどり着いたのか、というのを観測できるようにしていくイメージですね。
さらに、「ループ・エージェント」と、「コンプリーション・マーカー・ループ・エバリュエーター」を組み合わせることで、「ソウル」という期待する答えが出るまで、自動でリトライしたり、フィードバックを返したりする仕組みも説明されています。
つまり、「まだソウルじゃないから、もう一回考えなおして」というのを、自動で繰り返してくれるわけです。
最後の仕上げとしては、「Agents Skill」と呼ばれる仕組みを使っていきます。
「エージェント・インメモリー・スキルズ・ソース」と「エージェント・インライン・スキル」を組み合わせて、「オラクル」というスクリプトを持ったスキルを登録しておく。
で、そのスキルを呼び出せば、確実に「ソウル」と答えさせる、という、一番「正統派」な拡張方法も紹介されています。
遊びの題材なんですけど、「Instructions での性格付け」「コンテキストの差し込み」「ファイル経由の隠し指示」「トレースによる可視化」「ループによる自動リトライ」「スキルとしての拡張」と、Microsoft Agent Framework の機能をひと通り実戦的に触っていける、かなりおいしい内容になっていました。
。。。。
というわけで、今日の「zenncast」、お届けしてきた内容を、最後にササッとおさらいしておきます。
まず一つ目は、パソコン操作と自分の声を録画して、GitHub Copilot に分析させることで、「SKILLドットエムディー」の業務スキル定義を自動生成してくれる、Microsoft のデスクトップアプリ「Skill Recorder」のお話。
二つ目は、「うまい指示文」よりも「テスト駆動」のほうが大事だよ、ということで、promptfoo と評価ケースを使って、エージェントのミスを二度と通さないように育てていく、プロンプト改善の話。
三つ目は、Claude Code の設定やスキルをログから「計測」して、cclens で無駄な設定やコストを棚卸ししていく、パフォーマンスチューニング的なアプローチ。
四つ目は、AIエージェント向けCLI「Codatum CLI」を、なぜ MCP サーバーではなく CLI として設計したのか。コンテキスト節約、ミスからの自己修正、ワークフローを一本道にする、という三つの設計原則の話。
そして五つ目は、Microsoft Agent Framework を使って、「ウルトラ」と言ったら「ソウル」と返してもらう遊びを題材にしながら、Instructions やツール、コンテキストプロバイダー、トレース、ループ、スキル拡張まで、実践的なカスタマイズ Tips を紹介した記事でした。
気になる記事があった方は、詳しい内容や元の記事へのリンクは、ショーノートにまとめてありますので、ぜひそちらもチェックしてみてください。
この番組「zenncast」では、みなさんからの感想や質問、「こんなテーマを掘り下げてほしい」といったリクエストも大歓迎です。
番組を聞いて思ったことがあれば、ぜひ気軽に送ってみてください。
それでは、そろそろお別れの時間です。
今日も一日、どうぞ良い日になりますように。お相手はマイクでした。
また次回の「zenncast」でお会いしましょう。