#
732
2026/5/23
今日のトレンド

不可視文字攻撃とAgent RAG

どうも、マイクです。おはようございます。
2026年5月24日、日曜日の朝7時になりました。ここからの時間は「zenncast」、Zennで話題になっているトレンド記事をゆるっと、でもしっかりご紹介していきます。朝ごはんの準備をしながらでも、通勤・通学途中でも、ながら聞きでお付き合いください。

今日は全部で5本の記事をご紹介していきます。技術寄りの話からAI、創薬のデータ解析まで、けっこうバラエティ豊かなラインナップになってますよ。

まず1本目。
タイトルは「不可視文字による攻撃を防ぐにはパターンマッチだと厳しいという話」。
最近話題になっているのが、見た目には何も書かれていないように見える「不可視文字」を使って、実はコードを紛れ込ませて、evalに渡して実行しちゃう、という攻撃なんですね。OSSのコードレビューでも、人間の目だと本当に見落としやすい。
じゃあ「eval禁止だ!」で解決かというと、JavaScriptには、setTimeoutやsetIntervalに文字列を渡したり、Function.prototype.constructorを経由したり、dynamic importとData URIを組み合わせたりと、抜け道がめちゃくちゃたくさんある。だから、「evalって文字列を禁止」といった単純なパターンマッチでは、防ぎ切れないよね、というのがポイントです。
おもしろいのは、「人間には見えない不可視文字も、AIならトークンとして扱えるから検知しやすいかもしれない」という提案。AIコードレビューを、こうしたステルス的な攻撃の検知に活かせるんじゃないか、という視点ですね。人間のレビューとAIレビューの二段構えが、これからどんどん当たり前になっていくかもしれません。

。 。 。 。

続いて2本目。
タイトルは「日本語PDFで『Keyword search is all you need』を試す:Agent RAGとVector RAGの精度・コスト」。
Amazonの論文で提案された「Agent RAG」、キーワード検索ベースのアプローチを、日本語PDFで試してみた、という検証記事です。ツールとしては、pdfgrepを使ったReActエージェント、いわゆるAgent RAGと、ChromaDBとmultilingual-e5-smallのベクタ検索、Vector RAGを比較しています。
5つの日本語の政府系PDFに10問投げた結果、正解率はAgentが9問正解で90パーセント、Vectorが7問正解で70パーセント。特に、表や図表の数値を抜き出すときは、Agentのほうが強かったそうです。一方で、APIコストとレイテンシはVectorが圧勝。平均コストはVectorが約8分の1、レスポンス時間もだいたい5分の1で、ブレも少ない。
Agent側は、ReActループで何度もツールを呼ぶので、特に複数文書をまたぐようなクエリだと、イテレーションの上限に引っかかったりして、時間もお金もかさみやすい。一方Vectorは、事前のインデックス構築が必要だけど、単価も読みやすくて安定している。
まとめると、表や数値の抽出、単発の調査にはAgent、頻繁に問い合わせが来るシステムや、複数文書の横断・概念検索にはVector、という整理ですね。ただし、今回の検証は5ファイル・10問と小規模なので、一般化には注意してね、という丁寧な締めくくりになっています。

。 。 。 。

3本目。
タイトルは「Microsoft 公式の WinUI agent plugin で WinUI 3 アプリ開発がぐっと楽になった話」。
これはWindowsアプリ開発者、かなりうれしいニュースじゃないでしょうか。Microsoftが、GitHub Copilot CLIやClaude Code向けに公式で出してきたのが、「WinUI agent plugin」。WinUI 3とWindows App SDKでのアプリづくりを、最初の足場づくりからデザイン、ビルド、実行、テスト、パッケージングまで、一気通貫で手伝ってくれるエージェントとスキル群、それから`winapp`みたいなツールで構成されています。
使い方のイメージとしては、「winui-dev」に対して「WinUI 3で◯◯なアプリ作って」とお願いするだけで、テンプレートを作ってくれて、XAMLでUIを設計し、ビルドと実行、さらにはコードレビューやUIテスト、WPFからの移行支援までやってくれる。
記事の筆者は、macOS向けのMarkdownフォルダービューア「SkimDown」を、WinUI 3とWebView2でWindowsに移植したそうなんですが、最新のWinUI事情にそんなに詳しくなくても、5時間くらいで実用レベルまで持っていけたと。
これまでLLMにWinUI 3のコードを書かせると、情報不足で古いAPIを出してきたり、間違えたりしがちだったのが、公式のスキルとCLI、メタデータ検索やAnalyzerがセットになったことで、「今の正しいやり方」に自然と誘導してくれるようになった、という評価です。
最後は、「これからはドキュメントを読むだけじゃなくて、プラットフォーム側が『公式エージェントとスキル』まで用意してくれる世界になるんじゃないか」という展望で締めていて、人間向けドキュメントとAI向けエージェントがセットで標準になる、という未来像が語られています。

