所要時間: 約40分 | 難易度: ★★★☆☆

この記事で作るもの

  • Metaが買収に失敗したManusのような、OS上の操作を自律的にこなすPythonスクリプト
  • ブラウザを立ち上げ、情報を収集し、ローカルファイルにまとめる一連の自動化フロー
  • 前提知識:Pythonの基本的な構文(pipインストールや環境変数の設定)ができること
  • 必要なもの:OpenAI APIキー、またはローカルLLM(Llama 3等)を動かせるPC環境

📦 この記事に関連する商品

NVIDIA GeForce RTX 4060 Ti 16GB

ローカルLLMでエージェントを動かす際、VRAM 16GBは最低限必要なラインのため

Amazonで見る 楽天で見る

※アフィリエイトリンクを含みます

なぜこの方法を選ぶのか

Metaが20億ドル(約3,000億円)を投じてManusを買収しようとし、中国政府に阻止されたというニュースは、AIエージェントが次の主戦場であることを示しています。 特定の企業が技術を独占しようとする一方で、我々開発者には「Open Interpreter」という強力なオープンソースの武器が既にあります。 Manusのようなクローズドなプラットフォームを待つのではなく、自前のPC環境でコードを実行できるエージェントを構築する方が、カスタマイズ性もプライバシーも圧倒的に高いです。 私はSIer時代にRPA(自動化ツール)の導入を何度も経験しましたが、既存のツールは「ボタンの位置が変わるだけで壊れる」という脆さがありました。 LLM(大規模言語モデル)を脳にしたエージェントなら、コードをその場で生成して自己修正しながら動くため、保守コストが劇的に下がります。 今回は、実務で「明日から使える」レベルの自律エージェントを、最小限の工数で構築していきます。

Step 1: 環境を整える

まずはPythonの仮想環境を作成し、必要なライブラリをインストールします。 既存の環境を汚さないために、プロジェクトごとに仮想環境を分けるのが鉄則です。

# プロジェクト用ディレクトリの作成
mkdir my-ai-agent && cd my-ai-agent

# 仮想環境の作成(Python 3.10以上を推奨)
python -m venv venv

# 仮想環境の有効化(Windowsの場合)
.\venv\Scripts\activate
# Mac/Linuxの場合
source venv/bin/activate

# Open Interpreterのインストール
pip install open-interpreter

Open Interpreter(interpreter)は、LLMが生成したコードをそのままローカル環境のターミナルで実行するためのライブラリです。 単純なチャットボットと違い、あなたのPCのファイル操作やネットワークアクセスを行う「実行権限」を持つことになります。 そのため、常に最新バージョンを使用し、セキュリティリスクを理解した上で進める必要があります。

⚠️ 落とし穴: インストール中に pywin32 などのビルドエラーが出る場合があります。これはコンパイル環境が不足していることが原因です。Windowsユーザーは「Build Tools for Visual Studio」をインストールしておくか、Anaconda環境を利用すると回避しやすくなります。

Step 2: 基本の設定

APIキーをコードに直書きするのは、GitHub等に誤ってアップロードした際に即座に課金被害に遭うため、絶対に避けてください。 .env ファイルを作成して管理する癖をつけましょう。

# .env ファイルを新規作成して以下を記述
# OPENAI_API_KEY=sk-xxxx...

次に、Pythonスクリプトからエージェントを初期化する設定を書きます。

import os
from interpreter import interpreter
from dotenv import load_dotenv

# .envから環境変数を読み込む
load_dotenv()

# OpenAI APIキーの設定
interpreter.llm.api_key = os.getenv("OPENAI_API_KEY")

# モデルの指定(GPT-4oが最も安定して動作します)
interpreter.llm.model = "gpt-4o"

# 自動実行モードの設定(Trueにすると確認なしでコードが実行されます)
# 慣れるまではFalseにして、1ステップずつ確認することをお勧めします
interpreter.auto_run = False

「なぜGPT-4oなのか」という点ですが、エージェントは「コードを書く」「エラーを読み取る」「修正する」という高度な推論ループを回します。 GPT-3.5クラスだと、コードの微細な構文ミスでループが止まってしまい、結局手動で直す羽目になるため、実務では最高性能のモデルを使うのが最短ルートです。

Step 3: 動かしてみる

まずは最小限のタスクを与えて、エージェントが正しくOSを認識しているか確認します。

# 最小限の動作確認:システム情報の取得
interpreter.chat("私のPCのデスクトップにあるファイル一覧を表示して。")

