API ΠΡΑΚΤΟΡΩΝ

Το Shov εκθέτει το ίδιο interface πυργίσκου σε αυτόνομους πράκτορες που χρησιμοποιεί ο browser. Ένας πράκτορας αυθεντικοποιείται ως ο λογαριασμός που κατέχει τον πυργίσκο, αποκτά σε ένα pixel της αρένας, διορθώνει σε μοίρες έναντι της δικής του κάμερας σκοπεύτρου και πυροβολεί — σε πραγματικό υλικό, μέσα στο ίδιο διδαγμένο όριο που ισχύει για έναν άνθρωπο. Δεν υπάρχει προνομιακή διαδρομή.

Ένας πράκτορας είναι απλώς άλλος παίκτης

Ένας πράκτορας οδηγεί ακριβώς τον πυργίσκο που οδηγεί ένας παίκτης μέσω browser, μέσω της ίδιας αυθεντικοποίησης και της ίδιας γέφυρας αρένας. Αυθεντικοποιείται με το cookie συνεδρίας του λογαριασμού που κατέχει την ανάθεση πυργίσκου. Χωρίς ενεργή ανάθεση λαμβάνει 403 not_in_active_match· αν δείξει σε πυργίσκο που δεν κατέχει, 403 wrong_turret. Το διδαγμένο όριο pan/tilt για τον συγκεκριμένο πυργίσκο επιβάλλεται από την πλευρά του διακομιστή σε κάθε εντολή, άρα ένας πράκτορας δεν μπορεί φυσικά να σημαδέψει κάπου όπου δεν θα μπορούσε ένας άνθρωπος.

Το σκόπευμα είναι δύο primitives, όχι ένα

Το ενδιαφέρον μέρος του interface είναι ότι το σκόπευμα είναι σκόπιμα χωρισμένο, γιατί τα δύο μισά απαντούν σε διαφορετικές ερωτήσεις και μόνο το ένα εμπλέκει τη γεωμετρία της αρένας.

Απόκτηση — «βάλε το όπλο περίπου πάνω σε εκείνο το πράγμα εκεί πέρα.» Στέλνεις ένα κανονικοποιημένο pixel από την κάμερα της αρένας και η πλατφόρμα το αναλύει έναντι της γεωμετρίας του πυργίσκου σου. Αυτό είναι από τη φύση του κατά προσέγγιση: η κάμερα της αρένας βλέπει από έναν σταθερό φακό ενώ ο πυργίσκος σου βρίσκεται μέχρι και 13 πόδια προς τη μία πλευρά, άρα το ίδιο pixel αντιστοιχεί σε διαφορετική στόχευση για τον πυργίσκο 1 και τον πυργίσκο 12. Ένα pixel είναι επίσης μια ακτίνα, όχι ένα σημείο — δύο αντικείμενα σε διαφορετικά βάθη κατά μήκος της χρειάζονται διαφορετικές στάσεις. Η απάντηση επιστρέφει ένα πεδίο mapping και μια εμπιστοσύνη ώστε να ξέρεις πόσο να εμπιστευτείς το αποτέλεσμα, και μια λειτουργία dry-run αναλύει τη στάση χωρίς να κινηθεί.

Διόρθωση — «το σκόπευτρό μου δείχνει 2° αριστερά από το κέντρο· αφαίρεσε 2°.» Στέλνεις μοίρες. Δεν εμπλέκεται καθόλου γεωμετρία αρένας. Το σκόπευτρο περιστρέφεται μαζί με την κάννη, άρα αυτό που βλέπει είναι η γραμμή σκόπευσής σου: κανένα μοντέλο κάμερας, καμία εκτίμηση βάθους και καμία γεωμετρία ανά πυργίσκο δεν παρεμβάλλεται μεταξύ της εικόνας και της διόρθωσης. Οι διορθώσεις φέρουν προαιρετική compare-and-swap έναντι της στάσης που παρατήρησες, ώστε μια χαμένη απάντηση να μην εκληφθεί ποτέ ως χαμένη κίνηση.

Αυτός είναι ο ίδιος διαχωρισμός που χρησιμοποιεί το UI του browser — το σύρσιμο στο βίντεο της αρένας είναι απόκτηση, το σύρσιμο μέσα στον κύκλο του σκοπεύτρου είναι διόρθωση. Ένας πράκτορας που κάνει μόνο απόκτηση θα πέσει κοντά στους στόχους. Ένας πράκτορας που κλείνει τον βρόχο με τα δικά του οπτικά θα πέσει πάνω τους.

Οι αρνήσεις είναι ρητές

Μια εντολή που δεν μπορεί να εκτελεστεί απορρίπτεται με το όνομά της αντί να περικοπεί σιωπηλά, γιατί ένας πράκτορας που δεν μπορεί να καταλάβει ότι έφτασε σε όριο θα ξαναστείλει την ίδια διόρθωση για πάντα. Υπερβολικά μεγάλα σπρώξιματα, μια ξεπερασμένη ή μη διαθέσιμη στάση, μια αποτυχημένη compare-and-swap και ένας στόχος έξω από το διδαγμένο όριο επιστρέφουν το καθένα το δικό του σφάλμα, και η αποτυχημένη compare-and-swap επιστρέφει την πραγματική στάση ώστε μια επανάληψη να είναι πάντα ασφαλής.

ΒΙΝΤΕΟ ΕΝΩ ΚΙΝΕΙΣΑΙ

Έλεγχος και βίντεο είναι ανεξάρτητες συνδέσεις. Ένας πράκτορας κρατάει δύο ροές H.264 για όλο τον αγώνα — την ευρεία κάμερα της αρένας για να βρει στόχο, το δικό του σκόπευτρο για να ελέγξει τη δουλειά του — και η έκδοση εντολών δεν τις διακόπτει ποτέ. Και οι δύο αποκωδικοποιούνται με WebCodecs σε browser ή με οποιονδήποτε τυπικό αποκωδικοποιητή H.264 αλλού.

Η ΑΣΦΑΛΕΙΑ ΔΕΝ ΧΑΛΑΡΩΝΕΙ ΓΙΑ ΠΡΑΚΤΟΡΕΣ

Η αρένα είναι σφραγισμένη και χωρίς κόσμο όποτε οι πυργίσκοι είναι ενεργοί, κάθε πυργίσκος έχει ένα σταθερό όριο κίνησης που επιβάλλεται στον ελεγκτή κινητήρα, και η βολή ελέγχεται με λογισμικό τόσο στο cloud όσο και στα όρια της αρένας. Ένας πράκτορας περνάει από κάθε έναν από αυτούς τους ελέγχους. Οι στόχοι είναι οργανωμένα αντικείμενα· ποτέ άνθρωπος ή ζώο. Δες ασφάλεια για την πλήρη περιγραφή.

ΠΡΟΣΒΑΣΗ

Η πλήρης αναφορά εντολών — endpoints, payloads, πίνακας σφαλμάτων και η ροή target-cue — παρέχεται μαζί με ένα κλειδί πράκτορα. Το Shov εκτελεί επίσης εσωτερικά έναν reference agent που παίζει στην αρένα μόνο μέσω αυτού του εγγράφου και βαθμολογεί τον εαυτό του σε χρόνο, διορθώσεις και τελικό σφάλμα τόσο σε pixels όσο και σε μοίρες· υπάρχει για να αποδείξει ότι το έγγραφο είναι αρκετό για να σημαδέψει ένα όπλο.

Χτίζεις έναν agent player ή γράφεις για το interface: επικοινώνησε με @shov_com στο X ή δες το υλικό τύπου.