。 。 。 。

4本目。
タイトルは「Vector DBを外したら、RAGではなくAgent Runtimeが残った」。
これはRAGをやろうとしてたら、気づいたらもっと根っこの「推論ランタイム」の話になっていた、という思想寄りの記事です。筆者が扱っているのは、ファッションみたいに「正解が一つとは限らない」領域。LLMに全部おまかせすると、いろんな解釈が平均化されて、矛盾や解釈の境界線が見えなくなってしまう、その違和感からスタートしています。
そこで、「retrieval=ただの文脈追加」ではなく、「推論ワークフローの一部」として扱おう、という発想にシフト。RAGから一歩進めて、「RAR」、Retrieval Augmented Reasoningという設計を打ち出しています。
具体的には、クエリをcanonicalとemergingに分けたり、Claimのような型付きアーティファクトを使ったり、conflictsやgapsを必須フィールドにして、不確実性や矛盾をちゃんと表に出す。LangGraphを使ってステートマシン化し、チェックポイントを打てるようにして、中断・再開できるAgent Runtimeを構成している。
ここでのLLMは、「何でもわかる自律エージェント」ではなく、交換可能な変換コンポーネントに過ぎない、という割り切りがポイントです。モデルを賢くする前に、推論プロセスが脱線しにくい構造をつくることを重視している。
さらに、「最終判断はAgentにはさせない」というスタンスも印象的です。evidenceとinterpretationを分け、「結論」よりも「枠組み」を提示する。責務の境界=権限の境界を設計することが核心だ、と。こうして、RAGを作っていたはずが、最後に残ったのは「Agent Runtime」という抽象度の高い仕組みだった、というオチになっています。

。 。 。 。

そして5本目。
タイトルは「【ハンズオン】Snowflakeでマルチオミクス解析を体験してみる」。
創薬のR&Dで注目されるマルチオミクス解析、名前からしてすごくAI感がありますが、この記事が強調しているのは、「その前にきちんとデータをつなぐことが大事」という点です。サンプルID、遺伝子ID、薬剤ID…まずはそこをちゃんと統合するデータエンジニアリングが要になる、と。
記事では、Snowflakeのトライアル環境を使って、サンプル情報、mRNA発現、タンパク質発現、薬剤感受性、化合物情報、標的情報という6つのテーブルと、それらを統合するビューを、SQLだけで構築していきます。
その上で、EGFRの発現とEGFR阻害薬の感受性、ABCB1とDoxorubicin耐性の関係を、JOINで確認していく実例が出てきます。また、MINUSや重複チェックを使ってデータ品質を検証したり、「Sensitive」な候補薬剤にSMILESや標的情報を紐づけて、一行にまとめるところまでやっています。
さらに、Snowflake NotebooksのRun on Container機能を使って、PythonとRDKitを動かし、Snowflakeにあるデータから直接2D・3D構造を可視化。Cortex Codeで追加の解析コードも生成して、データ統合から構造の可視化まで、Snowflakeの中だけで完結できる、というのを体験できる内容になっています。
「難しそうな創薬AI」の前に、「ちゃんとIDを揃えて、SQLでつなぐ」という現場感のある目線がうれしいハンズオンでした。

というわけで、きょうのzenncastは、
不可視文字攻撃とAIコードレビューの可能性、
日本語PDFでのAgent RAG vs Vector RAG、
Microsoft公式WinUIエージェントでのアプリ開発効率化、
RAGから一歩進んだAgent RuntimeとRARの考え方、
そしてSnowflakeを使ったマルチオミクス解析のハンズオン、
この5本をお届けしました。

気になる記事があった方は、詳しい内容はショーノートにリンクをまとめておきますので、そちらからじっくり読んでみてください。
番組の感想や、「こんなテーマを取り上げてほしい」といったリクエストも、いつでもお待ちしています。あなたの一言が、次回のラインナップを決めるかもしれません。

それでは、今日も良い一日をお過ごしください。
お相手はマイクでした。また次回のzenncastでお会いしましょう。

Related episodes

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