OpenManusをMacにインストール。モデルはGemini使ってみた。

「OpenManus」を試してみた。
https://github.com/FoundationAgents/OpenManus

まずインストール

公式GitHubリポジトリをクローンし、Python仮想環境を作成してインストール。
下記記載の通り。
https://github.com/FoundationAgents/OpenManus
git clone https://github.com/openmanus/OpenManus.git
cd OpenManus 
uv venv --python 3.12
source .venv/bin/activate
pip install -r requirements.txt
ここで下記エラー。普通にエラー。
% uv pip install -r requirements.txt
 × No solution found when resolving dependencies:
  ╰─▶ Because crawl4ai==0.6.3 depends on pillow>=10.4,<11.dev0 and only the following versions of crawl4ai are available:
  crawl4ai<=0.6.3
  crawl4ai>0.7.dev0
  we can conclude that crawl4ai>=0.6.3,<0.7.dev0 depends on pillow>=10.4,<11.dev0. And because you require pillow>=11.1.0,<11.2.dev0 and crawl4ai>=0.6.3,<0.7.dev0, we can conclude that your requirements are unsatisfiable.
  hint: crawl4ai was requested with a pre-release marker (e.g., crawl4ai>0.6.3,<0.7.dev0), but pre-releases weren't enabled (try: --prerelease=allow)
requirements.txtの下記を
crawl4ai~=0.6.3
下記に修正
crawl4ai>=0.7.0  # Updated to support Pillow 11.x
インストールしたら
playwright install
もインストールしておく。
下記を参考にモデルはGeminiを設定
https://qiita.com/kongo-jun/items/21151cc0e04621411f69
vi config/config.toml
# Global LLM configuration
[llm]
model = "gemini-2.0-flash"
base_url = "https://generativelanguage.googleapis.com/v1beta"
api_key = "xxxxxxxxx"
max_tokens = 4096
temperature = 0.0

# Optional configuration for specific LLM models
[llm.vision]
model = "gemini-2.0-flash"
base_url = "https://generativelanguage.googleapis.com/v1beta"
api_key = "xxxxxxxxxxx"
わくわく、OpenManusを下記で実行。
python main.py
「今日一番のニュースを教えて」とか日本語で聞いてみる。
バックグラウンドでブラウザ(Chromium系)が立ち上がり、OpenManusが自動でページを開いて動作。
内部でDOM解析や要素のハイライトが行われている模様。
しかし、エラー起きまくり。
OpenAI API error: Error code: 400 - [{'error': {'code': 400, 'message': '* GenerateContentRequest.contents: contents is not specified\n', 'status': 'INVALID_ARGUMENT'}}]
これはGoogle Gemini API(今回はgemini-2.0-flashモデル)へのリクエストで
contentsフィールドが空のまま送信されていることを示しているらしい。
ログを見ると色々試行錯誤している。
app.agent.toolcall:think:81 - ✨ Manus's thoughts: またコンテンツ抽出に失敗しました。Yahoo!ニュースも構造が複雑で抽出が難しいようです。別の戦略として、Yahoo!ニュースのトップページに表示されている見出しをいくつかピックアップして提供することを試みます。そのためには、まずページ全体のコンテンツを抽出する必要があります。
略。
app.agent.toolcall:think:81 - ✨ Manus's thoughts: コンテンツ抽出がどうしてもできません。ウェブサイトの構造が複雑で、このツールでは対応できないようです。申し訳ありませんが、別の方法でニュースを入手することができません。
コイツ、あきらめやがった。
成功例が下記にあったので試しに「広島から東京まで10万円で行く旅行プラン立てて」と依頼してみる。
https://note.com/hantani/n/ne2886370bf0d
色々と苦労しながら、、、
app.agent.toolcall:think:81 - ✨ Manus's thoughts: るるぶトラベルのページからの情報抽出にも失敗しました。
下記結論を出してきた。
ここまでの調査で、LCCとゲストハウスを利用すれば、宿泊費をかなり抑えられる可能性があることがわかりました。

*   **交通費:** LCCで広島 - 東京間を11,570円程度で移動できる可能性がある。
*   **宿泊費:** ゲストハウスを利用すれば、1泊3000円以下で宿泊できる可能性がある。

仮に、LCC往復で23,140円、ゲストハウス3泊で9,000円とすると、合計32,140円となります。残りの予算67,860円で、食費や交通費、観光費などを賄う必要があります。
観光プランについては、無料の観光スポットを中心に計画を立てる必要があります。例えば、浅草寺、上野公園、皇居外苑などは無料で楽しめます。
食費については、コンビニエンスストアやスーパーマーケットなどを利用して、費用を抑える必要があります。
東京での交通手段は、SuicaやPASMOなどの交通系ICカードを利用すると便利です。
最後に、これらの情報をまとめて、旅行プランを提示します。

**旅行プラン(広島 - 東京 3日間 10万円以内)**

*   **交通手段:** LCC(往復 約23,140円)
*   **宿泊施設:** ゲストハウス(3泊 約9,000円)
*   **観光スポット:** 浅草寺、上野公園、皇居外苑など(無料)
*   **食費:** コンビニエンスストア、スーパーマーケットなどを利用(1日あたり5,000円程度)
*   **交通費:** Suica、PASMOなどの交通系ICカードを利用(3日間で5,000円程度)

**合計費用:** 約62,140円
**残りの予算:** 約37,860円

残りの予算は、お土産代や予備費として利用できます。
このプランはあくまで一例です。LCCの料金やゲストハウスの料金は時期によって変動するため、事前に確認が必要です。
こんな感じの回答でした。どうだろう。。。
っていうか、ブラウザで勝手に調査するのはすごいんだけど、HTMLの構造を解析している段階でどうなんだろうって思う。Webページを画像として視覚的に捉えて解析してほしい。そのほうが自然でしょ。負荷的には大きいかもだけど技術的には難しくないはず。
APIの使い具合は下記の感じ。
結構使っているっぽい。
もう少し色々と試してみるか。