Cursor Cloud agents の体験が Devin とは異なるので、Devin にアーキテクチャを聞いたら、快く教えてくれた。
----
Devin自身のアーキテクチャについてご説明します。
## Devinのエージェントアーキテクチャ
Devinは Cognition AI が開発したAIソフトウェアエンジニアで、以下のような多層アーキテクチャで構成されています。
### 主要レイヤー
**1. ユーザーインターフェース層**
ユーザーはWebアプリ、Slack、GitHub PR コメントなど複数のチャネルからDevinにアクセスできます。これらのインターフェースからのメッセージは統一されたフォーマットでエージェント層に渡されます。
**2. エージェントオーケストレーション層(中核)**
これがご質問の「エージェント層」に該当します。この層は以下の機能を担います。
- **コンテキスト管理**: セッション状態、会話履歴、ユーザーノート、リポジトリ情報を保持
- **タスク計画**: ユーザーの指示を解釈し、TodoWriteツールでタスクを分解・管理
- **ツール選択**: 状況に応じて適切なツールを選択(並列実行も可能)
- **実行制御**: ツール実行結果を観察し、次のアクションを決定するループ処理
- **エラーハンドリング**: 失敗時のリトライや代替アプローチの選択
**3. ツール実行層**
エージェントが利用可能な各種ツール群です。
- **ファイル操作**: Read, Edit, Write, Glob, Grep
- **シェル実行**: Bash, write_to_shell
- **Git操作**: git_create_pr, git_view_pr, git_pr_checks
- **ブラウザ/GUI**: computer (スクリーンショット、クリック、タイプ)
- **コード解析**: LSP (定義ジャンプ、参照検索)
- **外部連携**: MCP servers, web_search
- **ユーザー通信**: message_user
**4. 基盤モデル層**
推論と生成を担当するLLM。エージェント層からのプロンプトを受け取り、次のアクション(ツール呼び出しまたはテキスト生成)を決定します。
**5. 実行環境層**
実際のLinux VM環境。ファイルシステム、シェル、ブラウザ、開発ツールが動作します。
### 処理フロー
1. ユーザーメッセージ受信
2. システムプロンプト コンテキスト ユーザーノートを組み合わせてプロンプト構築
3. 基盤モデルが次のアクションを決定
4. ツール実行と結果の観察
5. 結果に基づいて次のアクションを決定(ループ)
6. 完了時にユーザーへ報告
## Mermaid図
```mermaid
flowchart TB
subgraph UI["ユーザーインターフェース層"]
WebApp["Web App<br/>(
app.devin.ai)"]
Slack["Slack<br/>Integration"]
GitHub["GitHub PR<br/>Comments"]
API["API<br/>Endpoints"]
end
subgraph Agent["エージェントオーケストレーション層"]
direction TB
ContextMgr["コンテキスト管理<br/>・セッション状態<br/>・会話履歴<br/>・ユーザーノート<br/>・リポジトリ情報"]
TaskPlanner["タスク計画<br/>・指示解釈<br/>・タスク分解<br/>・優先度決定"]
ToolSelector["ツール選択<br/>・適切なツール選択<br/>・並列実行判断"]
ExecutionLoop["実行制御ループ<br/>・結果観察<br/>・次アクション決定<br/>・エラーハンドリング"]
ContextMgr --> TaskPlanner
TaskPlanner --> ToolSelector
ToolSelector --> ExecutionLoop
ExecutionLoop -->|フィードバック| TaskPlanner
end
subgraph Tools["ツール実行層"]
direction LR
FileOps["ファイル操作<br/>Read/Edit/Write<br/>Glob/Grep"]
ShellOps["シェル実行<br/>Bash<br/>write_to_shell"]
GitOps["Git操作<br/>create_pr<br/>view_pr<br/>pr_checks"]
BrowserOps["ブラウザ/GUI<br/>computer<br/>screenshot<br/>click/type"]
LSPOps["コード解析<br/>LSP<br/>定義/参照"]
ExtOps["外部連携<br/>MCP servers<br/>web_search"]
end
subgraph LLM["基盤モデル層"]
Model["大規模言語モデル<br/>・推論<br/>・生成<br/>・ツール呼び出し決定"]
end
subgraph Env["実行環境層"]
direction LR
VM["Linux VM"]
FS["ファイル<br/>システム"]
Shell["シェル<br/>セッション"]
Browser["Chrome<br/>ブラウザ"]
DevTools["開発ツール<br/>Node/Python等"]
end
UI -->|メッセージ| Agent
Agent <-->|プロンプト/レスポンス| LLM
Agent -->|ツール呼び出し| Tools
Tools -->|実行結果| Agent
Tools -->|実行| Env
Agent -->|応答| UI
style Agent fill:
#e1f5fe,stroke:
#01579b
style LLM fill:
#fff3e0,stroke:
#e65100
style Tools fill:
#e8f5e9,stroke:
#2e7d32
style Env fill:
#fce4ec,stroke:
#880e4f
style UI fill:
#f3e5f5,stroke:
#4a148c
```
このアーキテクチャの特徴は、エージェント層が「思考→行動→観察」のループを繰り返しながら、複雑なタスクを段階的に解決していく点です。基盤モデルは各ステップで「次に何をすべきか」を判断し、ツール層を通じて実際の作業を実行します。