nikkie-ftnextの日記

イベントレポートや読書メモを発信

simonw/llm v0.24で入ったfragmentsがとても天才!(他にもtemplatesなど)

はじめに

七尾百合子さん、お誕生日 26日目 おめでとうございます! nikkieです。

LLMをCLIで呼び出したくて普段遣いしているsimonwさんのllm、このたびますます天才になりました!

目次

simonw/llm v0.24

今週リリースされたsimonw/llm v0.24

大きな機能2つが入っています。

  • llm -f: fragments
  • llm -t: templates

simonwさんをGitHubでフォロー(実質ネトスト?)しているのですが、前者のfragmentsでここ最近観測したActivityが全部回収されたように見えました。
ただどういうものかが私はすぐに分からなかったので、改めて理解する時間をとりました。

fragments

例えば、URLを指定できます。便利!

% uvx --with llm-gemini llm -m gemini-2.0-flash -f https://nikkie-ftnext.hatenablog.com/entry/2025/04/11/224643 'SNSでシェアする際のキャッチーなまとめを考えてください'
## 🎉simonw/llm天才!🎉 LLM APIとの会話が全部SQLiteに記録される快感!

- 🧠 simonwさんのllmは、LLM APIの入出力を自動ロギング!
- 📝 プロンプトもレスポンスもトークン数も、後から全部見れる!
- 🕵️<200d>♀️ 外部境界のロギングって、こういうことか!
- 🛠️ markitdownとの合わせ技でWebページの要約もラクラク!

**#LLM #コマンドラインツール #simonw**

URLだけでなく、以下をサポートしています

  • ローカルファイルパス
  • URLやローカルファイルパスのfragmentsにエイリアスを設定してそれを指定
  • 保存されたfragmentをSHA256で指定
  • プラグインが提供するfragments(後述)

どうしてfragments?

自動ロギングと関係がありました。

ブログ中の「Improving LLM’s support for long context models」より

This is where long context prompts were starting to be a problem. Since LLM stores the full prompt and response in the database, asking five questions of the same source code could result in five duplicate copies of that text in the database!

LLMの長いコンテキストを利用して、同じソースコードについて5回質問すると、自動ロギングのために同じソースコードが5回DBに保存されます。

これを解決するのがfragmentsで、fragmentsを別に保存して参照することで、保存は1回で済みます。

Each fragment is stored once in a fragments table, then de-duplicated in the future using a SHA256 hash of its content.

Fragmentsのplugin

simonwさんのブログの方に挙がっています

-f github:user/repoを提供

-f docs:libraryを提供。
https://github.com/simonw/docs-for-llms で実現しているようで、自分用が作れるかも

-f hn:IDを提供
(国内だったらQiitaとかZennかなあ?🤔)

モデルだけでなくfragmentsもプラグインで誰でも拡張できるようにしたのが、めちゃめちゃうまいなと思います。
fragmentsの実装も見てみよう〜(宿題事項)

終わりに

simonw/llm v0.24でfragmentsやtemplatesが導入されました。
fragmentsは自動ロギングと長いコンテキストのバッティングを解決する手段で、さらにプラグインまで用意されており、この機能追加にはしびれました。
ありがとう〜!最高です!!

私は手放せなくなっています。
みなさんもよければ使ってみてください

P.S. llms.txtとの相性もよい!

llms.txtはこちらに