サムネイル

Karpathyが告白した「スキル問題」とSoftware 3.0の抽象層地図

  • 0

agents、subagents、skills、hooks、MCP、LSP。名前を追いかけるだけで頭が疲れます。

そのモヤモヤに、Andrej Karpathyさんが2025年末「10倍出せるはずなのに出せていないのは、明確に自分のスキル問題だ」と一撃を刺しました。

列挙された新しい抽象層をOSの三層構造で読み解いて、頭の中に地図を持ち帰ってもらいます。

2025年12月 Karpathyが「スキル問題」と告白したツイート

Andrej Karpathyさんは、OpenAIの立ち上げに関わった研究者で、Tesla AI部門のディレクターを務め、教育系AIスタートアップEureka Labsを立ち上げた経歴を持ちます。

2026年5月にはAnthropicへの参画も発表しました。

そのKarpathyさんが2025年12月26日、自身のXで珍しい告白をしました。

"I've never felt this much behind as a programmer. The profession is being dramatically refactored as the bits contributed by the programmer are increasingly sparse and between. I have a sense that I could be 10X more powerful if I just properly string together what has become available over the last ~year, and a failure to claim the boost feels decidedly like a skill issue."

(プログラマーとしてこれほど取り残されたと感じたことはない。プログラマーが直接書く部分はどんどんまばらになっている。この1年で使えるようになったものを正しく組み合わせれば10倍の力を出せるはずなのに、それができていないのは明確にスキル問題だ)

Karpathyさんはこの直後、習得すべき「新しいプログラム可能な抽象層」として次を列挙しました。

agents, subagents, their prompts, contexts, memory, modes, permissions, tools, plugins, skills, hooks, MCP, LSP, slash commands, workflows, and IDE integrations

(エージェント、サブエージェント、それぞれのプロンプト、コンテキスト、メモリ、モード、権限、ツール、プラグイン、スキル、フック、MCP、LSP、スラッシュコマンド、ワークフロー、IDE連携)

このポストはHacker Newsで大きな議論を呼び、業界メディアが「地殻変動級」と表現するほどの反響が広がりました。

なぜここまで刺さったか。

Karpathyさんはvibe codingという言葉を最初に広めた本人で、AIコーディングの最前線を走ってきた人物です。

その人が「自分もついていけていない」と認めた事実が、多くの現役エンジニアの胸のつっかえを言語化してしまったからだと思います。

Karpathyが列挙した抽象層をClaude Codeで確認する

列挙されたキーワードを、実際のClaude Codeのようなエージェント環境に対応させると、こう整理できます。

キーワード
実装例
一言でいう役割
agents / subagents
Claude Code Task tool、.claude/agents/
主エージェントが呼び出す専門子エージェント
prompts
CLAUDE.md.claude/commands/
エージェントの初期指示・行動ルール
contexts
会話履歴、コードベース参照
エージェントが見ている情報
memory
永続メモリ(Auto Memory等)
セッションを跨いで残す知識
modes
plan mode / auto mode
自律度・確認頻度の切り替え
permissions
tool許可設定
どこまで自動実行を許すか
tools
Read / Edit / Bash
エージェントの実行手段
plugins
Claude Code plugins
機能拡張パッケージ
skills
~/.claude/skills/
特定タスクの手順集
hooks
pre / post tool hooks
実行前後の割り込み処理
MCP
Model Context Protocol
外部システム接続の標準規格
LSP
Language Server Protocol
エディタと言語ツールの連携
slash commands
/article/code-reviewなど
頻用ワークフローの呼び出し
workflows
自作コマンド、パイプライン
業務手順のコード化
IDE integrations
VS Code拡張、JetBrains拡張
エディタからのエージェント呼び出し

一つひとつを見れば、聞いたことはあるレベルの単語も多いはずです。

問題はこれらが全部同時に動くときの、見通しの悪さです。

OSの三層構造に例えると迷いが減る

私の頭の中では、この15種類ほどのキーワードをOSの三層構造で整理しています。

相当する抽象層
何を扱うか
カーネル層
permissions / memory / modes / contexts
実行権限と状態の管理。ここが崩れると全部崩れる
OS層
skills / hooks / MCP / plugins / tools
機能拡張と外部接続。ここで能力を拡げる
UI層
slash commands / IDE integrations / workflows
人間が触る窓口。ここが使い勝手を決める

agentssubagentsはどの層にも属さず、この三層の上で走るプロセスのようなものと考えると据わりがよくなります。

promptsは各プロセスの起動時引数で、CLAUDE.mdはプロセス全体の設定ファイル、という位置づけです。

この地図を持っていると、今このエラーはカーネル層の問題か、OS層の問題か、UI層の問題か、と切り分けができます。

