退屈なことはFara7Bにやらせ...たかった
この記事はLivetoon Tech Advent Calendar 2025の10日目の記事です。(あれ?今日は13日...妙ですね...)
はじめに
こんにちは!
AIキャラクターアプリkaiwaを開発している株式会社Livetoonの開発マネージャーの土川です。
kaiwaの公式サイト
今回のアドベントカレンダーでは、LivetoonのAIキャラクターアプリのkaiwaに関わるエンジニアが、アプリの話からLLM・合成音声・インフラ監視・GPU・OSSまで、幅広くアドベントカレンダーとして書いていく予定です。
ぜひpublicationをフォローして、記事を追っていただけると嬉しいです!
Fara-7Bとは?

2025年11月24日に Microsoft Research から公開された、「コンピューター操作(Computer Use Agent / CUA)」特化の 7B モデルです。チャットで文章を返すだけではなく、画面(スクリーンショット)を見て、クリック座標・スクロール・タイピング等の行動を直接予測して実行するタイプのモデルとして設計されています。MIT License の open-weight で、Hugging Face / Microsoft Foundry から入手できます。
- Hugging Face:
microsoft/Fara-7B - 技術レポート(論文): arXiv:2511.19663
- GitHub:
microsoft/fara(実行手順やデモ動画あり)

(WebVoyagerにおける accuracy vs cost の図。Fara-7B が低コスト側で強いことを示す用途の図)
ベースのモデルにはQwen2.5VLが使われています。最近のMSのモデルはQwenベースが多いように思えます。
何が特徴?
1) “アクセシビリティツリー無し”で、ピクセルから直接操作する
従来のWebエージェントは「ページ構造(アクセシビリティツリー等)を解析→別のモデルで判断→操作」みたいに複数要素に依存しがちですが、Fara-7Bはスクリーンショットを見て座標を直接出す前提で作られています(=人間に近い入出力)。
2) 小型(7B)なのに“実タスク寄り”のベンチで戦えるのを狙った
モデルカード上でも Computer Use Agent としての設計が明記されており、入力は「ユーザーのゴール(テキスト)+現在のスクショ+履歴」、出力は「思考+ツール呼び出し(行動)」という形を取ります。コンテキスト長は 128kです。
3) 重要なのは学習データ生成(FaraGen)
論文では、CUA(コンピューター操作)の学習に必要な“人間の操作軌跡”が不足している問題に対して、FaraGen という合成データ生成パイプラインで「実在Webページ由来の複数ステップ課題→複数解法生成→検証で成功軌跡をフィルタ」して学習データを作る、というストーリーになっています。

本当はFara7BでAgentを作る記事を書きたかった
元々Computer Use Agentに強い興味があり、Claude 3.5 Sonnetでも試して衝撃を受けた経験があります。
ただ、Web API越しのモデルでデスクトップを触らせると、画面に映る情報のプライバシーがどうしても気になります。方針立てや計画はオンラインの強いモデルに任せつつ、実行部分は手元で完結するオフラインモデルでさばければ理想です。Fara-7BはCopilot+ PCのNPU向けONNXも用意されており、その要件にぴったりだと思い、まずは触ってみて、次の記事でCopilot+ PC上で別LLMと組み合わせたエージェントアプリに発展させるつもりでした。
ところが実際に動かしてみると、論文中のタスク難易度から期待したほどの性能が出ません。吐き出されるクリック座標が微妙で、タスクを完走できない場面が続きます。下の動画はFara7BにAmazonでショッピングさせようとしたときの様子です。
Claude 3.5 Sonnetでは成功した「Amazon.co.jpでCIOの65W USB-C充電器をカートに入れるタスク」を、Fara7Bが日本語に弱いことを考慮して英語で試したものの、それでもうまくいきませんでした。
Macで動かしてみる
MSのブログではvLLMが推奨されていたので、まずはApple Silicon向けにvLLMをセットアップしました。ただ、macOSのCPU実装がFP32/FP16のみ対応という記述があり、その制約でBF16版Fara7Bは動かせませんでした。
そこでLM Studioに上がっていたGGUF版に切り替え、
上記Repoをクローンして環境を整備しました。自分のワークフローに合わせたかったので、依存をuvで回せるように少し手を加えています。
動きを見ていく
まずはbing検索をしようとする

コンピュータだと疑われて実行できませんでした。ただ、これ、MSが提示している例だと動くのですよね🤔🤔🤔
あとで、動く例をお見せします。
amazon.co.jpを開く、そして検索ボックスクリックに失敗し続ける


クリック座標がズレているのか、ずっと検索ボックスをクリックできず、その左側にある住所のボタンを押してしまいます。
住所変更モーダルが開くので、それを閉じて、また住所のボタンを押す...これを繰り返します。
何度かやって、クエリパラメーターを弄るというズルを思いつく


何度かやってダメそうだと気がついたのか、クエリパラメーターをいじりはじめました。ここまで来ると、もうコンピュータ操作モデルでなくても良くなってしまいますが、もう少し見守ってみます。

おや、商品ページに行きたかったみたいですが、URLは違うようです。
bing検索にまた逃げる

URLいじりも失敗してしまい、折れてしまったのか、またbing検索をし始めました。とはいえ、それは先ほど試してだめだったはずなのですが…。
上手くいく動きと、失敗例

Repoにも記載してあるwhats the weather in new york nowはうまく動きます。
ただ、new yorkからtokyoにするだけでbing検索のrobot判定に引っかかるのは、けっこう謎です(Fara7Bの問題ではないのですが)。
また、論文内で実際にやっていたPurchase GitHub Copilot from the GitHub website.も、Pricing pageへのクリック操作がうまくいかず、失敗し続けました。

最後に
本当はFara7BでAgentを作りたかった...
Discussion