所要時間: 約40分 | 難易度: ★★★☆☆
この記事で作るもの
- Metaが買収に失敗したManusのような、OS上の操作を自律的にこなすPythonスクリプト
- ブラウザを立ち上げ、情報を収集し、ローカルファイルにまとめる一連の自動化フロー
- 前提知識:Pythonの基本的な構文(pipインストールや環境変数の設定)ができること
- 必要なもの:OpenAI APIキー、またはローカルLLM(Llama 3等)を動かせるPC環境
📦 この記事に関連する商品
NVIDIA GeForce RTX 4060 Ti 16GBローカルLLMでエージェントを動かす際、VRAM 16GBは最低限必要なラインのため
※アフィリエイトリンクを含みます
なぜこの方法を選ぶのか
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つの方向に進むのが面白いです。
ローカルLLMへの完全移行: Llama 3やCommand R+をローカルPC(RTX 4090等)で動かし、
interpreter.llm.model = "ollama/llama3"のように設定すれば、API料金を気にせず、かつ完全オフラインでエージェントを動かせます。秘匿性の高い社内資料を扱うなら、この構成が必須になります。マルチエージェント化: 今回は1つのエージェントでしたが、
CrewAIやAutoGenと組み合わせることで、「リサーチ担当」「執筆担当」「校閲担当」のように複数のエージェントに役割を分担させることができます。複雑なソフトウェア開発を自動化したい場合に非常に有効です。
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の内容をテキストで取得して」と指示を変えると、成功率が上がります。






