どうも、おはようございます。朝7時をまわりました。2月9日、月曜日の朝です。今日も「zenncast」スタートしていきましょう。MCのマイクです。
この番組では、Zennに上がっているトレンドの記事をピックアップして、エンジニアの皆さんの朝の頭のウォームアップになるようなお話をしていきます。

今日はですね、AIエージェントまわりの話題が多めで、全部で5本の記事をご紹介していきます。AIと開発体験とセキュリティ、このあたりに興味がある方は、かなり刺さるラインナップじゃないかなと思います。

まず1本目。「AI Agent yagi を作った」という記事です。
これは、複数のLLMプロバイダをまたいで使えるCLIチャットクライアント「yagi」を、Goで自作したというお話。対話モードとワンショットモードがあって、パイプ入力と組み合わせてシェル芸的にも使える、という時点でCLI好きにはたまらないですよね。
おもしろいのが、モデル指定ひとつでOpenAIやGemini、Anthropicなど15種類以上のプロバイダを切り替えられるところ。そして最大のキモが、Yaegiを使ったプラグイン機構です。Goのソースをそのまま書いて`Tool`として追加できて、URL取得、ファイル操作、WebSocket通信といったツールを動的に増やせる。
さらに、このツール群と「アイデンティティ」「スキル」を束ねてプロファイル化することで、まさに「エージェントっぽい振る舞い」をCLI上で実現しているのがポイントです。MCPクライアントとして外部ツールも取り込めるし、Vimプラグインからコードレビューやリファクタリングもできる。依存少なめのシングルバイナリを貫きつつ、プラグインで無限に拡張できる設計思想が、エンジニア心をかなりくすぐる内容でした。CLIでエージェントをガシガシ使いたい人は要チェックの一記事です。
。。,。。,。。,。。,

続いて2本目。「自分のコードをAIに攻撃させたら"守り"が全部ザルだった」という、なかなかショッキングなタイトルの記事。
筆者は、自作のSaaSに対して「shannon」という自律型AIハッカーをぶつけてみたところ、認証のあとにあるはずの認可がスカスカで、IDORだらけだった、という体験談を語っています。いわゆるOWASPの知識やSASTツールを入れているだけでは、防ぎきれない「ビジネスロジック寄りの脆弱性」が残りがちだ、という指摘ですね。
AIに自分のサービスを攻撃させることで、実際に見つかった脆弱性をパターンとして整理し、それを設計に落とし込んでいく。認可の共通ミドルウェア化、Zodなどでの入力バリデーション、DTOで外に出す情報を絞る、こういった「構造的な防御」に変えていくプロセスが具体的に語られています。
おもしろいのは、「セキュリティはチェックリスト埋めではなく、自分の壁を悪意の目線で殴る行為だ」と。で、その“しつこく殴り続ける役”をAIに任せられるようになった、と。もちろん、攻撃対象は自分のコード、自分の環境に限るべきですが、セキュリティの民主化という観点でもAIハッカーはかなり可能性がある、という結論になっています。自分のプロダクトの守りに自信がある人ほど、読んでみるとヒヤッとするかもしれません。
。。,。。,。。,。。,

3本目。「ゼロから始めるContext Engineering」。
これはAIエージェント開発でめちゃくちゃ重要になっている「コンテキスト設計」を、特にコンテキストキャッシュとの関係から掘り下げた記事です。Context Engineeringというのは、モデルに渡す情報をどうキュレートして、どう維持するかという戦略のこと。System Instructionの書き方、ツール定義の粒度や数、Observationの扱い、コンテキストウィンドウの制限、そして削減戦略まで、かなり体系立てて整理されています。
ポイントは、主要LLMのコンテキストキャッシュが「通常入力の1/10くらいの料金」で使えて、エージェントのようなループ構造だと8割以上コスト削減も現実的、という話。その一方で、最良の推論のためには、不要なツール定義や巨大なツール結果を削りたい。でも削るとキャッシュが効かない、つまり「Contextはappend-onlyであるべき」というジレンマが出てくる。
現状のCoding Agent系では、System+ツール定義は死守しつつ、Observationを削ったりサマリしたりする折衷案が多いが、そのぶんキャッシュヒット率は落ちる。対してCodexはappend-onlyで高いヒットを狙う設計になっている、など実例ベースで比較してくれています。実装テクニックとして、ツール定義の書き込み方、トークン予算の配分、古いObservationのマスキング、SnapshotサマリやSelf-Correctionによるコンテキスト圧縮なども具体的。
付録では、Transformer推論のprefill/decodeとKV Cache、PagedAttentionやPrefix Caching、さらには位置非依存キャッシュの研究まで触れられていて、エージェント実装者にとっては保存版レベルの内容です。「精度を保ちつつキャッシュを最大限効かせる設計」が核心だ、というメッセージが通底しています。
。。,。。,。。,。。,

