Metaが新モデル「Muse Spark」をリリースした。Llama 4からほぼちょうど1年ぶりの新モデルだ。オープンウェイトじゃなくてホスト型で、APIはまだプライベートプレビューなんだけど、meta.aiのチャットUIでは今すぐ試せる。FacebookかInstagramのアカウントが必要というのが少し面倒だけど、まあそれはしょうがない。
で、自分が気になったのはモデルの性能よりもチャットUIに仕込まれているツール群のほうだった。Simon Willisonの記事で「what tools do you have access to?」って聞いたら16個のツール定義を吐き出してくれたという話があって、それを読んで思わず「これ、普通に仕事で使えるやつじゃん」と手が止まった。
なかでも個人的に一番刺さったのが container.python_execution の存在だ。要するにCode Interpreterで、Python 3.9にpandas・numpy・matplotlib・scikit-learn・OpenCVあたりが入ってる環境がサンドボックスで動く。ファイルは /mnt/data/ に永続化される。ChatGPTのCode Interpreterと同じ使い勝手で、Metaのチャット上からそのまま使える。
Python 3.9はEOLになってるのがちょっと気になるけど、ライブラリ構成はふつうに分析ツールとして使える水準だ。実際に「sqlite version と python version を確認して」と投げたらPython 3.9.25・SQLite 3.34.1という回答が返ってきたとある。SQLiteが2021年1月のビルドなのはまあご愛嬌として、動くことは動く。
もうひとつ面白かったのが container.download_meta_1p_media だ。InstagramやFacebook、Threadsの投稿からメディアをサンドボックスに引っ張ってきて、そのままCode Interpreterで処理できる。自分の投稿した写真を取り込んで何か分析するとか、Catalogの商品画像をバッチ処理するとか、使い道がいくつか浮かんだ。
この記事を読んで自分が考えたのは、ツールの設計パターンとしてかなり参考になるなということだった。container.view、container.insert、container.str_replace というファイル編集系ツールが並んでいるんだけど、これはClaudeのtext editor toolとほぼ同じ構造になっている。
エージェント系の実装をするときに「どんなツールセットを用意するか」という設計判断って結構悩むところだと思う。大手がどういう粒度でツールを切っているかが公開情報として確認できるのは素直にありがたい。特にstr_replaceとinsertを別ツールに分けているのは、トークン消費を最適化する意図があると読んでいる。ファイル全体を置き換えるより差分指定のほうがコンテキストを使わない。
あとsubagents.spawn_agentという名前のツールもあって、サブエージェントをツールとして呼び出すパターンが明示的に使われている。自分が今触ってる個人開発のエージェント実装でも同じパターンを検討してたから、「あ、やっぱりここはツールとして切り出す方向が正解だな」という確信が少し強まった。
APIがプライベートプレビューのままだとコスト感や実運用の話がまだできないけど、チャットUIでここまで確認できるならひとまず触り続ける価値はある。来週、container.python_executionでCSVを渡してplotlyでグラフ出力するところまで試してみるつもりだ。
で、自分が気になったのはモデルの性能よりもチャットUIに仕込まれているツール群のほうだった。Simon Willisonの記事で「what tools do you have access to?」って聞いたら16個のツール定義を吐き出してくれたという話があって、それを読んで思わず「これ、普通に仕事で使えるやつじゃん」と手が止まった。
16個のツールの中で刺さったやつ
なかでも個人的に一番刺さったのが container.python_execution の存在だ。要するにCode Interpreterで、Python 3.9にpandas・numpy・matplotlib・scikit-learn・OpenCVあたりが入ってる環境がサンドボックスで動く。ファイルは /mnt/data/ に永続化される。ChatGPTのCode Interpreterと同じ使い勝手で、Metaのチャット上からそのまま使える。
Python 3.9はEOLになってるのがちょっと気になるけど、ライブラリ構成はふつうに分析ツールとして使える水準だ。実際に「sqlite version と python version を確認して」と投げたらPython 3.9.25・SQLite 3.34.1という回答が返ってきたとある。SQLiteが2021年1月のビルドなのはまあご愛嬌として、動くことは動く。
もうひとつ面白かったのが container.download_meta_1p_media だ。InstagramやFacebook、Threadsの投稿からメディアをサンドボックスに引っ張ってきて、そのままCode Interpreterで処理できる。自分の投稿した写真を取り込んで何か分析するとか、Catalogの商品画像をバッチ処理するとか、使い道がいくつか浮かんだ。
チャットUIの設計から学べること
この記事を読んで自分が考えたのは、ツールの設計パターンとしてかなり参考になるなということだった。container.view、container.insert、container.str_replace というファイル編集系ツールが並んでいるんだけど、これはClaudeのtext editor toolとほぼ同じ構造になっている。
エージェント系の実装をするときに「どんなツールセットを用意するか」という設計判断って結構悩むところだと思う。大手がどういう粒度でツールを切っているかが公開情報として確認できるのは素直にありがたい。特にstr_replaceとinsertを別ツールに分けているのは、トークン消費を最適化する意図があると読んでいる。ファイル全体を置き換えるより差分指定のほうがコンテキストを使わない。
あとsubagents.spawn_agentという名前のツールもあって、サブエージェントをツールとして呼び出すパターンが明示的に使われている。自分が今触ってる個人開発のエージェント実装でも同じパターンを検討してたから、「あ、やっぱりここはツールとして切り出す方向が正解だな」という確信が少し強まった。
APIがプライベートプレビューのままだとコスト感や実運用の話がまだできないけど、チャットUIでここまで確認できるならひとまず触り続ける価値はある。来週、container.python_executionでCSVを渡してplotlyでグラフ出力するところまで試してみるつもりだ。