Skip to content

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%
  1. getting started
  2. halfway
  3. almost there
  4. complete
Lesson plan (26 lessons, 26 live)
#LessonStatusModeMinutesCoversServesExerciseAfterIssue
Project instructions
1Project instructions: AGENTS.mdcustomizing-agents/instructionslivetutorial25 estimateinstructionswrites-project-instructionsdo
2Load it, point at it, or cut itcustomizing-agents/load-point-prunelivetutorial25 estimateinstructionschooses-load-or-pointprunes-instructionsdoProject instructions: AGENTS.md#686
Agent skills
3Instruction, skill or tool?customizing-agents/skill-or-tool-or-instructionliveexplanation25 estimateskillschooses-skill-over-tooljudgeProject instructions: AGENTS.md#159
4Writing your first skillcustomizing-agents/first-skilllivetutorial25 estimateskillspackages-a-proceduredoInstruction, skill or tool?#162
5Who invokes a skill, and where it livescustomizing-agents/who-invokes-a-skillliveexplanation20 estimateskillschooses-invocation-and-scopejudgeWriting your first skill#691
6Testing a skill from a fresh sessioncustomizing-agents/testing-a-skilllivetutorial30 estimateskillspackages-a-proceduredoWriting your first skill#165
7Loading only what the skill needscustomizing-agents/progressive-disclosurelivetutorial25 estimateskillsdiscloses-progressivelydoWriting your first skill#167
8Reading a plugin before you install itcustomizing-agents/pluginsliveexplanation25 estimateskillsevaluates-a-pluginjudgeWriting your first skill#170
9Adopting a published skill setcustomizing-agents/adopting-a-skill-setlivetutorial30 estimateskillsvets-a-skill-setadopts-skills-graduallydoReading a plugin before you install it#685
Connecting tools with MCP
10Connecting an agent to your systems with MCPcustomizing-agents/mcpliveexplanation35 estimatemcpadds-a-toolweighs-tool-costhardens-a-connectiondo
11Connecting your first tool servercustomizing-agents/mcp-first-serverlivetutorial30 estimatemcpadds-a-tooldoConnecting an agent to your systems with MCP#171
12Logging from a stdio servercustomizing-agents/logging-from-a-stdio-serverlivetutorial20 estimatemcpadds-a-tooldoConnecting your first tool server#687
13Measuring what a tool server costscustomizing-agents/mcp-tool-costlivetutorial25 estimatemcpweighs-tool-costjudgeConnecting your first tool server#173
14Hardening a tool connectioncustomizing-agents/mcp-hardeninglivetutorial25 estimatemcphardens-a-connectiondoConnecting your first tool server#175
Inspecting the agent
15Seeing what the agent sendscustomizing-agents/seeing-what-the-agent-sendslivetutorial25 estimateinspecting-the-agentinspects-requestsdoMeasuring what a tool server costs#690
Hooks, permissions, settings
16Choosing a permission mode per taskcustomizing-agents/permission-modeslivetutorial25 estimatehooks-permissionssets-permissionsdoProject instructions: AGENTS.md
17Allowing the commands the task needscustomizing-agents/allowlistslivetutorial25 estimatehooks-permissionssets-permissionsdoChoosing a permission mode per task
18Where a setting comes fromcustomizing-agents/settings-layeringliveexplanation25 estimatehooks-permissionssets-permissionsjudgeAllowing the commands the task needs
19Writing a hook that blocks a mistakecustomizing-agents/first-hooklivetutorial30 estimatehooks-permissionsadds-a-hookdoAllowing the commands the task needs#184
20Keeping the project in chargecustomizing-agents/project-stays-in-chargelivetutorial35 estimatehooks-permissionskeeps-the-project-in-chargedoWriting a hook that blocks a mistake, Adopting a published skill set#689
21Delegating to a subagent with narrower permissionscustomizing-agents/subagentslivetutorial25 estimatehooks-permissionssets-permissionsdoAllowing the commands the task needs#187
Memory and session context
22Reading what the agent rememberscustomizing-agents/memory-reviewlivetutorial30 estimatememorymanages-memorydoWriting your first skill#189
23Notes that go stalecustomizing-agents/notes-that-go-staleliveexplanation20 estimatememorymanages-memoryjudgeReading what the agent remembers#688
24Directing the summary before compactioncustomizing-agents/compactionlivetutorial25 estimatememorymanages-memorydoReading what the agent remembers#192
25Handing work to the next sessioncustomizing-agents/session-handofflivetutorial30 estimatememorymanages-memorydoDirecting the summary before compaction#195
26Turning repeated work into something the agent keepscustomizing-agents/repeated-workliveexplanation30 estimatememorymanages-memoryadds-a-hookjudgeHanding work to the next session, Writing a hook that blocks a mistake#197