niki-til

Claude Agents まわりの仕様整理

Claude Code には「Agent っぽいもの」が複数あって、似た名前で別物。混同するとオーケストレーションを設計できないので、現時点(2026-05)の役割分担を一度メモしておく。

5 つのレイヤー

| レイヤー | 何 | 配置 | 起動方法 | |---|---|---|---| | Slash command | テキスト展開 + 任意ツール許可。/foo で再利用 | .claude/commands/*.md | ユーザーが / を打つ | | Skill | 「やり方」のドキュメント + 補助スクリプト。条件で自動発火 | .claude/skills/<name>/SKILL.md | description にマッチで auto-trigger、または明示呼出 | | Sub-agent | 別 context window で動く専門エージェント | .claude/agents/*.md | 親が Task / Agent ツールで spawn | | Hook | tool イベント前後に実行されるシェル | .claude/settings.json | 自動(PreToolUse / PostToolUse / Stop / SessionStart 等) | | MCP server | 外部 API を tool として exposure | .mcp.json | session start で接続 |

「Claude Agents = sub-agents」と思いがちだが、Skills と Slash command と Hook は別物。並列実行・コンテキスト隔離をしたい時は sub-agent条件で自動的に発火する手順は Skill毎回手で打つ短縮は Slash commandtool 呼び出しに対する自動処理は Hook

Sub-agent の正体

.claude/agents/<name>.md は frontmatter + 指示書。

---
name: explore
description: Fast read-only search agent. Use to locate code.
model: sonnet            # opus / sonnet / haiku / inherit
tools: Glob, Grep, Read  # 省略時は parent と同じ
---
あなたは ... をする agent です。...

ポイント:

Skill との違い

Skill は description が条件に当たると自動で「使い方説明書」を context に注入する。コードは実行しない(必要なら同梱スクリプトを Bash で呼ぶ)。Sub-agent は独立 LLM 呼び出しで実際に動く。

→ Skill は「Claude が忘れちゃいけないやり方」、Sub-agent は「重い作業を別空間に投げる手段」。

Hook の使いどころ

settings.jsonhooksPreToolUse / PostToolUse / Stop / SessionStart 等に bash を指定。

Hook は LLM ではなくシェル。確実性が要るルールはここに置く。

ECC(everything claudecode)的に統合する時の見方

この 5 つを .claude/ 配下に揃えると、1 セッションが小さい IDE のように振る舞いはじめる。

まだ詰めきれていない部分

参考・引用元

2026-05-20