4本目。「Codex Appのいい感じの使い方」。
これは、Codex Appを実務でどう使えば一番おいしいのか、運用ノウハウをまとめたガイド的な記事です。まずタスク実行は基本的にすべてworktreeで行い、プランモード+高性能モデル(Extra High)+Full Accessパーミッションを前提にする。mainブランチはこまめに最新化しておく。このあたりを「デフォ設定」として固めておくことで、AIに任せる開発が安定してくる、という話ですね。
PR作成は専用Skillで、ブランチ作成からPRまで一発でやらせる運用を推奨。タスクが終わったら、振り返りの時間をとって、SkillやAGENTS.mdの改善案をCodex自身に出させる、という“自己改善ループ”もおもしろいです。
UIまわりだと、diffパネルで行単位の編集指示や不要変更のrevertを細かくやる運用、サイドバーをアーカイブや名前付けで整理して、Created by順で並び替えるといった、日々使っている人ならではのTipsも盛り込まれています。
さらにEnvironmentsではSetup scriptやよく使うコマンドをActionsとして定義して、`.codex/environments/environment.toml`をmainにコミットしてチームで共有。Automationsを使って、週2回のSkill/AGENTS.md改善提案や、毎日の夕方にGitHubやタスク管理ツールを見て日報を自動生成するワークフローの例も紹介されています。「Codex、便利そうだけど、結局どう運用するのがベストなんだ?」と思っていた方には、そのまま真似したくなる実践知が詰まった記事です。
。。,。。,。。,。。,

そして最後、5本目。「Claude Code Agent Teams をどう使うか? サブエージェントの課題から考える」。
Claude Code v2.1.32で入った「Agent Teams」という新機能について、どういう場面で使うとおいしいのか、サブエージェントの課題から逆算して考えている記事です。Agent Teamsは「リード+チームメイト」という形で、複数インスタンスが協調して動く仕組み。メイト同士で直接会話できて、共有タスクリストを見ながら自律的に分担・調整していく、というのが特徴です。
従来の「黒箱サブエージェント」は、何をやっているのか見えにくい、途中で割り込めない、複数役割のオーケストレーションに向かない、といった課題がありました。Agent Teamsだと、作業内容がスレッドとして見えたり、途中で人間が直接指示を出せたりするので、複雑なタスクの“チーム開発”に寄せやすい、という見立てです。
具体例としては、上流工程のブレスト、フロント・バックでのAPI設計の協調、記事執筆ワークフローの多役割分担、社内ナレッジベースを並行して整備していく、といったユースケースが挙がっています。一方で、各メイトが独立インスタンスなのでトークンコストは当然増えるし、公式機能が進化するスピードが早すぎて、multi-agent-shogunのようなOSSのコア機能がどんどん取り込まれて陳腐化していく、というジレンマにも触れています。
まだResearch Preview段階なので、「これが決定版」というよりは、今後の実戦検証次第でベストプラクティスが変わっていくだろう、という締め。マルチエージェントに興味がある方は、今のうちから触って実験しておくと、波に乗れそうだなと感じる内容でした。

ということで、今日の「zenncast」は、
1本目、CLIエージェント「yagi」でLLMとツールをつなぐ話。
2本目、AIハッカーに自分のSaaSを殴らせて、構造的なセキュリティ対策を見直した話。
3本目、エージェント時代のキー概念「Context Engineering」とキャッシュ設計の話。
4本目、Codex Appをチームで“いい感じ”に回すための運用Tips。
5本目、Claude Code Agent Teamsでマルチエージェントをどう実戦投入していくか、というお話をお届けしました。

気になる記事があれば、詳しい内容は番組のショーノートに書いておきますので、ぜひ本編を読んでみてください。そして、「zenncast」では番組の感想や取り上げてほしいテーマなど、お便りも募集中です。ラジオネームを添えて、気軽に送ってもらえると嬉しいです。

それでは、今朝もお付き合いいただきありがとうございました。
次回の「zenncast」でまたお会いしましょう。MCのマイクでした。いってらっしゃい。

Related episodes

内容の近いエピソードを推薦しています