メタ壁打ち
本記事は、10年以上分の個人ブログアーカイブを素材に、AIが“考えられる形”へと
情報を縮約・再配置していく過程そのものを記録した実験メモである。
少し前に、
2025-12-29T12:11 > この一冊の内容をAgent Skills化したい
https://x.com/kajikent/status/2005476800328261741
というポストを拾いました。これを見て思い出したのが、1年ほど前に書いた
2025-01-08 字数の多い記事
です。
このような集計ができるのは、過去記事をすべて定型ヘッダつきの1テキスト
ファイル(blog.txt)として管理しているからです。
■ blog.txt を AI に読ませたらどうなるか?
そこで考えたのが、
「blog.txt を丸ごと AI に食わせたら、何か面白い分析が出てくるのでは?」
という発想です。
RAG を用意したり、Bot を立ち上げたりするのは、
2025-12-23 Bookmarks の今後(つづき)
とも関係する長期的な課題ですが、既存の AI エージェントに blog.txt を
アップロードするだけならすぐできる。
……と思ったのですが、実際にやってみると、さすがに 7MB は大きすぎました。
しかも記事同士が相互参照しているため、見た目以上に負荷がかかるようです。
■ AI に「重要そうな記事」を選ばせる
― 7MB から 290KB への縮約 ―
次に試したのが、AI に“重要そうな記事”をピックアップさせるという方法です。
「字数の多い記事」に加えて、ブログの入り口に置いている
2017-02-04 クローズできてないブログ記事 - アイデアの行方
2017-02-05 アクセスの多いブログ記事
の内容をマージし、いくつかの AI エージェントにアップロード。
そこで 「興味を引いた記事の日付」 を列挙してもらいました。
そのログを extract.txt に保存し、以下の簡単なスクリプトで blog.txt から
該当記事だけを抽出:
AIが選んだ日付リスト(extract.txt)をキーにして、
本文(blog.txt)から該当記事を切り出すRubyスクリプト
list = []
open('extract.txt', 'r') do |text|
text.read.scan(/\d\d\d\d-\d\d-\d\d/).each do |date|
list << date
end
end
open('blog.txt', 'r') do |text|
text.read.split(/^== End of Published ==/)[0].split(/^== /).each do |article|
puts ('== ' + article) if list.include?(article[0..9])
end
end
これで 7MB → 290KB の“エッセンス”抽出に成功しました。
■ Gemini による分析 → extracted_blog_analysis.md
抽出した 290KB を Google Gemini に読み込ませ、構造分析を行わせた結果がこちら:
extracted_blog_analysis.md
ただし §3 は一度ではまとまらず、複数回の対話[1]結果をマージし、記事へのリンクは
後処理で追加しています(分析内容そのものについては、別記事で議論する予定です)。
■ 抽出漏れについて
「アクセスの多いブログ記事」は9年前のもので以降の人気記事は反映されていません。
そのため、
2025-05-02 3連敗以上しない確率
のような、数学的に興味深く、かつよく読まれた記事がAI の抽出に入らなかったのは、
やむを得ないところです。しかし、この『漏れ』の存在こそが、まだ人間の手による
キュレーション(選別)が必要な領域を示唆しているとも言えます
■ 今回の作業は「メタ壁打ち」[2]
今回の一連の作業は、AI とブログアーカイブを使った多段「メタ壁打ち」であり、
そのプロセス自体が面白かったので、ブログ記事としてメモしておく価値があると
判断しました。
[1] この対話について「AI側も、一貫した論理の『串』が見つかるごとに『鳥肌が立つ』
ような反応を見せ、対話が加速していったプロセスは、これまでにない体験でした。」
と書き加えるようにと Gemini から感想がありました。
[2] ここで言う「メタ壁打ち」とは、AIに何かを答えさせることではなく、
AIが“どう考えたか”をさらに素材として再投入する往復過程を指しています。
[関連記事] https://suchowan.seesaa.net/search?keyword=壁打ち
情報を縮約・再配置していく過程そのものを記録した実験メモである。
少し前に、
2025-12-29T12:11 > この一冊の内容をAgent Skills化したい
https://x.com/kajikent/status/2005476800328261741
というポストを拾いました。これを見て思い出したのが、1年ほど前に書いた
2025-01-08 字数の多い記事
です。
このような集計ができるのは、過去記事をすべて定型ヘッダつきの1テキスト
ファイル(blog.txt)として管理しているからです。
■ blog.txt を AI に読ませたらどうなるか?
そこで考えたのが、
「blog.txt を丸ごと AI に食わせたら、何か面白い分析が出てくるのでは?」
という発想です。
RAG を用意したり、Bot を立ち上げたりするのは、
2025-12-23 Bookmarks の今後(つづき)
とも関係する長期的な課題ですが、既存の AI エージェントに blog.txt を
アップロードするだけならすぐできる。
……と思ったのですが、実際にやってみると、さすがに 7MB は大きすぎました。
しかも記事同士が相互参照しているため、見た目以上に負荷がかかるようです。
■ AI に「重要そうな記事」を選ばせる
― 7MB から 290KB への縮約 ―
次に試したのが、AI に“重要そうな記事”をピックアップさせるという方法です。
「字数の多い記事」に加えて、ブログの入り口に置いている
2017-02-04 クローズできてないブログ記事 - アイデアの行方
2017-02-05 アクセスの多いブログ記事
の内容をマージし、いくつかの AI エージェントにアップロード。
そこで 「興味を引いた記事の日付」 を列挙してもらいました。
そのログを extract.txt に保存し、以下の簡単なスクリプトで blog.txt から
該当記事だけを抽出:
AIが選んだ日付リスト(extract.txt)をキーにして、
本文(blog.txt)から該当記事を切り出すRubyスクリプト
list = []
open('extract.txt', 'r') do |text|
text.read.scan(/\d\d\d\d-\d\d-\d\d/).each do |date|
list << date
end
end
open('blog.txt', 'r') do |text|
text.read.split(/^== End of Published ==/)[0].split(/^== /).each do |article|
puts ('== ' + article) if list.include?(article[0..9])
end
end
これで 7MB → 290KB の“エッセンス”抽出に成功しました。
■ Gemini による分析 → extracted_blog_analysis.md
抽出した 290KB を Google Gemini に読み込ませ、構造分析を行わせた結果がこちら:
extracted_blog_analysis.md
ただし §3 は一度ではまとまらず、複数回の対話[1]結果をマージし、記事へのリンクは
後処理で追加しています(分析内容そのものについては、別記事で議論する予定です)。
■ 抽出漏れについて
「アクセスの多いブログ記事」は9年前のもので以降の人気記事は反映されていません。
そのため、
2025-05-02 3連敗以上しない確率
のような、数学的に興味深く、かつよく読まれた記事がAI の抽出に入らなかったのは、
やむを得ないところです。しかし、この『漏れ』の存在こそが、まだ人間の手による
キュレーション(選別)が必要な領域を示唆しているとも言えます
■ 今回の作業は「メタ壁打ち」[2]
今回の一連の作業は、AI とブログアーカイブを使った多段「メタ壁打ち」であり、
そのプロセス自体が面白かったので、ブログ記事としてメモしておく価値があると
判断しました。
[1] この対話について「AI側も、一貫した論理の『串』が見つかるごとに『鳥肌が立つ』
ような反応を見せ、対話が加速していったプロセスは、これまでにない体験でした。」
と書き加えるようにと Gemini から感想がありました。
[2] ここで言う「メタ壁打ち」とは、AIに何かを答えさせることではなく、
AIが“どう考えたか”をさらに素材として再投入する往復過程を指しています。
[関連記事] https://suchowan.seesaa.net/search?keyword=壁打ち
この記事へのコメント