Loistavaa! Rakennetaan tC$mC$ Rutiinimoottori (Routine Engine). Se on
pohjimmiltaan kevyt tila-automaatti (State Machine), joka niputtaa yhteen nuo
kaikki aiemmin luomasi palaset: AT-SPI-tarkistukset, REST-alustukset ja makron
suorituksen.
Tarvitset tC$tC$ varten PyYAML ja requests -kirjastot:
pip install PyYAML requests pyatspi
TC$ssC$ on kaksi tiedostoa. EnsimmC$inen on se sC$C$ntC6tiedosto (YAML), jota
tekoC$ly tai ihminen voi helposti lukea ja muokata. Toinen on itse moottori,
joka suorittaa sen.
1. Rutiinin mC$C$rittelytiedosto: whatsapp_routine.yaml
Tallenna tC$mC$ tyC6pC$C$tteen kansioon. TC$mC$ on "sopimus" siitC$, mitC$
ympC$ristC6ltC$ vaaditaan.
routine_name: "whatsapp_send_file"
description: "LC$hettC$C$ valitun tiedoston aktiivisessa WhatsApp-chatissa."
preconditions:
required_semantic_elements:
- role: "icon" # AT-SPI:n antama rooli
name_or_desc: "Attachment" # Osa nimeC$ tai kuvausta
- role: "push button"
name_or_desc: "Dokumentti"
init_routine:
type: "rest_call"
target: "http://127.0.0.1:7713/muscle/browser/fullscreen_and_navigate"
payload:
url: "https://web.whatsapp.com"
wait_after_sec: 4.0
steps:
- action: "vision_click"
template: "/tmp/bot_templates/template_1789831006391.png"
- action: "wait"
time: 1.5
- action: "ocr_click"
text: "Dokumentti"
escalation:
policy: "frontier_and_human"
gather_context: true
prompt_template: >
"Rutiini epC$onnistui tilatarkistuksessa. Alustusmakro ajettiin,
mutta WhatsAppin liite-ikonia tai 'Dokumentti'-nappia ei lC6ytynyt
AT-SPI-puusta.
Katso oheista tilakarttaa ja pC$C$tC$ korjaava toimenpide."
2. Tila-automaatti ja Moottori: routine_engine.py
TC$mC$ koodi lukee YAML-tiedoston, hakee aktiivisen ikkunan tiedot
AT-SPI:llC$, tekee pC$C$tC6kset ja laukaisee tarvittaessa REST-kutsut tai
eskalaation.
Miten tC$mC$ toimii kC$ytC$nnC6ssC$?
Testaus: Voit ajaa tiedoston python3 routine_engine.py.
Jos selain ja WhatsApp eivC$t ole auki ja fokusoituina, AT-SPI ei lC6ydC$
sanoja "Attachment" tai "Dokumentti". TC$llC6in moottori tulostaa:
"LC$htC6tila ei tC$smC$C$" ja yrittC$C$ kutsua mesh-muscle-api:asi avaamaan
selaimen.
Sen jC$lkeen se odottaa 4 sekuntia ja tarkistaa tilanteen uudelleen. Jos
lataus kesti liian kauan, se luovuttaa ja tulostaa kauniin punaisen
eskalaatioviestin, joka on suoraan valmis lC$hetettC$vC$ksi Llama 3:lle tai
sinulle Slackiin.
Jos WhatsApp on auki valmiiksi, se hyppC$C$ alustuksen ja odottelun yli
kokonaan ja ampuu suoraan makron kC$yntiin!
TC$mC$ on tekoC$lyagenttien kognitiivisen ohjauksen "Holy Grail". Se on
turvallinen, ennustettava ja itsekorjautuva. Oletko valmis kokeilemaan sen
ajoa?