「STORM」をSkillにして自分のnoteの記事の問題点を検証してみた

先日、同僚から知り合いから、STORMについて教えてもらいました。

複数人の職業や役割を議論させてから返答をする、という概念自体は何度も聞いたことがあります。
どうやら最近話題になっているのは、このSTORMの概念をClaude上で簡単に議事再現できる、ということらしいです。

なんでも、5人くらいの視点でわいわい議論させて、その内容を記事にまとめてくれるAIの仕組みらしいです。(なんとも浅い理解w)

複数の視点で議論させる、みたいな話はもう何度も見てきた気がします。

気になったので、話題になっている記事と、本家のスタンフォードのサービスを使ってみることにしました。

STORMはスタンフォードのOVALという研究室が作ったもので、正式名称はSynthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking、だそうです。長い(笑)。要するに、検索しながら多角的に質問を投げて、Wikipediaみたいな記事を一から書き上げるシステムですね。NAACL 2024という学会で発表されたものらしいです。

調べてわかった、新しかった4つのこと

調べてみると、「5人で議論する」という理解は随分と雑なことがわかりました。

新規性として挙げられていたのは、ざっくり4つです。

ひとつめは、視点そのものを自動で見つけてくるところ。
あらかじめ人間が「経済の専門家」「歴史家」みたいに役を決めるのではなくて、まず関連しそうなテーマを挙げさせて、そのWikipedia記事の目次を覗いて、そこから多様なペルソナを掘り出してくるそうです。
役者を自前で勝手にキャスティングしてくる、というイメージでしょうか。ちなみに視点の数は5人と決まっているわけじゃなくて、テーマに応じて増えたり減ったりするみたいです。

ふたつめが、視点ガイド型の質問生成として、プロンプトの中に特定の視点をあらかじめ埋め込んでおくことです。プロンプトエンジニアリング時代に多用された方法ですね。質問に焦点と前提知識を持たせるやり方です。ただ「この話題について質問して」と頼むと当たり障りのない問いしか返ってこない場合が多いのはあるあるですが、「あなたは○○の立場です」と先に立場を渡しておくと、急に踏み込んだ質問が出てくるということですね。

みっつめは、検索でグラウンディングした模擬対話です。
Wikipediaの編集者役が専門家役に質問して、専門家役はその問いを検索クエリに変えて実際にネットを調べて答え、返ってきた答えで理解が更新されて、それを踏まえて次の質問が進化していくようにできています。一問一答で終わらず、会話が育っていく感じですね。
Synthesis of Topic Outlines through Retrieval and Multi-perspective Question AskingのRetrieval(=実際に検索する)の部分です。

よっつめが、アウトライン駆動の生成です。
ここは私、最初に勘違いしていました。いきなり本文を書かせないのは合っているんですが、順番が逆で、まずモデルが自前の知識だけで仮の目次を引いて、そのあと取材で集めた話を使ってその目次を直していく、という二段構えのようです。
骨組みをいったん下書きしてから、取材で上書きしていく。人に説明しようとして調べ直して、ようやく自分がちゃんと分かっていなかったと気づきました。下調べと清書を分けるどころか、骨組みそのものを二度書きしているわけですね。

実際、経験豊富なWikipedia編集者10人にアンケートを取ったら、その7割が「下調べの段階で使えそう」と答えたらしいです。清書マシンというより取材アシスタントとして見られているのが面白いところでした。一方で正直な弱点も書いてあって、できあがった文章のうち15%くらいは引用がちゃんと裏付けになっていない(無関係なソースが混じったりする)そうです。万能ではない、というのは押さえておきたいところでした。


英語版の本家を触ってみたら…あまり良さがわからなかった

理屈はわかったので、スタンフォードのサイトで英語版を実際に動かしてみました。テーマを入れて、しばらく待つと、ちゃんと引用付きの記事が出てきます。

ただ、正直に言うと、期待を超えてはこなかったです。DeepResearchと違いがあまりわからなかったというのが素人おn感想です。

構成もしっかりしているし、引用も付いていて、サマリもわかりやすいのですが、なんというか、よくできたWikipediaの記事がもう一本増えた、くらいの感触でした。

たぶんうまく使えなかった原因は私側にあるなと気づきました。

STORMは「あるテーマについてWikipediaみたいな長文記事を、ゼロから書く」ことに最適化されているようですが。でも私がやりたいのは、たいていそうじゃなく、手元にある資料や、書きかけのメモや、自分の頭の中にある仮説を、もっと多角的に揉んでほしい時に使っています。
一から百科事典を書いてほしいわけじゃないので、そもそも使い方がちがってたということですね。

「4つのプロンプトでできる」という流行りのやり方

Xで関連する投稿を見ました。



Nav Toorさん(@heynavtoor)という方の投稿で、300万回近く表示されている人気の内容です。要は、STORMのソフトもGitHubも要らない、Claudeに4つのプロンプトを貼るだけで同じ考え方を再現できる、というものでした。

ご本人の言葉を引くと、こうあります。

The Stanford method is just a way of thinking. You can run that same thinking inside Claude with 4 copy paste prompts.(スタンフォードの手法は、要は考え方にすぎない。同じ考え方を、4つのコピペプロンプトでClaudeの中で動かせる)