期待される出力

> 実行中:
import os
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
files = os.listdir(desktop_path)
print(files)

出力: ['memo.txt', 'image.png', 'project_folders']
...(エージェントが結果を要約して回答)

結果の読み方ですが、エージェントが「何を考え(Plan)」「どのコードを生成し(Code)」「実行結果がどうだったか(Output)」を順に表示します。 もしエラーが出た場合、エージェントは自らそのエラーメッセージを読み取り、修正案を提示して再実行します。これが「自律型」と呼ばれる所以です。

Step 4: 実用レベルにする

単なるファイル操作では面白くありません。 実務で使える「指定したトピックの最新ニュースを調査し、要約してMarkdownファイルに保存する」というエージェントを作ります。 これは Manus がデモで披露していた「Webリサーチとレポート作成」と同等の機能です。

def run_research_agent(topic):
    prompt = f"""
    1. Googleで「{topic}」に関する最新のニュースを3つ検索してください。
    2. 各ニュースの内容を簡潔に要約してください。
    3. 要約した内容を『{topic}_report.md』という名前でデスクトップに保存してください。
    4. 最後に保存したファイルのパスを教えてください。
    """

    # 実行前にユーザーに確認を求める設定(安全のため)
    interpreter.auto_run = False

    # タスク実行
    interpreter.chat(prompt)

if __name__ == "__main__":
    target_topic = "Meta Manus 買収阻止 影響"
    run_research_agent(target_topic)

このコードのポイントは、プロンプトに「手順(1, 2, 3…)」を明記している点です。 自律型エージェントは自由度が高すぎるため、ゴールだけを伝えると非効率な動きをすることがあります。 SIerの要件定義と同じで、大まかなステップを指示することで、成功率を90%以上に引き上げることができます。

私は以前、このスクリプトを拡張して「毎日決まった時間に競合他社のプレスリリースをチェックし、Slackに投げる」という仕組みを構築しました。 それまで手動で30分かかっていた作業が、APIコスト数円(約$0.05)で終わるようになったのは大きな衝撃でした。

よくあるトラブルと解決法

エラー内容原因解決策
APIキーが認識されない.envの読み込み失敗os.environで直接確認するか、カレントディレクトリをチェック
実行がループして止まらないLLMがエラーを解決できないinterpreter.chat("作業を中断して原因を分析して")と送る
権限エラー (Permission Denied)フォルダへの書き込み権限不足ターミナルを管理者権限で実行するか、書き込み先をユーザーディレクトリに変更

次のステップ

この記事で構築したエージェントは、いわば「脳がクラウド(OpenAI)、手足がローカル」という構成です。 これをさらに進化させるには、以下の2つの方向に進むのが面白いです。

  1. ローカルLLMへの完全移行: Llama 3やCommand R+をローカルPC(RTX 4090等)で動かし、interpreter.llm.model = "ollama/llama3" のように設定すれば、API料金を気にせず、かつ完全オフラインでエージェントを動かせます。秘匿性の高い社内資料を扱うなら、この構成が必須になります。

  2. マルチエージェント化: 今回は1つのエージェントでしたが、CrewAIAutoGen と組み合わせることで、「リサーチ担当」「執筆担当」「校閲担当」のように複数のエージェントに役割を分担させることができます。複雑なソフトウェア開発を自動化したい場合に非常に有効です。

Metaのような巨人が欲しがった「Manus」の背後にあるロジックは、今やあなたの手元にあるPythonコードで再現可能です。 まずは小さな不便を自動化することから始めてみてください。

よくある質問

Q1: 実行中に勝手に重要なファイルを消されたりしませんか?

デフォルトでは interpreter.auto_run = False になっているため、コード実行前に必ずあなたの確認が入ります。AIが生成したコードの内容を読み、「y」を押した時だけ実行されるので、まずはこの設定で動かすのが安全です。

Q2: OpenAIのAPI料金が心配です。節約する方法はありますか?

コンテキスト(会話の履歴)が長くなると料金が上がります。タスクが終わるごとに interpreter.messages = [] で履歴をリセットするか、要約モデルをGPT-4o-miniに切り替えることで、コストを1/10以下に抑えられます。

Q3: ブラウザ操作がうまくいかないことがあります。

interpreter はヘッドレスブラウザ(SeleniumやPlaywright)を使って操作しようとしますが、サイトによってはボット対策でブロックされます。その場合は「特定のURLの内容をテキストで取得して」と指示を変えると、成功率が上がります。