Ajastettu agentti tuntuu ensimmäisen kerran oikealta organisaatiolta. Se tekee pienen työn silloin, kun et itse istu koneella. Siksi sitä ei pidä rakentaa kiireessä. Ensin tehtävä ajetaan käsin, sitten sille annetaan rytmi, sitten opetellaan pysäytys.
Tarkat komennot ja tekninen selostus ovat moduulin lopussa.
Aloita tylsästä tehtävästä
Ensimmäinen ajastettu tehtävä ei kutsu kielimallia. Se kirjoittaa aamuraportin rungon tiedostoon. Tämä kuulostaa liian helpolta, mutta se opettaa tärkeimmän asian: käynnistyikö tehtävä oikeaan aikaan ja näkyykö siitä jälki?
Kun tylsä runko toimii, siihen voi myöhemmin lisätä agentin tekemän priorisoinnin. Jos aloitat suoraan raskaasta ajosta, et tiedä onko ongelma ajastuksessa, mallipolussa, tiedostoissa vai ohjeessa.
Rytmi ennen älykkyyttä
Hyvä agenttiorganisaatio ei metelöi koko ajan. Se tekee työn oikeaan aikaan. Aamulla voi syntyä päivän lista. Iltapäivällä voi syntyä kooste. Sunnuntaina voi syntyä viikkosynteesi. TAYLOR voi katsoa kulut kerran viikossa. WENDY voi nostaa muistutukset aamulla. CASE voi tarkistaa riskit ennen käyttöönottoa.
Kahvilaketjun tilaushelppari ei tarvitse uutta ajoa minuutin välein. Kotitalouden viikko-ostoslistaaja ei tarvitse yöherätystä. Golf-seuran kilpailukalenteri-apulainen voi riittää kerran päivässä tapahtumakauden aikana.
Mitä ajastettu agentti ei tee
Ajastettu agentti ei saa alussa:
- lähettää viestejä ihmisille
- muuttaa alkuperäisiä lähteitä
- lukea uusia kansioita omin päin
- vaihtaa mallipolkua
- jatkaa loputtomasti virheen jälkeen
- tehdä päätöstä, joka kuuluu ihmiselle
Se saa valmistella. Se saa kirjata. Se saa pyytää huomiota myöhemmin, kun hälytyskanava on rajattu. Mutta se ei saa muuttua yövuoroksi, joka improvisoi.
Virheiden pitää näkyä
Automaatio on turvallinen vasta, kun myös virhe näkyy. Jos tehtävä epäonnistuu hiljaa, se on huonompi kuin käsin tehty työ. Siksi jokaisella toistuvalla tehtävällä pitää olla kolme jälkeä:
- toimintaloki, jossa näkyy että ajo alkoi
- tulostiedosto tai muistio, jossa näkyy mitä syntyi
- virheloki, jossa näkyy miksi ajo pysähtyi
CASE pitäisi tästä kohdasta. Se on tylsä. Se on myös se kohta, joka säästää päivän, kun jokin ei käynnisty.
Lukko estää päällekkäisyyden
Jos tehtävä kestää pidempään kuin odotit, seuraava ajo ei saa aloittaa samaa työtä päälle. Yksi rauhallinen ajo on parempi kuin kolme päällekkäistä. Siksi pidempiin tehtäviin lisätään lukko: jos edellinen ajo on kesken, uusi ajo poistuu siististi ja kirjaa asian.
Tämä on erityisen tärkeää, kun myöhemmin lisäät kielimallin. Malli voi hidastua, verkko voi pätkiä ja lähde voi kasvaa. Lukko tekee virheestä näkyvän eikä kaoottista.
Ensimmäinen viikko ajastusten kanssa
Pidä ensimmäinen viikko yksinkertaisena. Tarkista joka päivä:
- syntyikö aamuraportti
- syntyikö iltakooste
- näkyykö lokissa onnistuminen
- näkyykö virhelokissa jotain
- oliko tehtävä aidosti hyödyllinen
Jos tehtävä ei ole hyödyllinen käsin luettuna, se ei muutu hyödylliseksi ajastettuna. Ajastus vahvistaa hyvän työnkulun. Se ei pelasta huonoa.
Pysäytysharjoitus
Tee kerran pysäytysharjoitus. Käynnistä ajastus, varmista että se näkyy, pura se ja varmista ettei se enää näy. Tämä ei ole vain tekninen temppu. Se rakentaa luottamusta. Automaatio, jonka osaat pysäyttää, ei tunnu hallitsemattomalta.
Kirjoita muistiin mikä tehtävä ajetaan, mihin se kirjoittaa, mistä näet onnistumisen, mistä näet virheen, miten pysäytät sen ja milloin ihminen tarkistaa tuloksen.
Tarkat komennot ja vaiheet (valinnainen)
Luo aamuraportti:
cat > ~/Agentit/bin/aamuraportti.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
today="$(date '+%Y-%m-%d')"
out="$HOME/Agentit/wiki/$today-aamuraportti.md"
{
echo "# Aamuraportti $today"
echo
echo "## Kolme tärkeintä"
echo "- "
echo
echo "## Odottaa ihmistä"
echo "- "
} > "$out"
printf '%s aamuraportti kirjoitettu %s\n' "$(date '+%Y-%m-%d %H:%M')" "$out" >> "$HOME/Agentit/logs/activity.log"
EOF
chmod 700 ~/Agentit/bin/aamuraportti.sh
~/Agentit/bin/aamuraportti.sh
Luo macOS:n launchd-plist:
nano ~/Library/LaunchAgents/com.arkiopas.aamuraportti.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.arkiopas.aamuraportti</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-lc</string>
<string>/bin/bash "$HOME/Agentit/bin/aamuraportti.sh"</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>7</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/Users/REPLACE_ME/Agentit/logs/aamuraportti.out.log</string>
<key>StandardErrorPath</key>
<string>/Users/REPLACE_ME/Agentit/logs/aamuraportti.err.log</string>
</dict>
</plist>
Vaihda REPLACE_ME omaksi käyttäjänimeksi. Tarkista ja lataa:
plutil -lint ~/Library/LaunchAgents/com.arkiopas.aamuraportti.plist
launchctl load ~/Library/LaunchAgents/com.arkiopas.aamuraportti.plist
launchctl list | grep arkiopas
Pura ja lataa uudelleen muutosten jälkeen:
launchctl unload ~/Library/LaunchAgents/com.arkiopas.aamuraportti.plist
launchctl load ~/Library/LaunchAgents/com.arkiopas.aamuraportti.plist
Lisää malliajo vasta, kun perusajo toimii:
today="$(date '+%Y-%m-%d')"
report="$HOME/Agentit/wiki/$today-aamuraportti.md"
summary="$HOME/Agentit/wiki/$today-prioriteetit.md"
codex exec "Lue tämä aamuraportin alku ja ehdota kolme prioriteettia: $(sed -n '1,80p' "$report")" > "$summary"
printf '\nPrioriteetit: %s\n' "$summary" >> "$report"
Cron-vaihtoehto Linuxiin tai kokeneelle käyttäjälle:
crontab -e
0 7 * * * /bin/bash /Users/oma-kayttaja/Agentit/bin/aamuraportti.sh >> /Users/oma-kayttaja/Agentit/logs/aamuraportti.out.log 2>> /Users/oma-kayttaja/Agentit/logs/aamuraportti.err.log
Lukko pitkille ajoille:
lock="$HOME/Agentit/tmp/aamuraportti.lock"
if ! mkdir "$lock" 2>/dev/null; then
printf '%s ajo jo käynnissä\n' "$(date '+%Y-%m-%d %H:%M')" >> "$HOME/Agentit/logs/activity.log"
exit 0
fi
trap 'rmdir "$lock"' EXIT
Tiivistelmä
- Ajastus aloitetaan tylsästä tehtävästä, ei raskaasta malliajosta.
- Rytmi, lokit ja pysäytys ovat tärkeämpiä kuin näyttävyys.
- Virheen pitää näkyä erillisessä virhelokissa.
- Pidempään ajoon lisätään lukko.
- Ajastus vahvistaa hyvän työnkulun, se ei tee huonosta hyvää.