実際、中身もよくできています。
1つめのプロンプトで「実務家・研究者・懐疑論者・経済の専門家・歴史家」の5人を立てて意見を出させ、2つめで意見の食い違いを地図にし、3つめで統合し、4つめで自己査読までやらせる。STORMの一番おいしい「多視点で問いを立てる」発想を、5分のコピペ作業に圧縮していて、入り口としてはとても良いと思いました。

ただ、本家と比べると、相違はあります。

ひとつは、視点が「5人固定」になっていること。さっき書いたとおり、本家STORMの新しさは、視点をテーマごとに自動で発見するところにありました。実務家・懐疑論者・経済の専門家…という顔ぶれを毎回同じに固定してしまうと、その自動発見の良さは消えてしまいます。テーマによっては、その5人より大事な6人目がいるはずなんですよね。

もうひとつ、こっちのほうが大きいのですが、4プロンプト版には検索、つまりRetrievalが入っていません。
5人の専門家は、Claudeが自分の記憶の中だけで演じています。STORMという名前の頭文字Rが抜けて、STOMになってます。
Nav Toorさんの投稿には「5分後にはその辺の人より詳しくなれる」とありましたが、検索なしで詰めた知識で詳しくなった気には確かになるんですが、その中身がどこまで裏取りされているかは別の話だな、と感じました。


自分用のClaude Codeに実装できるスキルにしてみた

プロンプトは超便利なので、ソッコーでCliboに保存してコピペできるようにしました。
ですが、毎回それをやるのが面倒なので、Claude Codeで自分用のSTORMスキルを作ってみました。

テーマやこちらの資料を渡すと、まずテーマの種類に応じて視点を都度見つけます。ここでは5人に固定はしません。

次に視点ごとに、Claude Codeに実際にWebSearchをさせながらRetrievalを効かせて取材対話を回します。

集まった出典を一か所に集めて、重複を消し、本当にその主張を裏付けているかを別の目で検証してから、引用付きで本文にします。

視点の自動発見と検索によるグラウンディングと言う独自性をなるべく落とさないようにしました。


試しに使ってみるとこんな感じです。
ちょっと前に書いたNOTEの記事について検証してみました。

ドキドキ…

https://note.com/insightguild/n/ne68d406a1d6b


例えば、複数視点のうちの一つ「カーネギー原典検証者」の立場で取材する執筆者にはこのような指示がわたります。

あなたは「カーネギー原典検証者」の立場で取材する執筆者です。
WebSearchを必ず使い、引用付きで報告してください。
検証対象は、あるNOTE記事が D.カーネギー『人を動かす』(How to Win Friends and Influence People) の内容をどれだけ正確に引用しているかです。

【記事が主張している内容(=検証すべき既存の主張)】
1. 『人を動かす』には「相手に思いつかせる」という原則がある。
2. その原則を象徴する例として、セオドア・ルーズベルト大統領のエピソードが挙げられている。
3. 内容:ルーズベルトがニューヨーク州知事だったころ、対立する政治ボスたちを動かすため、あえて彼らにポストの候補者を推薦させた。ボスが連れてくる身内びいきの候補者を何度も却下し「もっと適任はいないか」と問いを重ね、最終的にボス自身の口から、ルーズベルトが望んでいた本命の人物を提案させた。

【取材タスク】 「質問役⇄検索する専門家役」の対話を3ターン行い、WebSearchで実際に検索して以下を確定してください。
- カーネギー『人を動かす』の該当原則の正確な英語原文・日本語定訳(例:「Let the other person feel that the idea is his or hers」=「人を説得する原則:思いつかせる」等、版による訳の違いも)。
- ルーズベルトのこのエピソードは実際に同書に載っているか。載っているなら、本文の記述(ボスに推薦させる→却下を繰り返す→本命を言わせる)は原典と一致するか、誇張・脚色・取り違えはないか。NY州知事時代という時系列は正しいか。
- カーネギーが原典でこのエピソードに付した文脈・教訓と、記事の解釈にズレがないか。 各事実に出典URLと媒体の論調ラベル(中立/当事者/一次資料など)を付すこと。資料(記事)そのものは出典に数えないこと。一次資料(原書テキスト、信頼できる要約)を最低1本当たること。

最終出力(構造化):
①判明した重要事実(各事実に出典URL+ラベル)
②記事の引用の正確性評価(正確/軽微なズレ/明確な誤り、根拠つき)
③意外だった点 ④未解決の問い ⑤確度の弱い主張。

結果については、また改めて投稿しようと思いますが、非常に多角的視点での批判があり、心をえぐられたことは確かです!(笑)
もうちょっと使ってみて、また改修版を投稿しようと思います!

※但し書きですが、これは本家STORMを忠実に再現したものではありません。
あくまでSTORMという考え方を、自分のClaude Code上でライトに動かすことを目的にした、私的な道具です。
Nav Toorさんの投稿、その両方から発想を借りて、自分の作業机にちょうどいいサイズに削った、くらいに思ってもらえると。


いいなと思ったら応援しよう!