> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 最初のセッション

> 最初のセッションを始めて、Devin に何ができるか確認しましょう

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<Note>
  最初のセッションを開始する前に、リポジトリを[インデックス化](/ja/onboard-devin/index-repo)し、[セットアップ](/ja/onboard-devin/environment)していることを確認してください。これらは、Devin があなたのコードベースを理解し、扱えるようにするための基盤となる手順です。
</Note>

セットアップが完了したら、さっそく最初の Devin セッションを開始しましょう。このガイドでは、新しいセッションインターフェースを順を追って紹介し、Devin と最適な形でやり取りする方法を理解できるようにします。

<Tip>
  ターミナルでの作業を好みますか？ [Devin CLI](/ja/cli) を使えば、コマンドラインから直接セッションを開始できます。`curl -fsSL https://cli.devin.ai/install.sh | bash` で 2 分でインストールできます。
</Tip>

<div id="understanding-the-devin-session-page">
  ## Devin セッションページの概要
</div>

新しいセッションを開始すると、**Ask** と **Agent** の 2 つの主要なモードが表示されます。

<Note>
  すでにタスク範囲が完全に定義されたプランがある場合を除き、まずは Ask モードで Devin と一緒にプランを作成し、その後 Agent モードに切り替えて実行することをおすすめします。
</Note>

<div id="ask-mode">
  ### Ask モード
</div>

**Ask Devin** は、実際のコードに変更を加えることなく、コードベースの調査やタスクの計画を行うための軽量なモードです。Ask Devin では、質問と計画の両方が可能です。

* コードの動作について **質問** できます。高度なコード検索を利用して、詳細で正確かつ根拠の明確な回答を返します。
* 実装前に作業のスコープ設定と計画を行い、**タスクを計画** できます。Devin が Agent セッション向けの、十分なコンテキストを含むプロンプトを生成します。

Ask Devin から Devin セッションを開始すると、セッションのステータスが会話内に直接表示されます。

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/ada-main-page.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=a66e840b304f9f6ca9c5dfa18dbbc89f" alt="Ask Mode" width="2758" height="1448" data-path="images/get-started/ada-main-page.png" />
</Frame>

<div id="triggering-ask-mode">
  #### Ask モードの起動方法
</div>

Ask モードはメインページまたは DeepWiki ページから起動できます。

メインページから Ask モードを使う場合は、Ask モードに切り替えて、質問したいリポジトリを選択します。

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/ada-session-page-entry.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=43193478bd6ed7faa4af38d98b28d281" alt="メインページからの Ask モード" width="2758" height="1448" data-path="images/get-started/ada-session-page-entry.png" />
</Frame>

DeepWiki ページから Ask モードを使う場合は、ページ下部のチャット入力欄に質問内容を入力し、Ask をクリックします。これにより、Devin が参照する情報の範囲がそのリポジトリに自動的に限定されます。

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/ada-deepwiki-entry.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=d8bd2adc7aa530f6f32801f8e662ae83" alt="DeepWiki からの Ask モード" width="2878" height="1471" data-path="images/get-started/ada-deepwiki-entry.png" />
</Frame>

詳しくは [Ask Devin ガイド](/ja/work-with-devin/ask-devin) を参照してください。

Devin と一緒に問題を理解してプランを作成できたら、Agent モードに進む準備が整っています。

<div id="agent-mode">
  ### エージェントモード
</div>

エージェントモードは、Devin が完全に自律的に動作し、コードの記述、コマンドの実行、Web の閲覧、複雑なタスクのエンドツーエンドでの完了まで行えるモードです。次のようなことを行いたいときにエージェントモードを使用します:

* 機能を実装したりバグを修正するとき
* Pull Request を作成するとき
* テストを実行して問題をデバッグするとき
* コード変更を伴う複数ステップのタスクを実行するとき

<div id="triggering-agent-mode">
  #### Agent モードの起動
</div>

Agent モードは、メインページまたは Ask Devin セッションから起動できます。Ask Devin からセッションを開始した場合、そのステータスは進捗を追跡できるよう Ask Devin の会話内に表示されます。

タスクのスコープが明確でない場合は、次の進め方をおすすめします。

* まずは **Ask モード** でタスクの計画を立てる
* Ask セッションの内容を基にスコープされた計画を作成するために、**Devin プロンプトを作成**する
* **Send to Devin** をクリックして Agent モードに移行し、タスクを実行する

このフローは次のとおりです。

<Frame>
  <img src="https://mintcdn.com/cognitionai/BYl4s8rnjUeg9-BI/images/get-started/ada-to-agent.gif?s=fe3afc60b81ee7fa2fdaae4b7eadbe09" alt="Ask Mode to Agent Mode" width="800" height="541" data-path="images/get-started/ada-to-agent.gif" />
