OpenManusをローカルLLMで実行する(Ollama, QwQ-32B)

an abstract image of a sphere with dots and lines AI

OpenManus をローカルLLMで実行してみました。
ついでにAlibabaが最近公開した QwQ-32B モデルも使ってみます。

前置き

Manus とは

Manusは、中国のスタートアップ企業Monicaが開発した完全自律型のAIエージェントです。en.wikipedia.org

人間の直接的な指示や監督なしに複雑なタスクを独立して実行する能力を持ち、具体的な機能として、履歴書の評価、株式の相関分析、ニューヨークの不動産評価など、多岐にわたるタスクを処理できます。

その性能は、OpenAIの「DeepResearch」を上回ると評価されており、AI分野における中国の技術的進歩を示すものとして注目されています。

OpenManus とは

OpenManusは、Manus AIエージェントの機能を再現することを目指したオープンソースプロジェクトです。github.com

Manusは招待制でアクセスが制限されています。これに対し、OpenManusは誰でも自由に利用・カスタマイズできるオープンソースの代替手段として開発されました。

QwQ-32B とは

Alibaba Cloudが2025年3月6日に公開したモデルで、32Bパラメータのモデルでありながら671BパラメータのDeepSeek R1と同等の性能を持つとされています。

このモデルは、Apache 2.0ライセンスの下でオープンソースとして公開されており、Hugging FaceやModelScopeを通じてアクセス可能です。

実行環境

  • Windows 11
  • Nvidia RTX4080 16GB

OpenManus のインストールと設定

OpenManusのインストール手順

uvのインストール

uv はRustで実装された高速なPythonパッケージおよびプロジェクト管理ツールです。
Installing uv の手順に従ってインストールします。

PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

インストールが完了したら環境変数の再読み込みのため、ターミナルを開き直してください。

uv -V コマンドでバージョンが表示されれば uv のインストール成功です。

PowerShell
> uv -V
uv 0.6.5 (bcbcd0a1e 2025-03-06)

OpenManusをクローン

OpenManusのリポジトリ をクローンします。

PowerShell
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus

仮想環境の作成

新しい仮想環境を作成し、アクティベートします。

PowerShell
uv venv --python 3.11
.venv\Scripts\activate

依存関係のインストール

uv pip install -r requirements.txt

設定ファイルの作成

.\config\config.example.toml をコピーして config.toml を作成します。

PowerShell
cp .\config\config.example.toml .\config\config.toml

今回はOllamaと連携してローカルLLMで動かしたいため、以下のように設定しました。
せっかくなので、Alibabaが最近公開した QwQ-32B モデルを設定します。

# Global LLM configuration
[llm]
model = "qwq"
base_url = "http://localhost:11434/v1/"
api_key = "ollama"
max_tokens = 4096
temperature = 0.0

# Optional configuration for specific LLM models
[llm.vision]
model = "minicpm-v"
base_url = "http://localhost:11434/v1/"
api_key = "ollama"

補足1:BrowserUseテレメトリの無効化

デフォルトでは BrowserUseのテレメトリ が有効になっているので、これを無効にします。

.env ファイルを作成し、以下の内容を記述します。

ANONYMIZED_TELEMETRY=false

補足2:タイムアウト対策

QwQ-32B モデルは私の実行環境には荷が重いため、そのまま実行するとタイムアウトします。ツールの実行は60秒でタイムアウトするようです。

タイムアウト秒数を変更するオプションなどは見当たらなかったので、ちょっと無理やりですがコードを直接修正してタイムアウト秒数を60秒から600秒に変更しました。

Python
# ./app/llm.py
    @retry(
        wait=wait_random_exponential(min=1, max=60),
        stop=stop_after_attempt(6),
    )
    async def ask_tool(
        self,
        messages: List[Union[dict, Message]],
        system_msgs: Optional[List[Union[dict, Message]]] = None,
        timeout: int = 600,
        tools: Optional[List[dict]] = None,
        tool_choice: Literal["none", "auto", "required"] = "auto",
        temperature: Optional[float] = None,
        **kwargs,
    ):

ローカルLLMの準備

Ollamaのインストール

Ollamaの公式サイト からインストーラーをダウンロードしてインストールします。

モデルのダウンロード

ollama pull コマンドでモデルをダウンロードします。

PowerShell
ollama pull qwq
ollama pull minicpm-v

OpenManus の実行

タスクの実行

仮想環境をアクティベートした状態で、以下のコマンドを実行します。

PowerShell
python main.py

コマンドを実行するとプロンプトの入力待ちになります。今回は以下のようなプロンプトを入力しました。

プロンプト:

2025年に発売予定のゲームタイトルをリサーチして注目度順にMarkdownにまとめて。それぞれのゲームタイトルの内容についても詳細に調査してください。ファイルは F:/OpenManus/output ディレクトリに出力してください。

file_saverツール(ファイルに出力するツール)で失敗しないようにプロンプトに出力先パス(F:/OpenManus/output)を明示します。これがないと出鱈目なパスが指定されて出力に失敗しました。

実行結果

games_2025.mdファイルが出力されました。5stepsで所要時間は13分4秒でした。

Markdown
# 2025年注目ゲームタイトル一覧

以下は2025年に発売予定の主要なゲームタイトルです(注目度順)。

### 1. Grand Theft Auto 6 (TBD)
- **開発元**: Rockstar Games
- **概要**: 現代犯罪オープンワールド。シリーズ伝統の自由度とグラフィック向上が期待される。

### 2. Assassin's Creed Shadows (March 20)
- **開発元**: Ubisoft
- **概要**: 延期を経て完成を目指すアクションアドベンチャー。歴史的舞台での忍び足プレイが特徴。

### 3. Metroid Prime 4: Beyond (TBD)
- **開発元**: Nintendo
- **概要**: 20年ぶりのメトロイドプライムシリーズ。探索と戦闘のバランスが再構築。

### 4. Tales of the Shire (March 25)
- **開発元**: Weta Workshop
- **概要**: ロード・オブ・ザ・リング世界観の農園シミュレーター。平和な冒険が楽しめる。

### 5. Death Stranding 2 (TBD)
- **開発元**: Kojima Productions
- **概要**: 不思議なオープンワールドアクション。前作を超える世界観展開。

(中略)

### 25. Professor Layton and the New World of Steam (TBD)
- **開発元**: Level-5/Nintendo
- **概要**: 謎解きパズルの名作シリーズ最新作。スイッチ新機種対応予定。

(中略)の部分は私が省略したのではなく、OpenManus が勝手に省略したものです。

雑感

ローカルLLMでOpenManusを実行してみましたが、「とりあえず動く」というだけで実用性はあまり感じられませんでした。普通にClaudeを使うのがいいと思います。

あと OpenManus で使うと微妙でしたが、QwQ-32Bモデル自体は割と優秀だと感じました。

コメント

タイトルとURLをコピーしました