Customizing agents
This course is about the layer between you and the agent. Instructions, skills, tools and permissions turn a general-purpose coding agent into one that works well in your project.
0%
- getting started
- halfway
- almost there
- complete
tutorialProject instructions: AGENTS.mdtutorialWriting your first skilltutorialConnecting your first tool servertutorialHardening a tool connectiontutorialChoosing a permission mode per tasktutorialAllowing the commands the task needstutorialDelegating to a subagent with narrower permissionstutorialReading what the agent rememberstutorialDirecting the summary before compactiontutorialHanding work to the next sessionexplanationTurning repeated work into something the agent keeps
Lesson plan (19 lessons, 19 live)
| # | Lesson | Status | Mode | Minutes | Covers | Serves | Exercise | After | Issue |
|---|---|---|---|---|---|---|---|---|---|
| Project instructions | |||||||||
| 1 | Project instructions: AGENTS.mdcustomizing-agents/instructions | live | tutorial | 25 estimate | instructions | writes-project-instructions | do | ||
| Agent skills | |||||||||
| 2 | Instruction, skill or tool?customizing-agents/skill-or-tool-or-instruction | live | explanation | 25 estimate | skills | chooses-skill-over-tool | judge | Project instructions: AGENTS.md | #159 |
| 3 | Writing your first skillcustomizing-agents/first-skill | live | tutorial | 25 estimate | skills | packages-a-procedure | do | Instruction, skill or tool? | #162 |
| 4 | Testing a skill from a fresh sessioncustomizing-agents/testing-a-skill | live | tutorial | 30 estimate | skills | packages-a-procedure | do | Writing your first skill | #165 |
| 5 | Loading only what the skill needscustomizing-agents/progressive-disclosure | live | tutorial | 25 estimate | skills | discloses-progressively | do | Writing your first skill | #167 |
| 6 | Reading a plugin before you install itcustomizing-agents/plugins | live | explanation | 25 estimate | skills | evaluates-a-plugin | judge | Writing your first skill | #170 |
| Connecting tools with MCP | |||||||||
| 7 | Connecting an agent to your systems with MCPcustomizing-agents/mcp | live | explanation | 35 estimate | mcp | adds-a-toolweighs-tool-costhardens-a-connection | do | ||
| 8 | Connecting your first tool servercustomizing-agents/mcp-first-server | live | tutorial | 30 estimate | mcp | adds-a-tool | do | Connecting an agent to your systems with MCP | #171 |
| 9 | Measuring what a tool server costscustomizing-agents/mcp-tool-cost | live | tutorial | 25 estimate | mcp | weighs-tool-cost | judge | Connecting your first tool server | #173 |
| 10 | Hardening a tool connectioncustomizing-agents/mcp-hardening | live | tutorial | 25 estimate | mcp | hardens-a-connection | do | Connecting your first tool server | #175 |
| Hooks, permissions, settings | |||||||||
| 11 | Choosing a permission mode per taskcustomizing-agents/permission-modes | live | tutorial | 25 estimate | hooks-permissions | sets-permissions | do | Project instructions: AGENTS.md | |
| 12 | Allowing the commands the task needscustomizing-agents/allowlists | live | tutorial | 25 estimate | hooks-permissions | sets-permissions | do | Choosing a permission mode per task | |
| 13 | Where a setting comes fromcustomizing-agents/settings-layering | live | explanation | 25 estimate | hooks-permissions | sets-permissions | judge | Allowing the commands the task needs | |
| 14 | Writing a hook that blocks a mistakecustomizing-agents/first-hook | live | tutorial | 30 estimate | hooks-permissions | adds-a-hook | do | Allowing the commands the task needs | #184 |
| 15 | Delegating to a subagent with narrower permissionscustomizing-agents/subagents | live | tutorial | 25 estimate | hooks-permissions | sets-permissions | do | Allowing the commands the task needs | #187 |
| Memory and session context | |||||||||
| 16 | Reading what the agent rememberscustomizing-agents/memory-review | live | tutorial | 30 estimate | memory | manages-memory | do | Writing your first skill | #189 |
| 17 | Directing the summary before compactioncustomizing-agents/compaction | live | tutorial | 25 estimate | memory | manages-memory | do | Reading what the agent remembers | #192 |
| 18 | Handing work to the next sessioncustomizing-agents/session-handoff | live | tutorial | 30 estimate | memory | manages-memory | do | Directing the summary before compaction | #195 |
| 19 | Turning repeated work into something the agent keepscustomizing-agents/repeated-work | live | explanation | 30 estimate | memory | manages-memoryadds-a-hook | judge | Handing work to the next session, Writing a hook that blocks a mistake | #197 |