</Frame>

メインページから Agent モードを使う場合は、トグルで Agent モードに切り替え、作業対象とするリポジトリを選択します。

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/agent-mode.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=57d16a630c02c971df9e5a55bd77c734" alt="Agent Mode" width="2660" height="1431" data-path="images/get-started/agent-mode.png" />
</Frame>

Agent セッションを開始する際には、いくつかのオプションを設定します。具体的には、Repository の選択と Agent の選択です。

<div id="selecting-a-repository">
  #### リポジトリの選択
</div>

Devin に作業させたいリポジトリを選択します。リポジトリセレクターをクリックすると、[Devin のマシンに追加された](/ja/onboard-devin/environment) すべてのリポジトリが表示されます。

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/repo-selector.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=9595a223283d64396cf43cd1b8e245c9" alt="Repository Selector" width="2004" height="1094" data-path="images/get-started/repo-selector.png" />
</Frame>

リポジトリを選択すると、Devin は次のことができるようになります：

* コードベースにアクセスして変更を加えられる
* 正しいブランチを開始点として使用できる
* 適切なリポジトリに対してプルリクエストを作成できる

<div id="selecting-an-agent">
  #### エージェントの選択
</div>

セッションでDevinが利用するエージェント構成を選択できます。エージェントによって機能が異なったり、特定の種類のタスク向けに最適化されていたりします。

利用可能なエージェントは次のとおりです。

* **Devin** (default) — 機能開発、バグ修正、コードのリファクタリング、その他ほとんどの開発タスクに対応する汎用 AI ソフトウェアエンジニアです。
* **Fast Mode** — 迅速で、適切にスコープが定義されたタスク向けに最適化されたモードです。
* **[Dana](/ja/work-with-devin/data-analyst)** — データベースのクエリ実行、データ分析、可視化の作成に最適化されたデータアナリストエージェントです。

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/agent-selector.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=7c10af743b77164b0288ae12defeefba" alt="Agent Selector" width="2046" height="908" data-path="images/get-started/agent-selector.png" />
</Frame>

<Tip>
  どのエージェントを利用するか迷う場合は、ほとんどのタスクで問題なく使えるデフォルトのDevinエージェントを選択してください。
</Tip>

<div id="using-mentions">
  ## @メンションの利用
</div>

`@` メンションを利用すると、ファイル、リポジトリ、その他のリソースに関する特定のコンテキストを Devin に付与できます。チャット入力欄で `@` を入力すると、利用可能なメンションの一覧がドロップダウンで表示されます：

* **@Repos** - 特定のリポジトリを参照する
* **@Files** - コードベース内の特定のファイルを参照する
* **[@Macros](/ja/product-guides/knowledge)** - Knowledge エントリ用のマクロを参照する
* **[@Playbooks](/ja/product-guides/creating-playbooks)** - チームまたはコミュニティのプレイブックを参照する。これは、Devin の振る舞いをガイドするために利用できる詳細なプロンプトテンプレートです
* **[@Skills](/ja/product-guides/skills)** - リポジトリで定義されたスキル (`SKILL.md` ファイルとしてコミットされた再利用可能な手順) を参照する
* **[@Secrets](/ja/product-guides/secrets)** - Devin のセッションマネージャから特定のシークレット (例：APIキー、認証情報など) を参照する
* **@Sessions** - コンテキストとして以前の Devin セッションを参照する

<Frame>
  <img src="https://mintcdn.com/cognitionai/KaxfltcA8G4WlgV5/images/get-started/at-mention.png?fit=max&auto=format&n=KaxfltcA8G4WlgV5&q=85&s=054556b638d4418a4da99871f57ed96e" alt="At Mentions" width="1860" height="1104" data-path="images/get-started/at-mention.png" />
</Frame>

@メンションを利用することで、Devin はあなたが扱っている対象をより正確に理解し、プロンプトのあいまいさを減らすことができます。

<div id="scoping-your-first-session">
  ## 最初のセッションのスコープ設定
</div>

まずは、**成功条件が明確で**、かつ **Devin に必要な前提情報を与えられるタスク** から始めてください。チームメイトに仕事を引き継ぐときと同じ要領です。慣れてきたら、徐々により複雑なタスクにも挑戦してみましょう。ユーザーは、ちょっとしたバグ修正から、特定箇所のリファクタリング、大規模なマイグレーション、ゼロからの機能開発まで、さまざまな作業で Devin を活用しています。

