Harjoitus 04: Rajaa headless-agentin työkalut¶
Tavoite
Oppia rajoittamaan headless-Clauden käyttämät työkalut tarkasti --tools -lippuin avulla.
Taustaa¶
Headless mode = claude -p (print/non-interactive). Tässä moodissa:
- Ei ole interaktiivista käyttöliittymää
- Käytetään skripteissä ja CI:ssä
- Työkalut rajoitetaan
--toolstai--allowedTools-lipun avulla
Kaksi erilaista rajoitusta:¶
| Flagi | Selitys |
|---|---|
--allowedTools |
"Ennen kyllin rajoitus" — pre-approval |
--tools |
"Rajoita käytettävät työkalut" |
Tärkeä ero
--allowedTools on tarkistus: "saaanko käyttää tätä työkalua?"
--tools on rajoite: "mitkä työkalut ovat yleensä käytettävissä?"
Tehtävä¶
Kokeile seuraavia komentoa:
- Ilman rajoituksia:
claude -p "Lue package.json tiedoston." --tools "Read,Grep" - Kokeile Bash-käyttöä (tulisi estää):
claude -p "Aja npm test komennon." --tools "Read" - Kokeile
--bare-tilaa:Mitä muuttuu?claude -p "Lue src/index.js" --bare
Ratkaisu¶
1. Oikeat työkalut¶
claude -p "Lue package.json tiedoston." --tools "Read,Grep"
✅ Tämä sallii ainoastaan Read - ja Grep-työkalut. Bash on estetty.
2. Virheellinen työkalu¶
claude -p "Aja npm test komennon." --tools "Read"
❌ Tämä antaa virheen:
❌ Työkalu Bash on estetty
Vain Read ja Grep ovat käytettävissä tässä moodissa.
3. --bare -moodi¶
claude -p "Lue src/index.js" --bare
- Ohottaa hooks, skills, plugins, MCP ja CLAUDE.md
- Hyvästä CI:n minimipinnille
- Huono normaalille kehittäjälle, koska kaikki oletetut asetukset poistuvat käytöstä
VAROITUS 11
Headless + laajat työkalut + automaattiset permission-moodit voivat muodostaa erittäin vahvan automaatioagentin. Aina testata ensin read-only-moodina, rajoittaa työkalut ja käyttää sandboxia.
Lähde: Esimerkki 04 [S1], [S18]