Upgrade to Pro — share decks privately, control downloads, hide ads and more …

若手エンジニアがAIとどう向き合っているか

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 若手エンジニアがAIとどう向き合っているか

技育CAMPアカデミア

Avatar for toumakido

toumakido

April 08, 2026

More Decks by toumakido

Other Decks in Technology

Transcript

  1. © 2015 - 2026 Nowcast Inc. ⾃⼰紹介 2 名前: 城戸透馬

    所属: Finatext (Brokerage) 入社: 2025年 趣味: サッカー その他: ピクニックにはまっています
  2. © 2015 - 2026 Nowcast Inc. ⽬次 01 エンジニアの仕事とAI 02

    AIを使って学習を加速 03 深掘り実践(Docker) 04 コーディングエージェントの実装について 05 ⼀年間を振り返り 4
  3. © 2015 - 2026 Nowcast Inc. エンジニアの仕事サイクル(5フェーズ) フェーズ 問い 内容

    ① 課題発⾒‧要件定義 What / Why 何が問題で、何を解決するためにどんなシステムが必要かを決める ② 設計‧アーキテクチャ How(構造) 要件を満たす技術‧データ構造‧システム構成を描く ③ 実装‧コーディング How(⼿段) 設計に従い、実際に動くプログラムを記述する ④ テスト‧検証 Check 要件通りに安全に動くか(バグ‧脆弱性なく)確認する ⑤ 運⽤‧保守 Run システムを安定稼働させ、変化に合わせて改修し続ける 7
  4. © 2015 - 2026 Nowcast Inc. AIコーディングエージェントの台頭 ⾃律的に動く「コード作業エージェント」 コードを 探す‧理解する

    既存コードベースを⾃律的に 調査‧把握する 実装する 要件に基づきコードを ⾃動⽣成‧修正する git操作まで コミット‧PR作成まで ⼀貫して⾃動化する 8
  5. © 2015 - 2026 Nowcast Inc. AIは全フェーズを⽀援する フェーズ AIの役割 ①

    課題発⾒‧要件定義 調査‧要約‧案出し ② 設計‧アーキテクチャ 設計の書き出し ③ 実装‧コーディング コードの書き出し ④ テスト‧検証 要約‧指摘 ⑤ 運⽤‧保守 エラー調査 9
  6. © 2015 - 2026 Nowcast Inc. 技術的な知識はより求められるようになった 誰でもAIを使って開発するようになった 元々開発していた⼈の速度も上がった ▼

    成果物が増え、技術的な知識を元に判断する回数が増えた 「判断の質」がエンジニアに求められる 11
  7. © 2015 - 2026 Nowcast Inc. ⼀⽅、判断の⾃動化は進むが…(ハーネスエンジニアリング) 全く新しいシステムではAI同⼠が相互監視し、判断の⼀部は⾃動化するシステムが作れるかもしれない ✓ AIが相互にレビューする

    ✓ 開発と並⾏してAIがコンテキスト整備ができる ✓ AIが最終成果物、ログなどを監視 AIの判断の階層‧クオリティが上がることで、⼈間の判断の回数を減らせる 12
  8. © 2015 - 2026 Nowcast Inc. AIに最終的な責任は取れない ⽣成AIがいくら優秀になろうが、変わらない2つの理由 理由 ①

    推論の不確実性 AIは確率的な推論を⾏う。同じ⼊⼒でも異なる出⼒が⽣じうる不確 実性を持ち、「確実な答え」を保証できない。 理由 ② 性能と透明性のトレードオフ ⾼性能なモデルほど内部の判断過程が不透明になる。「なぜその答 えを出したか」を説明できない。 責任を持って最終的な決断を下すのは、依然として⼈間の役割 13
  9. © 2015 - 2026 Nowcast Inc. だからこそ、深い技術知識が問われる より深く本質的な 「技術的知識」が強く求められる AIが判断を補助する時代だからこそ、浅い理解では通⽤しない

    AIを使いこなす ための⼟台は、深い技術理解にある このセッションを通じて、AIと向き合うエンジニアとしての 学び⽅‧考え⽅を⼀緒に考えていきましょう 14
  10. © 2015 - 2026 Nowcast Inc. AIが得意な5つのこと AIはエンジニアの⽇常業務の多くをカバーできる。まず何ができるかを把握しよう。 📝 ⽂書‧⾔語化

    仕様の要約‧議事録整理 要件の⾔語化 💻 コーディング コード⽣成‧リファクタリ ング テスト作成 🔍 デバッグ‧調査 バグ原因の推定 ログの読み取り補助 📚 技術調査 APIの使い⽅調査 移⾏⼿順の提案 ✅ レビュー⽀援 PRレビューの観点出し リスク指摘 16
  11. © 2015 - 2026 Nowcast Inc. スキルは不要になるが知識は必要 AIが得意な作業、スキルは「任せる」判断ができる。⼀⽅で、AIの出⼒を判断‧検証する⼒は引き続き⼈間に必要。 不要になりうる ✕

    仕様の要約‧議事録の整理 ✕ 暗記系の知識(CLIのオプション等) ✕ 定型的なコーディング 知識としては引き続き必要 ◦ 出⼒の正しさを判断する知識 ◦ 設計‧アーキテクチャの意思決定 ◦ ビジネス⽂脈の理解 17 ✕ 誰でも作れるアプリケーションの実装
  12. © 2015 - 2026 Nowcast Inc. AIの得意を学習に活かす⽅法 AIが得意なこと(この先不要になるスキル)は、そのまま学習のツールとして使える。 📖 ⽅法

    1 要約で全体像を掴む ⻑い仕様書‧ドキュメントをまず要約して もらい、全体像を把握してから詳細へ ❓ ⽅法 2 質問でピンポイントに理解する わからない箇所をクリティカルに聞ける わからない部分を質問形式で深掘りする と、集中⼒も維持しやすい ⚙ ⽅法 3 デモを作って仕組みを理解する コードベースで動きを確認することで、 概念が定着する エンジニア向き 18
  13. © 2015 - 2026 Nowcast Inc. 若⼿にとってインプットは最優先投資 アウトプットより先に、インプットの⼟台を作ることが若⼿エンジニアの成⻑を左右する。 若⼿はアウトプットよりインプットが重要 ⼟台がなければアウトプットの質は上がらない

    AIには何回でも質問できる 上司に聞くのは遠慮しちゃうけど、AIなら躊躇わなくて良い 質問形式にすると集中⼒が保ちやすい 「読む」より「対話する」⽅が理解が深まる 寄り道しまくろう 気になったことを脱線して深掘りすることが、後で繋がる知識になる 20
  14. © 2015 - 2026 Nowcast Inc. 回答を読んで終わりにしない⸺「説明できる」まで繰り返す AIの回答を読んだだけでは「わかったつもり」になりやすい。 ⼤事なのは⾃分の⾔葉で説明できるか確かめること。それをAIに投げ返すと、間違いを直してもらえるし、次の疑問が⽣まれる。 ①

    AIに質問する ② 回答を読む ③ ⾃分の⾔葉でまとめてAIに投げ返す(「こういう理解であってる?」) ④ 知らない⾔葉‧ピンとこない箇所が出てくる ⑤ 新しいスレッドでその⾔葉を聞く → ① に戻る ⽬標は「読んでわかった」ではなく「⾃分の⾔葉で説明できる」 23
  15. © 2015 - 2026 Nowcast Inc. AIに聞く:「VMの仕組みを説明してください」 「VMの仕組みを説明してください」 AI ハイパーバイザという仕組みが1台の物理コンピュータを複数の独⽴したコンピュータに⾒せかけます。

    マンションの管理⼈に例えると…… 💡 「 そもそもコンピュータの基本動作がわかっていない気がする」 「Dockerって何?」 └─ VMが出てくる → 「VMって何?」 └─ ハイパーバイザが出てくる → ピンとこない └─ 「コンピュータの基本動作から教えて」 ← 立ち返る 28
  16. © 2015 - 2026 Nowcast Inc. AIに聞く:「コンピュータの基本動作を教えてください」 AI コンピュータは、メモリ上に並んだ「命令」と「値」をCPUが順番に読み取って処理しているだけです。ブラウザもゲームも、突き詰めればメモリ 上の命令の集まりにすぎません。

    カーネル(OSの核)も同じで、メモリ上の命令の集まりです。ただしCPUには「特権モード」という仕組みがあり、カーネルの命令だけがハード ウェアを直接操作できます。⼀般のアプリがハードを触りたいときは、カーネルに「お願い」(システムコール)を出す必要があります。 💡 つまりこういうことかな? メモリ(RAM) 命令と値が並んでいる場所 CPU メモリから命令を読んで処理する ハードウェア 処理結果を受けて動く (画⾯‧ディスク‧ネットワーク) アプリ カーネル 正体 メモリ上の命令の集まり メモリ上の命令の集まり 権限 ⼀般(ハードに直接触れない) 特権(ハードを直接操作できる) ハードを使いたい場合 カーネルにシステムコールで依頼 直接操作 30
  17. © 2015 - 2026 Nowcast Inc. ⾃分の⾔葉でまとめてAIに投げ返す 理解を⾃分の⾔葉でまとめてAIに投げる。間違っていれば訂正してもらえるし、理解が深まれば次の問いが⽣まれる。 ⾃分 「つまり、アプリもカーネルもどちらもメモリ上の命令の集まりで、

    ハードウェアを直接操作できるかどうかの権限が違うだけ、ということ?」 AI 「そのとおりです。アプリがハードを使いたいときは必ずカーネルに依頼(システムコール)する必要があります」 ✓ 理解が固まった。これでVMをもう⼀度聞く準備ができた。 31
  18. © 2015 - 2026 Nowcast Inc. 同じスレッドで続けて:「この知識をもとにVMを解説してください」 「この知識をもとに、VMの仕組みを解説してください」 AI 通常は1台のマシンにカーネルが1つ常駐しています。

    VMを使うと、ホストのカーネルに加えて、ゲストOSのカーネルもメモリ上にロードされます。 ハイパーバイザというソフトウェアが、この2つのカーネルの間に⼊って命令を中継します。中継の中⾝は主に2つです。 ‧メモリ空間の割り当て:ゲストが「0番地」と思っているアドレスを、物理メモリの別の場所に対応させる ‧命令の変換:ゲストがハードウェアに直接触ろうとすると、その命令をハイパーバイザがキャッチして代わりに処理する … 💡 つまりこういうことかな? 1. VMを⽴ち上げるとハイパーバイザ、ゲストカーネル(VMのOS)がメモリ上にのる 2. ゲストカーネルの命令を ハイパーバイザがキャッチ‧変換 3. ハイパーバイザ → ホストカーネルに中継 → 物理HWを操作 33
  19. © 2015 - 2026 Nowcast Inc. 同じスレッドで続けて:「この知識をもとにDockerを解説してください」 「この知識をもとに、Dockerの仕組みを解説してください」 AI VMが「別のカーネルをメモリにまるごとロードして、ハイパーバイザが命令を中継する」仕組みだとすると、DockerはそのゲストOSのカーネルを

    丸ごと省略したものです。 コンテナ内のアプリが出すシステムコールは、ホストOSのカーネルにそのまま届きます。ただしカーネルは「この命令はコンテナAからのものだ」 と識別し、⾒せていいファイルやメモリ領域だけを返します。 この隔離を実現しているのが、Linuxカーネルの2つの機能です。 ‧Namespace:プロセス‧ネットワーク‧ファイルシステムなど、⾒える世界をコンテナごとに分離する ‧cgroups:CPU‧メモリなど、使えるリソースの上限をコンテナごとに設定する 💡 つまりこういうことかな? VM:ゲストカーネルを複製 ゲストカーネル(重い) ハイパーバイザ / ホストカーネル Docker:ホストカーネルを共有 Namespace / cgroups で隔離 ホストカーネル(1つで済む) 36
  20. © 2015 - 2026 Nowcast Inc. 疑問を連鎖させた結果⸺知識が⽊構造になった 「Dockerって何?」という問いから始め、⾃分の⾔葉でまとめては投げ返すループを繰り返した結果、コンピュータ基礎まで到達できた。 Docker ├─

    コンテナの仕組み │ ├─ VMとの比較 │ │ ├─ コンピュータの基本:メモリ上の命令を CPUが処理するだけ │ │ │ └─ カーネルも命令の一つ(特権付き) │ │ └─ VMはゲスト・ホスト2つのカーネルをハイパーバイザが中継 │ │ └─ メモリ空間の割り当て・命令の変換 │ └─ Namespace / cgroups で隔離 └─ (次の深掘り)Docker Engine / Docker Compose このハードウェアの知識は、クラウドを理解しようとした時にも使える 39
  21. © 2015 - 2026 Nowcast Inc. AIを使えば「なんとなく」から「ちゃんと理解」まで⾃⾛できる 「読んでわかった気」で終わらず、⾃分の⾔葉で説明できるまで繰り返す。AIはその確認相⼿になってくれる。 ① AIに質問する

    ② 回答を読む ③ ⾃分の⾔葉でまとめてAIに投げ返す ④ 知らない⾔葉‧ピンとこない箇所が出てくる ⑤ 新しいスレッドでその⾔葉を聞く → ① に戻る AIは答えを出すだけでなく、「理解の確認相⼿」として使うのが本質的な使い⽅ 40
  22. © 2015 - 2026 Nowcast Inc. AIモデルはAPIサーバに過ぎない Claude‧GPT‧Geminiなどのモデルは、外部APIとして独⽴している。エージェントはそのAPIを呼び出すクライアントにすぎない。 ローカルで起動するコーディングエージェント (Claude

    Code / Cursor 等) リクエスト POST /v1/messages { "system": "...", "messages": [...], "tools": [...] } Model API (独⽴したサーバ) リクエスト → ← レスポンス レスポンス { "content": "...", // テキスト返答 "type": "tool_use", // またはツール呼び出し指⽰ "name": "read_file", "input": { "path": "src/main.go" } } エージェントはモデルを「内蔵」していない。APIを「叩く」クライアントにすぎない 42
  23. © 2015 - 2026 Nowcast Inc. モデルは記憶を持たない⸺毎回「全履歴」を送る モデルAPIはステートレスだ。会話を続ける場合、エージェント側が会話履歴をすべてappendして毎回送る。 ターン1 リクエスト

    messages: [ { role: "user", content: "ファイル⼀覧を⾒せて" } ] ターン2 リクエスト(前の履歴も追 加して送る) messages: [ { role: "user", content: "ファイル⼀覧を⾒せて" }, { role: "assistant", content: "ls を実⾏します" }, { role: "tool", content: "(ls の実⾏結果)" }, { role: "user", content: "src/ の中⾝も⾒せて" } ] コンテキストウィンドウ(上限あり) システムプロンプト ツール定義 会話履歴(ターン1) 会話履歴(ターン2) 会話履歴(ターン3) 残り容量 → 減っていく… 会話が⻑くなるほどリクエストが⼤きくなる。「Claude Codeが指⽰を忘れる」のはコンテキストが溢れているから。 会話履歴はモデルではなく「エージェント側(クライアント)」が管理する 43
  24. © 2015 - 2026 Nowcast Inc. システムプロンプト:毎回送られる「前提の指⽰書」 システムプロンプトは会話の最初に設定する前提の指⽰書だ。ユーザーの発⾔より先に読み込まれ、モデルの振る舞いを規定する。 APIリクエストの構造 {

    "system": "あなたはコーディングエージェントです。以下のツールを 使って...", "messages": [ { "role": "user", "content": "このバグを直して" }, ... ], "tools": [ ... ] } カテゴリ 内容例 役割定義 「あなたはコードを読み書きできるエージェントで す」 ツール⼀覧 使えるツールの名前‧説明‧引数(後のスライドで詳 述) ⾏動指針 「コードを書く前に必ずファイルを読め」「確認なし に削除するな」 出⼒形式 「ツール呼び出しはJSON形式で」「⽇本語で回答せ よ」 Claude Code の実際のシステムプロンプトは数万⽂字に及ぶ。エージェントの「個性」や「安全ルール」はここに書かれている。 システムプロンプトは「会話の⼟台」⸺毎回のAPIコールで必ず送られる 44
  25. © 2015 - 2026 Nowcast Inc. ツールとは何か:モデルが「使える道具」の⼀覧 コーディングエージェントがファイルを読んだりコマンドを実⾏できるのは、ツール(関数)を呼び出す仕組みがあるからだ。 ツール名 役割

    使⽤例 Glob / file_search ファイルの検索(パターンマッチ) 「*.go のファイルを探して」 Read / read_file ファイルの内容を読み込む 「src/main.go を読んで」 Write / write_file ファイルを新規作成‧上書き 「新しいファイルを作成して」 Edit / edit_file ファイルの⼀部を差し替え 「この関数の実装を修正して」 Bash / run_command シェルコマンドを実⾏する 「go build でビルドして確認して」 Grep / search_in_file ファイル内のキーワード検索 「"getUser" を使っている箇所を探して」 モデルはツールを「実⾏」するのではなく、「どれを使うか指⽰」するだけ⸺実⾏はクライアント側 45
  26. © 2015 - 2026 Nowcast Inc. ツール呼び出しの流れ:「判断」と「実⾏」は分離している エージェントがファイルを読む場合、「どのツールを使うか決めるフェーズ」と「実際に実⾏するフェーズ」は分離している。 ① リクエスト送信

    ツール定義⼀覧を含む エージェントがAPIに リクエストを送る ② モデルが判断 推論フェーズ 「このタスクには read_fileが必要だ」 ③ ツール指⽰を返却 レスポンス { "tool": "read_file", "args": { "path": "..." } } ④ 実際に実⾏ クライアント側(エージェント) エージェントのコードが read_fileを本当に実⾏する ⑤ 結果を追記して再呼び出し messages に追加 実⾏結果をmessagesに appendしてAPIを再呼び出 し モデルはファイルを読んでいない⸺「読め」と指⽰するだけ。実⾏するのはエージェントのコード 46
  27. © 2015 - 2026 Nowcast Inc. ReActパターン:Reasoning + Acting のループ

    コーディングエージェントの多くは「ReActパターン」という設計に基づく。考える→⾏動する→観察する を繰り返すループだ。 Reason (考える) Act (⾏動する) Observe (観察する) ループ ループの詳細 Reason モデルが現在の状況を考え 「次に何をすべきか」を判断する Act ツールを呼び出す (read_file / bash 等) Observe ツールの実⾏結果が messagesに追加される 判定 ⽬標達成? Yes→終了 No →Reason へ このループが「⾃律的に⾒える」動きの正体。1回のAPIコールではなく何⼗回もループを回している 47
  28. © 2015 - 2026 Nowcast Inc. ループの具体例:「このバグを直して」⼀⾔で何が起きているか 「src/main.go のエラーを直して」という指⽰に対して、エージェントがReactループをどう回しているかを追ってみる。 ループ1

    Reason まずエラーの内容を確認しよう Act Bash("go build ./...") Observe コンパイルエラーのメッセージを受け 取る ループ2 Reason エラー箇所のコードを読もう Act Read("src/main.go") Observe ファイル内容を受け取る ループ3 Reason 型ミスを発⾒。Editで修正しよう Act Edit("src/main.go", old="int64", new="string") Observe 編集成功の確認 ループ4 Reason 再ビルドして確認しよう Act Bash("go build ./...") Observe エラーなし → ⽬標達成 → 終了 「1つの指⽰」に対して何⼗回もAPIを叩くのがコーディングエージェントの実態 48
  29. © 2015 - 2026 Nowcast Inc. コンテキスト管理をしよう Reactループを何⼗回も回すと、会話履歴‧ファイル内容‧ツール結果がどんどん積み上がる。 コンテキストが溢れると、コストもかかるし、精度も落ちる。 原因

    問題 対策 ⼤きなファイルを丸ごと読み込む コンテキストが⼀気に消費される 必要な⾏だけ読む(offset/limit) ⻑い会話を1セッションで続ける 古い指⽰をモデルが忘れる 定期的に /clear でリセット 無関係なツール結果が残る ノイズになって精度が落ちる 要約して圧縮する システムプロンプトが肥⼤化 コアの指⽰が埋もれる 不要なルールを削る 良いコンテキスト管理の設計観点 必要な情報だけを渡す 1会話 = 1タスク に区切る 重要な前提はシステムプロンプトへ 完了タスクはリセットして始める 49
  30. © 2015 - 2026 Nowcast Inc. 新卒1年⽬でやった仕事の幅 インフラ(AWS) ネットワークの更新 ALBの設定変更

    コンピューティングの更新 インフラロジックの追加 サーバサイド実装 20個以上のリポジトリを横断して開発 API実装‧バグ修正‧機能追加 新規プロジェクトの要件整理とかも ほぼ全てのタスクでAIを使い倒した 51
  31. © 2015 - 2026 Nowcast Inc. ⾊々なことが学べた⼀年だった やること ALBの セキュリティポリシー変更

    (設定値を1つ変えるだけ) AIで深掘り 深掘りできたこと TLSハンドシェイクの仕組み 暗号スイートとは何か TLS1.2と1.3の違い 52 AIにより開発速度が上がったので、単純に消費するタスク量が多くなり⾊々なことに触れられた。 触れたことに対して、AIを使って効率的に深堀りして理解することができた。 例えば
  32. © 2015 - 2026 Nowcast Inc. AIを使える環境はとても⼤事 制限がある企業 社内規則でAI利⽤を禁⽌‧制限 情報漏洩リスクを懸念

    規制業界(⾦融‧医療)では制約が厳しい ガバナンス上の承認フローが複雑 Finatextでは AI利⽤が推奨される⽂化がある 技術‧AIへの感度が⾼い社員が多い 最新情報がSlackで常に流れてくる ⾃分で試して学べる環境がある AIを業務で⾃由に使える環境は、意識的に選ぶ必要がある 53 AIを使いこなすことが、エンジニアとしての競争⼒になる AIを使いこなすためには、とにかく使うこと