<Tip>
  目安として、自分でやって3時間以内に終わるタスクであれば、Devin が対応できる可能性が高いです。より大きなプロジェクトは、目的を絞ったセッションに分割し、[managed Devins](/ja/work-with-devin/advanced-capabilities#managed-devins)を使って並行して実行してください。
</Tip>

<div id="first-time-prompt-ideas">
  ## 初めて使うときのプロンプト例
</div>

<AccordionGroup>
  <Accordion title="新しいAPIエンドポイントの追加" icon="code-pull-request">
    <PromptBlock>
      ```Adding a new API endpoint theme={null}
      新しいエンドポイント /users/stats を作成し、ユーザー数と平均登録年齢を含む JSON オブジェクトを返すようにしてください。 

      既存の PostgreSQL の users テーブルを使用してください。 

      レスポンス構造については、statsController.js 内の /orders/stats エンドポイントを参照してください。 

      新しいエンドポイントが StatsController.test.js スイートでカバーされていることを確認してください。
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="小規模なフロントエンド機能" icon="sun">
    <PromptBlock>
      ```Small frontend features theme={null}
      `UserProfileComponent` に、ユーザーのロール（admin, editor, viewer）を一覧表示するドロップダウンを追加してください。 

      スタイリングには `DropdownBase` を使用してください。 

      ロールが選択されたら、既存の API を呼び出してユーザーのロールを設定してください。 

      選択によって DB 上のユーザーのロールが更新されていることを確認してください。適切なテスト方法については Knowledge を参照してください。
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="単体テストを書く" icon="flask">
    <PromptBlock>
      ```Write unit tests theme={null}
      AuthService のメソッド login と logout に対する Jest テストを追加してください。 

      これら 2 つの関数のテストカバレッジが少なくとも 80% になるようにしてください。 

      UserService.test.js を例として使用してください。

      実装後、`npm test -- --coverage` を実行し、両方の関数についてカバレッジレポートが 80% 超であることを確認してください。 

      また、有効な認証情報と無効な認証情報の両方でテストが通ること、さらに logout によってセッションデータが正しくクリアされることも確認してください。
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="既存コードの移行・リファクタリング" icon="code-pull-request">
    <PromptBlock>
      ```Migrating or refactoring existing code theme={null}
      既存コードの移行またはリファクタリング
      logger.js を JavaScript から TypeScript に移行してください。

      すでに tsconfig.json と、検証用の LoggerTest.test.js テストスイートがあります。

      エラーなくコンパイルできることを確認し、既存の設定は変更しないでください。

      移行後は、次を実行して確認します:
      1) `tsc` を実行して型エラーがないことを確認する
      2) `npm test LoggerTest.test.js` でテストスイートを実行し、すべてのテストが通ることを確認する
      3) コードベース全体で既存の logger メソッド呼び出しが、型エラーなしで動作していることを確認する
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="API やデータベースクエリの更新" icon="database">
    <PromptBlock>
      ```Updating APIs or database queries theme={null}
      現在、pg から Sequelize への移行を行っています（https://sequelize.org/api/v6/identifiers を参照してください）。 

      UserModel のクエリを、Sequelize のメソッドを使うように更新してください。 

      このコードベースでの実装方法については、OrderModel を参照してください。

      実装後は、以下を実行して検証してください:
      1) `npm run test:integration UserModel.test.js` を実行し、すべてのインテグレーションテストが通ることを確認する
      2) 1000 ユーザーのテストデータセットに対する実行時間を確認し、クエリのパフォーマンスが低下していないことを確認する
      3) `npm run test:e2e user-flows.test.js` を実行し、すべての CRUD 操作でデータ完全性が維持されていることを検証する
      ```
    </PromptBlock>
  </Accordion>

  <Accordion title="クイック PR を作成する（このプロンプトは Playbook での使用を推奨します）" icon="code-pull-request">
    <PromptBlock>
      ```txt Quick PR theme={null}
      ## 概要
      このタスクでは、あるリポジトリに対して素早く pull request を作成します。
      これは「クイック」PR なので、コードを実行したりテストを行う必要はありません。PR を作成するだけで、テストはユーザー側が対応します。あなたの責任はコードの読み書きのみです。

      ## ユーザーから必要なもの
      - pull request を作成する対象のリポジトリ

      ## 手順
      ### 作業環境の準備
      1. 手元のマシンで対象リポジトリに移動します（分からない場合はユーザーに確認してください）。
          - main ブランチをチェックアウトし、main ブランチの名前を控えておきます。
          - pull request を作成するため、新しいブランチをチェックアウトします。ブランチ名は `devin/<timestamp>-<your-branch-name>` という形式にします。例: `devin/1700000000-fix-popup`。`git remote -v && git pull && git checkout -b devin/$(date +%s)-{branch-name}` を実行し、`{branch-name}` を作成したいブランチ名に置き換えてください。
      2. リクエスト内容・コードベースを確認し、変更内容を計画する
          - 最も関連性の高いファイルやコードセクションを確認し、関連するスニペットを特定します。
          - 変更の方針をユーザーに共有します。
      ### PR 作成作業
      3. コードを変更する
          - ユーザーから明示的に依頼されていないものは変更しないでください。
      4. PR を作成する
          - 変更をコミット・プッシュし、その旨をユーザーに伝えます。
          - PR を作成するための正確なコマンドは「アドバイス」セクションを参照してください。
          - pull request を作成し、見た目や内容に問題がないか自己レビューします。
          - すべての GitHub Actions が正常に通過していることを確認し、失敗する場合は通過するまで必要な修正を行ってください。
          - PR のリンクをユーザーに送り、変更内容を要約します。
      5. レビューからのフィードバックに対応する。変更を行うたびに、毎回 PR のリンクを再度送付する
          - 更新が必要な場合は、同じブランチにコミットを追加でプッシュしてください。新しいブランチは作成しないでください。


      ## タスク仕様
      - PR のリンクをユーザーへのメッセージに含めること
      - 作成後に PR をレビューしていること
      - PR に不要な変更が含まれていないこと
      - PR がユーザーから明示的に依頼されていない内容を一切変更していないこと
      - PR の説明には、変更内容のサマリをチェックリスト形式で含めること
      - PR の説明には、コードがテストされていないことを明記し、項目として - [ ] Test the changes を含めること
      - PR の説明には、次のフッターを含めること: "This PR was written by [Devin](https://devin.ai/) :angel:"
      - PR の説明には、ユーザーが提供したメタデータ（例: 適切な構文で記述された Linear チケットのタグ）を含めること
      - PR の説明が不正なフォーマットになっていないこと（改行が崩れる場合は --body ではなく --body-file を使用してください！）

      ## 禁止事項
      - ブラウザ経由で github.com にアクセスしようとしないでください。認証されていません。
      - ブランチに対して絶対に force push しないでください！作業内容を失わないよう、rebase ではなく merge を優先してください。
      - main ブランチへ直接 push しないでください。

      ## アドバイスとポイント
      - main ブランチ名（`main` または `master` など）を `git branch` を使って必ず再確認してください。
      - GitHub Actions で CI/CD を行っているリポジトリでは、`gh` CLI を使ってビルドログを確認できます。ビルド修正や lint 修正を求められた場合は、まず直近のビルドログを確認してください。
      - ファイルを追加・コミットする前に `git status` を確認してください。
      - コミット前に、`git diff` を使用して自身が行った変更を確認してください。
      - 既存のリポジトリを更新する場合は、`gh` CLI を使って pull request を作成してください。
      - 変更を更新するたびに PR リンクをユーザーへ送り、再レビューを依頼して、ユーザー側の利便性を高めてください。
      - ユーザーから知らせてもらったすべてのリポジトリにアクセスできるよう、すでに認可されているはずです。もしアクセスできない場合は、ユーザーにアクセス権を依頼してください。
      ```
    </PromptBlock>
  </Accordion>
