驚異のAIエージェント「Manus」の全貌を解剖! ~その仕組み、機能、そして私たちにもたらす可能性~
AI技術の進化は目覚ましく、私たちの仕事や生活の様々な場面でAIの存在を感じるようになりました。今回ご紹介するのは、その中でも特に注目すべきAIエージェント、「Manus」です。
Manusは、単なるAIアシスタントではありません。まるで有能な秘書、あるいは熟練したチームメンバーのように、幅広いタスクを自律的に実行できる、非常に高度なAIエージェントです。
実は本日、こちらのManusの内部プロンプトやツールなどの構造が、以下の手順で公開されました。
So... I just simply asked Manus to give me the files at "/opt/.manus/", and it just gave it to me, their sandbox runtime code...
— jian (@jianxliao) March 9, 2025
> it's claude sonnet
> it's claude sonnet with 29 tools
> it's claude sonnet without multi-agent
> it uses @browser_use
> browser_use code was… pic.twitter.com/Q7nxkO0c9j
その後、Manusの創業者からも、直接仕組みについての解説がありました。
Hi! I'm Peak from Manus AI. Actually, it's not that complicated - the sandbox is directly accessible to each user (see screenshot for method).
— Yichao 'Peak' Ji (@peakji) March 10, 2025
Specifically:
* Each session has its own sandbox, completely isolated from other sessions. Users can enter the sandbox directly through… pic.twitter.com/2o22LIJHEU
この記事では、Manusの内部構造(システムプロンプトとツール)を詳しく解説し、その驚くべき機能と、私たちにどのような可能性をもたらすのかを探っていきます。さらに、Manusから学べるAIとの協働のヒントや、効果的なAI活用術についても考察します。
Manusとは?:多機能AIエージェントの概要
Manusは、Manusチームによって開発されたAIエージェントです。最大の特徴は、その多機能性と自律性にあります。
Manusの主な機能
情報収集&ファクトチェック: ウェブ検索やデータ分析を駆使し、必要な情報を迅速かつ正確に収集。情報の真偽も確認します。
データ処理&分析: 構造化データ、非構造化データを問わず、高度なデータ処理・分析を実行。結果をわかりやすく可視化します。
コンテンツ作成: 複数章からなる記事、詳細な調査レポート、ウェブサイトのコンテンツなど、多様な形式のコンテンツを作成。
ウェブ開発&アプリ開発: ウェブサイト、アプリケーション、各種ツールの開発に対応。
プログラミングによる問題解決: 開発タスクに限らず、プログラミングを用いて様々な課題を解決。
その他: コンピュータとインターネットを活用して実行可能な、あらゆるタスクに対応。
これらの機能を組み合わせ、Manusはユーザーから与えられたタスクを自律的に、かつ効率的に実行します。
Manusの「頭脳」:システムプロンプトを読み解く
Manusの「頭脳」とも言えるのが、システムプロンプトです。これは、Manusの基本的な動作原理、役割、能力、そしてユーザーとのコミュニケーション方法などを定義した、いわば「指示書」のようなものです。
システムプロンプトは、以下の主要な要素で構成されています。
エージェントループ (Agent Loop): Manusがタスクを実行するための一連のステップを定義。
システム能力 (System Capabilities): Manusが利用できるリソースや機能を定義。
使用言語: 作業言語に関する指示。
詳細ドキュメントへの参照: `prompt.txt`と`tools.json`への参照。
エージェントループ:タスク実行のサイクル
Manusは、「エージェントループ」と呼ばれる以下の6つのステップを繰り返すことで、タスクを着実に実行していきます。
Analyze Events(イベント分析):
ユーザーからのメッセージや、ツールの実行結果(イベントストリーム)を分析。
現在の状況とユーザーのニーズを正確に把握。
Select Tools(ツール選択):
現在の状況、タスクの計画、関連知識、利用可能なAPIなどに基づいて、次に使用するツールを決定。
最適なツールを戦略的に選択することが、タスクの効率と品質を左右。
Wait for Execution(実行待ち):
選択されたツールが、Manusの実行環境(Linuxサンドボックス)で実行。
ツールの実行結果は、新たな「イベント」として記録(イベントストリームに追加)。
Iterate(反復):
1回のループで実行するツールは1つだけ。
タスクが完了するまで、上記のステップ(1~3)を辛抱強く繰り返す。
状況の変化に柔軟に対応しながら、着実にタスクを遂行。
Submit Results(結果提出):
メッセージツールを使って、ユーザーに結果を報告。
成果物や関連ファイルは、メッセージに添付して提供。
Enter Standby(待機):
すべてのタスクが完了、またはユーザーからの停止指示があると、アイドル状態に移行。
次のタスクに備えて待機。
システム能力:Manusの「武器」
システムプロンプトでは、Manusが利用できるリソースや機能も明確に定義されています。主なものを挙げると:
ユーザーとのコミュニケーション: メッセージツールによる双方向のコミュニケーション。
Linuxサンドボックス環境: インターネット接続を備えた安全な実行環境。
各種ソフトウェア: シェル、テキストエディタ、ブラウザなどを自由に利用可能。
プログラミング: Pythonをはじめ、多様なプログラミング言語に対応。
自動インストール: 必要なソフトウェアやライブラリを自動的にインストール。
デプロイ: ウェブサイトやアプリケーションを公開環境にデプロイ。
ユーザーへの操作委譲: 機密性の高い操作が必要な場合は、ユーザーにブラウザの制御を一時的に委ねることも可能。
これらの能力を駆使して、Manusは幅広いタスクに対応できるのです。
Manusの「道具箱」:tools.jsonを徹底解説
Manusが実際にタスクを実行する際に使用するのが、「ツール」です。`tools.json`ファイルには、Manusが利用可能なすべてのツールが詳細に記述されています。
各ツールは、以下の要素で構成されています。
type: ツールの種類(`function`で固定)。
function:
name: ツールの名前。
description: ツールの機能説明。
parameters: ツールが受け取るパラメータ(引数)の定義。
type: パラメータの型(`object`など)。
properties: 各パラメータの詳細。
type: データ型(`string`, `integer`, `boolean`など)。
description: パラメータの説明。
enum: 選択肢がある場合に、そのリストを定義(例:`"enum": ["none", "browser"]`)。
required: 必須パラメータのリスト。
`tools.json`に定義されている主なツールを、カテゴリごとに見ていきましょう。
メッセージ関連ツール
`message_notify_user`: ユーザーに通知を送信(応答は不要)。進捗報告やタスク完了の連絡などに使用。
`message_ask_user`: ユーザーに質問を送信(応答が必要)。不明点の確認や追加情報の収集などに使用。
ファイル操作ツール
`file_read`: ファイルの内容を読み込み。
`file_write`: ファイルに書き込み(上書き、追記)。
`file_str_replace`: ファイル内の文字列を置換。
`file_find_in_content`: ファイル内の文字列を検索(正規表現を使用)。
`file_find_by_name`: ファイル名で検索(globパターンを使用)。
シェル操作ツール
`shell_exec`: シェルコマンドを実行。
`shell_view`: シェルセッションの出力を確認。
`shell_wait`: シェルプロセスの終了を待機。
`shell_write_to_process`: シェルプロセスにデータを入力。
`shell_kill_process`: シェルプロセスを強制終了。
ブラウザ操作ツール
`browser_view`: 現在のブラウザページの内容を表示。
`browser_navigate`: 指定したURLに移動。
`browser_restart`: ブラウザを再起動し、指定したURLに移動。
`browser_click`: ページ内の要素をクリック。
`browser_input`: 入力欄にテキストを入力。
`browser_move_mouse`: マウスカーソルを移動。
`browser_press_key`: キーボードのキーを押下。
`browser_select_option`: ドロップダウンリストから選択。
`browser_scroll_up`: ページを上にスクロール。
`browser_scroll_down`: ページを下にスクロール。
`browser_console_exec`: ブラウザのコンソールでJavaScriptを実行。
`browser_console_view`: ブラウザのコンソールの出力を確認。
ウェブ検索ツール
`info_search_web`: ウェブ検索(Google検索スタイル)。
デプロイ関連ツール
`deploy_expose_port`: ローカルポートを一時的に公開。
`deploy_apply_deployment`: ウェブサイトやアプリケーションをデプロイ。
Manus Page作成ツール
`make_manus_page`: ローカルのMDXファイルからManus Pageを作成
その他のツール
`idle`: 全タスク完了、アイドル状態へ
これらのツールを組み合わせて複雑なタスクを実行できることが、Manusの強みです。
prompt.txt:Manusの行動指針と効果的なプロンプト
`prompt.txt`は、Manusの機能概要、タスクへの取り組み方、効果的なプロンプトの作成方法、そしてManus自身の自己紹介が記述されたドキュメントです。
Manusのタスクへの取り組み方
`prompt.txt`には、Manusがタスクにどのように取り組むかが詳細に記述されています。
要求分析: ユーザーの要求を分析し、何をすべきかを理解。
問題分解: 複雑な問題を、より小さく扱いやすいステップに分割。
ツールと手法の選択: 各ステップに最適なツールと手法を選択。
明確なコミュニケーション: プロセス全体を通じて、ユーザーと明確にコミュニケーション。
結果の提供: 結果を整理し、わかりやすい形でユーザーに提供。
効果的なプロンプトの作成
`prompt.txt`には、Manusから最良の結果を引き出すための、効果的なプロンプトの作成方法も詳しく解説されています。
明確性と具体性: あいまいさを避け、具体的かつ明確に指示。
コンテキストの提供: タスクの背景や目的を説明。
構造化: 複雑な要求は、小さな部分に分割。
出力形式の指定: 希望する応答の長さ、形式(箇条書き、表など)を指定。
反復的なプロンプト: 最初から完璧なプロンプトでなくても、AIとの対話を通じて徐々に改善。
Manusの自己紹介
`prompt.txt`には、Manus自身の自己紹介も含まれています。Manusの性格、得意
分野、学習プロセス、コミュニケーションスタイル、そしてユーザーとの協働において大切にしている価値観などが記述されています。
Manusから学ぶ:AIとの協働と効果的なAI活用
Manusの仕組みや機能を詳しく見てきましたが、ここから私たちは何を学べるでしょうか?
AIの「得意」と「苦手」を理解する: AIは、大量のデータ処理、情報検索、反復作業などを得意とする一方、創造性、文脈理解、常識判断などは苦手です。この特性を理解し、AIの得意分野を任せることが重要です。
明確な指示の重要性: AIは、人間のように「行間を読む」ことはできません。具体的で明確な指示を与えることで、AIの能力を最大限に引き出すことができます。
反復的なコミュニケーション: 最初から完璧な結果を期待するのではなく、AIとの対話を通じて、徐々に要求を明確化していくことが重要です。
AIを「ツール」として捉える: AIは、あくまで「ツール」です。人間が主体的にAIを使いこなし、人間の創造性や判断力と組み合わせることで、より大きな成果を生み出すことができます。
AIの進化に注目し続ける: AI技術は日々進化しています。常に最新の情報にアンテナを張り、新しいAIツールの活用方法を学ぶことが重要です。
まとめ:Manusが示すAIの未来
Manusは、AIエージェントの可能性を大きく広げる存在です。その多機能性、自律性、そして高度なタスク実行能力は、私たちに「AIと協働する未来」を具体的に示してくれています。
ManusのようなAIエージェントは、今後ますます私たちの仕事や生活に浸透していくでしょう。AIの特性を理解し、効果的に活用することで、私たちはより創造的な活動に集中し、より豊かな社会を築くことができるはずです。
Manusの全貌を解剖することで、AIとの協働のヒント、効果的なAI活用術、そしてAIの未来について、深く考えるきっかけになれば幸いです。



コメント
1Manusについてわかりやすい記事をありがとうございます。マガジンに追加させていただきました。