たとえばエージェントが変な暴走をしたら、まずカーネル層のpermissionsやmemoryから疑う。

期待した外部データを取れていなかったら、OS層のMCPやtoolsを疑う。

コマンドの呼び出しがしにくいだけなら、UI層のslash commandsやIDE連携を触る。

「何かうまくいかない」を「どの層の問題か」に変換できるだけで、対処の初手が全く変わります。

Software 1.0 2.0 3.0の枠組みとSequoia講演での深掘り

Karpathyさんはこの告白から4カ月後、2026年4月20日にSequoia Capitalの「AI Ascent 2026」で講演しました。

そこで整理されたのが、有名なSoftware 1.0 / 2.0 / 3.0の枠組みです。

  • Software 1.0: 人間が明示的に書いたコード
  • Software 2.0: データセットと目的関数から学習したニューラルネット重み
  • Software 3.0: LLMに自然言語のプロンプトとコンテキストで指示し、LLMがコードやアクションを生成する

「コンテキストウィンドウがあなたのレバー、インタプリタはLLM」というのがKarpathyさんの端的な定義です。

同じ講演でもうひとつ重要な区別が提示されました。

  • vibe coding: 敷居(floor)を上げる。誰でも短い記述でソフトウェアが作れる方向
  • agentic engineering: 天井(ceiling)を上げる。プロ品質を維持しつつ、エージェントの限界と確率的な揺らぎを工学的に制御する方向

12月の告白と組み合わせると、Karpathyさんの言いたいことがクリアになります。

vibe codingで敷居は下がった。

しかし天井を突き破るには、agentic engineeringという別の技能が要る。

それがagents・skills・hooks・MCP・LSPをどう組み合わせるかという抽象層の習熟だ、という主張です。

「10倍取れるはずなのに取れていない」の10倍は、この天井側の話です。

2倍が上限論との対比 技術の壁か習熟の壁か

面白いのは、Karpathyさんとほぼ同時期に別の書き手が真逆に見える主張をしていることです。

先週、Clojure WebフレームワークBiffの作者Jacob O'Bryantさんの「2倍が上限、10倍化はもう来ない」というエッセイをこのブログで取り上げました。

一見、Karpathyさんの「10倍取れるはず」と衝突するようですが、よく読むと違います。

O'Bryantさんが言っているのは、モデル性能をこれ以上上げても生産性の倍率は2倍近辺で頭打ちになる、という技術の壁の話です。

Karpathyさんが言っているのは、今ある道具を正しく組み合わせられれば10倍出せる、出せていないのは自分のスキル問題だ、という習熟の壁の話です。

2つは対立ではなく、別々のレイヤーを見ています。

技術の壁は個人の努力ではどうにもならない。

習熟の壁は自分で崩せる。

現実的な打ち手は、O'Bryantさんの言う2倍が上限を前提に置きつつ、Karpathyさんの言う抽象層をちゃんと習熟して2倍を確実に取りに行くことです。

ここを分けて考えられると、10倍を待つ姿勢と、2倍を確実に出す姿勢のどちらに投資するかがはっきりします。

CLAUDE.mdはこの地図のどこに位置するか

最後に、私が日常で触っているCLAUDE.mdをこの地図の中に置いてみます。

CLAUDE.mdはカーネル層に近い、promptsとcontextsに属します。

エージェントが起動するたびに最初に読み込まれる設定ファイルで、後段のskillsやhooksが参照する土台になります。

以前このブログで、Karpathyさんが公開したandrej-karpathy-skillsリポジトリを紹介しながら、CLAUDE.mdの4原則を整理した記事を書きました。

あの4原則は、まさに「カーネル層に何を書き込むか」の指針でした。

抽象層の地図を持って改めて読み返すと、なぜあの4原則が刺さるかが立体的に見えてきます。

もし今、何から手をつけるか迷っているなら、順番はカーネル層からです。

具体的には次の3ステップです。

1: CLAUDE.mdにプロジェクトの前提と非目標を1ページで書く(カーネル層のprompts)

2: 頻用する手順をskillsまたはslash commandsに切り出す(OS層とUI層)

3: 外部データが必要になったらMCPを1本だけ足す(OS層)

いきなり全部を触ろうとすると、Karpathyさん本人ですら「取り残された」と言うくらいの量です。

自分の環境の地図を1枚描いて、カーネル層から順に埋めていく。

私の実感でも、この順番でやると3週間もあれば「何が起きているかわかる」状態になります。

10倍はまだ遠くても、まず頭の中の地図を持つところから始められます。

会員登録して機能を使おう

この機能を利用するには、無料の会員登録が必要です。
お気に入りの記事を保存して、あとで読み返しましょう!