</AccordionGroup>

Devin が「何を」「どのように」できるか、より詳しい例を確認したい場合は、**ユースケース**を参照してください。

<CardGroup cols={1}>
  <Card title="ユースケースを見る" icon="grid-2" href="/ja/use-cases/gallery/index">
    エンジニアリングワークフロー全体の実践的な例を探索できます。各ユースケースにはすぐに試せるプロンプトが含まれています。
  </Card>
</CardGroup>

<div id="after-your-session">
  ## セッション後
</div>

セッションが終了したら、[Session Insights](/ja/product-guides/session-insights) を開いて **Generate Analysis** をクリックしてください。そこで、何が起きたかのタイムライン、実用的なフィードバック、今後似たタスクで再利用できる改良済みプロンプトが得られます。

<div id="next-steps">
  ## 次のステップ
</div>

基本的なセッションに慣れてきたら、Devin をさらに活用するために以下のリソースを参照してください。

<CardGroup cols={2}>
  <Card title="Integrations" icon="plug" href="/ja/integrations/overview">
    Devin を GitHub、Slack、Jira などの既存ツールと連携できます。
  </Card>

  <Card title="Playbooks" icon="book" href="/ja/product-guides/creating-playbooks">
    Playbooks を使ってタスクを実装する方法を学べます。
  </Card>

  <Card title="Knowledge" icon="lightbulb" href="/ja/product-guides/knowledge">
    Devin がチームの運用方法を理解できるように、Knowledge に情報を追加します。
  </Card>
</CardGroup>
