
Devinのワークフローの内側:ツール使用、計画、そして自律性
はじめに
Devin(Cognition AI製)は、ソフトウェア開発タスクを計画し、その大部分を自律的に実行できる新しい自律型AIソフトウェアエンジニアです。コードエディター、コマンドラインシェル、ウェブブラウザといったツールを使用して、コードの調査、記述、テスト、デプロイメントをエンドツーエンドで実施します。デモや報道では、Devinがコードベースをスキャンし、計画を生成し、ファイルを編集し、テストを実行し、プルリクエストを作成する様子が、驚くほど少ない人間の介入で行われていることが示されています (medium.com) (www.linkedin.com)。Cognitionは、Devinが*「何千もの意思決定を必要とする複雑なエンジニアリングタスク」*を処理でき、各ステップでコンテキストを想起し、間違いから学ぶことさえできると主張しています (medium.com) (www.linkedin.com)。そこで、本稿ではDevinの設計とワークフローに関する公開されている詳細を探ります。これには、Devinがどのようにタスクを分解するか(その計画プロセス)、開発環境(エディター、ターミナル、ブラウザ)でどのように実際に機能するか、コーディングセッションを通じてどのように記憶やコンテキストを保持するか、どのように自己修正し反復するか、そしてどのようなガードレールや安全対策を使用しているかが含まれます。また、開示されていない点、例えば正確なモデル内部構造は未公開であり、一部のコミュニティの議論が推測に頼っている点についても触れます。
タスクの計画と分解
開発者がDevinに新しい課題を与えると、最初のステップは、どのファイルをどのような順序で変更するかを計画することです。Cognitionのメモによると、Devinは「計画モード」のサブエージェントを使用し、その役割は、タスクに関連するリポジトリ内のファイルを特定することだと説明されています (medium.com) (docs.devin.ai)。実際には、Devinはコードを記述する前にリポジトリを「調査」し、計画を提案します (docs.devin.ai) (docs.devin.ai)。複雑なタスクの場合、開発者はこの計画を確認し、承認または調整することができます。エージェンシーモードが有効になっている場合、Devinは承認を待たずに自動的に計画を進めます (docs.devin.ai) (docs.devin.ai)。
舞台裏では、Cognitionはこの計画エージェントを強化学習で訓練しました。ある分析では、チームはプランナーに読み取り専用ツール(ls、grep、read_fileなど)のみを与え、人間が編集するファイルのセットを正確に予測したときに報酬を与えたと説明しています (medium.com) (medium.com)。その結果、Devinのプランナーは並列ファイルシステムクエリを発行すること(例:異なるディレクトリでlsとgrepを同時に実行すること)を学習し、有望な手がかりを絞り込むようになりました (medium.com)。トレーニング時のペナルティは効率性を促進するため、エージェントはブルートフォース(例:リポジトリ全体を際限なくgrepする)を避け、ターゲットを見つけたらすぐに「コミット」します (medium.com)。これは、Devinの計画がデータ駆動型であることを意味します。つまり、汎用的なコードベースナビゲーション戦略を学習しているのです(Cognitionが指摘するように、モデルは多くのリポジトリとユーザーのクエリで訓練されました) (medium.com) (medium.com)。
ユーザーレベルでは、その結果が手順の概要として表示されます。たとえば、新しい機能要求では、Devinは「ファイルAを変更してXを実装し、ファイルBにテストを追加し、その後設定Cを更新する」といった提案をします。デモでは、ユーザーが詳細の指定を忘れた場合、Devinの計画ステップがそれをしばしば検出し、明確化を求めます。あるデモでは、ユーザーが明示的に言及しなかったにもかかわらず、アシスタントがGitHubアカウントの設定を計画に自動的に追加しました (www.developersdigest.tech) (www.linkedin.com)。計画(質問、タスクのリストアップ、ファイルのマッピング)のこれらのステップはすべて、コードが記述される前にDevinの対話インターフェース内で行われます。ユーザーが同意するか、自動承認がオンの場合、Devinは実行に進みます。
開発環境での作業:エディター、ターミナル、ブラウザ
Devinはサンドボックス化された開発環境内で動作します。Cognitionの資料では、おなじみの開発者ツールキット、つまりシェルターミナル、コードエディター、ウェブブラウザをすべて自由に利用できると説明されています (medium.com) (docs.devin.ai)。実際には、Devinが実行するすべての動作はログに記録され、ウェブUIで可視化されます。「Devinをフォロー」ビューは、各アクション(ファイル編集やシェルコマンドなど)をハイライト表示し、人間がアイコンをクリックして、そのアクションが発生したコードエディターまたはターミナルに直接ジャンプすることさえ可能にします (docs.devin.ai)。たとえば、DevinがJavaScriptファイルを編集した場合、ユーザーはクリックして変更を含むVSCodeエディタービューを見ることができます。また、Devinがシェルコマンドを実行した場合、クリックしてターミナル出力を確認できます。
また、必要であればDevinのワークスペースに手動で介入することもできます。最近のアップデートでは、ウェブ経由でVSCodeにDevinの環境を開く**「Devinの機械を使用」**ボタンが追加されました (docs.devin.ai)。これは、開発者がDevinのファイルを参照したり、コマンドを実行したり、ワークスペース内で手動でコードを編集したりできることを意味します。(長時間実行されるタスクの場合、途中で何かを検査したいときにこれは便利です。)ある例では、ユーザーがこれをアクティブにしてDevinがUI要素を作成する様子を観察しました。ユーザーは文字通りDevinのVSCodeを開き、Devinが記述した新しいファイルを見て、UIをライブで探索することができました。
ブラウザツールにより、Devinはインターネット上で調査やテストを行うことができます。デモでは、Devinがウェブ検索を使用してドキュメントやライブラリを調べたり、ローカルウェブサーバーを実行してコードが壊れていないかを確認したりする様子が見られます(例えば、UIが機能することを確認するためにブラウザをlocalhostに向けます)。全体として、Devinのインターフェースはマルチモーダルです。テキストプロンプト、添付されたデザイン画像やドキュメント、さらにはコードスニペットなどの入力を受け取ることができ、チャットとこれらの開発ツールの両方を介して対話します (www.developersdigest.tech) (medium.com)。その結果、AIとの静的なチャットよりも「コードを書く同僚」とはるかに近い体験が得られます。
記憶、知識、セッションコンテキスト
Devinは、組み込みの**「知識」**システムを使用して、セッション全体にわたる情報を追跡します。知識をワークスペースのノートのように考えてください。Devinはヒント、プロジェクト固有の指示、または重要なコンテキストをそこに保存し、後で呼び出すことができます。たとえば、ドキュメントでは、重要なアーキテクチャ上の制約やコーディングスタイルガイドなど、特定の知識をDevinが忘れないようにピン留めするワークフローが説明されています (docs.devin.ai)。ユーザーはこの知識バンクを編集したり追加したりできます。Devinはまた、役立つメモを自動生成します。リポジトリをスキャンしてコード構造、コンポーネント、ドキュメントについて学習し、「リポジトリ知識」の要約を自動的に作成します (docs.devin.ai) (docs.devin.ai)。実際には、いくつかのタスクを実行した後、Devinは「あなたはReactとReduxをよく使っているようです。それを知識に追加することをお勧めします」と言うかもしれません。そして、あなたが承認すれば、その情報は保存されます。
セッション中、Devinは関連する知識を作業記憶に保持します。Cognitionは「各ステップで関連するコンテキストを想起する」と主張しています (www.linkedin.com)。たとえば、以前にPython 3.11を好むことや、ウェブアプリがOAuthを使用していることを学習していた場合、必要に応じてその情報をプロンプトに持ち込みます。セッションは本質的に長くステートフルです。Devinが多くのファイルを編集する間に、あなたは数十回(数分以上)Devinと会話するかもしれませんが、チャット履歴は保持されます。Devinが停止した場合、ログをスクロールするか、「進行モード」をオンにして、Devinが実行したすべてのアクションを確認できます。
セッションが終了した場合(たとえば、タスクを停止したり、作業を終えたりした場合)、Devinはそのマシンの実行状態を忘れ、次回は仮想マシンがベーススナップショットにリセットされます (docs.devin.ai)。デフォルトでは、このベース状態にはワークスペースに事前にロードされたリポジトリが含まれるため、Devinは毎回最初からクローンする必要はありません (docs.devin.ai)。(ワークスペース設定がない場合、各セッションは空のマシンから開始されるため、Cognitionは速度のためにリポジトリを事前設定することを強調しています (docs.devin.ai)。)しかし、コードを超えて、Devinはその知識バンクを通じて知識を進化させます。将来のタスクに役立つと思われる教訓や定義を追加するよう促します (docs.devin.ai)。複数のセッションにわたって、これはDevinがプロジェクトの慣習やアーキテクチャに関する記憶を徐々に構築することを意味します。
知識に加えて、CognitionはDeepWikiをリリースしました。これは、コードベース全体をインデックス化し、その上にチャットインターフェースを提供する関連ツールです (medium.com)。DeepWikiは別の製品ですが、より広範なアーキテクチャを示唆しています。Devinは、質問に答えるために、自身のまたは外部のコードのWikiを照会できます。実際には、Devinにコードについて何かを尋ねると、その返答を根拠付けるために、DeepWikiと同じ検索システムを内部的に使用する可能性があります。
自律性、反復、自己修正
Devinは自律的に設計されていますが、必要に応じてフィードバックループも備えています。計画後、エラーを常にチェックしながらステップを一つずつ実行します。デモでは、エージェントは頻繁にこのパターンに従います。ブラウザやドキュメントを使用して問題を理解し、コードを記述し、実行し、エラーを確認し、その後、その修正方法を調べます。これは人間のデバッグサイクルを模倣しています (www.developersdigest.tech) (www.linkedin.com)。たとえば、あるプレゼンターは、Devinがログインフォームを追加し、その後フロントエンドテストを実行してバグを見つけ、そのエラーを修正する方法を研究するために戻る様子を示しています。Devinの各「ターン」は思考 → 行動 → 観察 → 修正のループです。
複数の情報源が、Devinに「自己修正」機能が組み込まれていると指摘しています (medium.com) (www.linkedin.com)。実際、GPT-5に関するCognitionのブログでは、GPT-5が「エラーを理解し、自己修正する能力に優れている」と述べられており、これは長時間のタスクにとって非常に優れていると強調されています (www.linkedin.com)。言い換えれば、Devinのコードがコンパイルできなかったり、テストに失敗したりした場合、モデル(多くの場合GPT-5または類似のもの)はエラーメッセージを見て、その場で修正方法を見つけ出します。リトライループさえ可能です。アクションが部分的に成功した場合、Devinは再度試行することがあります。これらのループは、UIで繰り返される編集と実行のシーケンスとして確認できます。
体系的に失敗を処理するために、Devinは自動化と人間の監視を組み合わせて使用します。たとえば、Devinがプルリクエストを開き、CIの失敗やコードレビューコメントを受け取った場合、Cognitionのシステムは自動的にDevinをスリープから起こし、問題に対処させます (docs.devin.ai) (docs.devinenterprise.com)。デフォルトでは、Devinはリンターエラーやコメントに応答しますが、ユーザーはこれを無効にすることができます。UIもステータスとアクションをリアルタイムでハイライト表示するため、開発者はいつでも介入できます。開発者は、「ライブモード」(各ステップが表示される)で最初の数回実行を観察して信頼を築き、自信がついたらDevinを完全にヘッドレスで実行させることを推奨されています (www.developersdigest.tech)。
安全性、ガードレール、カスタマイズ
オペレーターはDevinに何をすべきでないかを明示的に指示できます。強力な機能の一つに**「禁止アクション」があります。Devinが触れることを許可されないものをリストアップできます。たとえば、「mainに直接プッシュしない」とか「ファイルXを編集しない」といった指示です。システムは、これらのコマンドがプロンプトやプレイブックに表示された場合、Devinがそれらを尊重するようにします (docs.devin.ai)。リリースノートによると、Devinは現在、禁止アクションリストを確実に**処理しており、そのアクションをこれらのルールと照合しているとのことです。これにより、間違ったブランチやファイルを変更するといった一般的なミスを防ぐのに役立ちます。
Devinはまた、さまざまな制御を提供します。SlackやウェブUIでは、Devinに「スリープ」(作業の一時停止)またはセッションの「アーカイブ」を指示できます (docs.devin.ai)。Devinが計画を実行する前に承認を必要とするか(エージェンシー設定経由)、または完全に自律的に実行するかを選択できます (docs.devin.ai) (docs.devin.ai)。その計算使用量はAgent Compute Units (ACU) で測定され、Devinが制限に達しそうになるとUIに警告が表示されるため、介入してより多くのリソースを付与することができます (docs.devin.ai)。
万が一、裏側で問題が発生した場合でも、Cognitionは監視体制を整えています。以前のリリースでは、一部のユーザーからDevinのセッションが「フリーズした」またはクラッシュしたという報告がありました。チームはこれらの問題が修正されたと述べ、Devinがハングアップした場合にはACUの払い戻しを提供しています (docs.devin.ai)。つまり、同社はシステムの信頼性のために積極的にシステムを計測しています。外部のアナリストは、他のチャットベースAIと同様に、Devinも時折間違いを犯したり、コードを「幻覚」したりする可能性があると警告しています。推奨されるプラクティスは、ジュニア開発者の作業と同様にその出力をレビューすることです。安全のため、多くのチームはDevinのコミットに対してコードレビューを使用し、Devinの権限を制限しています(例:デフォルトではシークレットへの直接アクセスを許可しない)。これまでのところ、公開されているガードレールは、組み込みの倫理フィルターというよりも、ほとんどがユーザー定義(禁止アクション、計画承認の要求など)とシステムヘルスチェックです。
私たちが(まだ)知らないこと
Cognitionは意図的にいくつかの詳細を内部に留めているため、Devinの一部は不透明です。たとえば、使用している正確な大規模言語モデルは当初公開されていませんでした。噂やその後の投稿によると、Cognitionは現在、その計画と推論の核としてGPT-5をDevinに統合していると示唆されており (www.linkedin.com)、Claude Sonnet 4.5に基づいたプレビューエージェントも持っています (docs.devinenterprise.com)。しかし、完全なアーキテクチャは不明確です。Devinは複数のモデルをオーケストレーションし、カスタムのファインチューニングを行っている可能性が高いですが(RFT計画サブエージェントが示唆するように)、それらのレイヤーはオープンソース化されていません。
また、その記憶の限界についても完全に知られていません。Devinは「時間をかけて学習する」と主張していますが、新しい知識を既存のネットワークにどのように統合するのか(単に知識バンクに保存するだけではなく)は指定されていません。効果的に使用する会話履歴の最大長も文書化されていません。セッションが非常に長い場合、チャットやコードのコンテキストのより早い部分が舞台裏でプルーニングされる可能性があります。実際には、ほとんどのユーザーはコンテキストオーバーロードを避けるためにプロンプトとコードを簡潔に保っています。
安全性については、いくつかの不明点が残っています。たとえば、「禁止アクション」はユーザー指定のルールをカバーしていますが、Devinにデータ誤用検出、バイアスチェック、サンドボックスエスケープなどの暗黙的な安全レイヤーがあるかどうかは不明確です。VM内で動作するため、ホストシステムに損傷を与えることはないと思われますが、そのサンドボックス化の詳細については公開されていません。コミュニティは、Devinのマシンが実行を隔離するためにコンテナスナップショット(RLトレーニングで言及されているように)を使用している可能性が高いと推測しています (medium.com)。
最後に、コミュニティの多くは、Devinが曖昧なタスクやオープンエンドのタスクにどのように対処するかを注視しています。セールスプロモーションでは「完全自律型」と謳われていますが、アナリストは依然として正確な指示を必要とすることが多いと指摘しています。たとえば、ユーザーのプロンプトが漠然としている場合、Devinは合理的に見えるが重要なエッジケースを見落とす計画を生成する可能性があります。フォローアップで明確化を求める質問をするかもしれませんが、開発者はコードのパターンマッチングだけでなく、意図をどれだけ理解しているかについて疑問に思うことがあります。Devinの認知のこれらの側面は、基盤となるLLMの能力に依存しており、私たちはそれを間接的にしか観察できません。要するに、ユーザーはDevinをプロダクトマネージャーというよりも、非常に熟練したジュニアエンジニアとして評価すべきです。計画は得意ですが、常にあなたの意図を完璧に把握するとは限りません。
Devinを使い始める
Devinは、主に多くのコーディング作業を行うエンジニアリングチームを対象としています。仕様からの機能構築、リファクタリング、テスト作成、バグ修正など、明確に定義されたタスクでその真価を発揮します。高レベルな設計や非常に不明確な問題には、まだそれほど実績がありません。ソフトウェアチームにとって、Devinはルーティン作業を片付けるのに役立ち、人間は創造的なアーキテクチャと監視に集中できるようになります。
非プログラマーや初心者にとってもDevinは役立ちますが、いくつかの設定が必要です。最初のステップは、Devinにコードリポジトリ(GitHub、GitLabなど経由)へのアクセスを許可し、おそらくSlackまたはTeamsに接続することです。次に、簡単なタスクを試してみてください。たとえば、「Devin、ウェブUIにデータベースからすべての製品をリスト表示する新しいページを追加して、テストカバレッジも含めてください」と尋ねます。計画フェーズの対話に注目してください。Devinはどのファイルを変更するか(例:HTMLテンプレート、バックエンドAPIコードなど)を概説し、必要な質問をします。計画を承認し(または自動実行させ)、それが実行されるのを見てください。「フォロー」パネルを使用して各ステップを確認できます。ファイル編集、シェルコマンド(テストスイートの実行など)、UIのブラウザスナップショットが表示されます。Devinが間違いを犯した場合や変更したい場合は、チャットで話すように単純にやり取りします(「実際には、このCSSテーマを使ってください」や「製品のタイトルは大文字にしてください」など)。Devinは別の編集ループを開始します。
重要な実行可能なステップは反復とレビューです。Devinが生成したコードは常にチェックし、ローカルでテストしてください。時間をかけて知識バンクを充実させることができます。「私たちのデータベースはPostgreSQL 13を使用しています」や「PHPではPSR-12スタイルに従っています」といったメモを追加してください。Devinは将来のセッションでこれらを組み込み始めるでしょう。また、設定も探索してください。常に提案を精査したい場合はエージェンシーをオフにし、信頼度が高い場合はオンにします。DevinをCIにリンクしてプルリクエストの自動レビューを行いますが、最初は通知から始めて、Devinがフィードバックをどのように処理するかを観察できるようにします。
最終的に、Devinのワークフローは緻密で強力ですが、依然としてあなたのガイダンスに依存します。Devinがどのように計画し、ツールを使用し、フィードバックから学習するか(上記で詳述した通り)を理解することで、この新しい種類のエージェント型コーディングアシスタントを最大限に活用できます。Devinに興味のあるチームにとっての次の最善のステップは、devin.aiでサインアップし、小さなパイロットを実行することです。ウェブのリポジトリを1つ追加し、Devinに機能の実装を依頼し、進行モードで実行させます。完全な「思考」の追跡を観察してください。その実践的な経験が、Devinが計画、編集、自己修正をどのように統合しているかを正確に明らかにするでしょう。そこから、より多くのタスクにスケールアップし、その使用法を微調整できます(たとえば、ドメイン用のカスタムプレイブックなど)。まだ進化中ですが、DevinはAIツールにおいて大きな飛躍を遂げています。今日そのワークフローを学ぶことで、チームはコーディングタスクをAIチームメイトと真に共有できる時代に備えることができます。
新しいAIコーディング研究とポッドキャストエピソードを入手
AIコーディングツール、AIアプリビルダー、ノーコードツール、vibeコーディング、AIを使ったオンライン製品構築に関する新しい研究更新やポッドキャストエピソードを受信するために購読してください。