Μηχανή Strands
Το Libre WebUI ενσωματώνει μια μηχανή agent που βασίζεται στο ανοιχτού κώδικα
Strands Agents harness
(@strands-agents/harness 0.1.1 πάνω στο @strands-agents/sdk 1.19.0).
Εκτελείται μέσα στη διεργασία του backend του Libre WebUI, οπότε δεν χρειάζεται
να εγκαταστήσετε ξεχωριστό daemon. Το SDK φορτώνεται την πρώτη φορά που
χρησιμοποιείται η μηχανή· ένας server με απενεργοποιημένο το Strands δεν το
φορτώνει ποτέ.
Η μηχανή κινεί τα μοντέλα που ήδη εξυπηρετεί το Libre WebUI:
- μοντέλα Ollama, όταν το Ollama είναι ενεργοποιημένο
- μοντέλα από ενεργά πρόσθετα παρόχων για chat ή completion
Κάθε κλήση μοντέλου περνά από τις ίδιες υπηρεσίες Ollama και προσθέτων που χρησιμοποιεί το Chat. Δεν υπάρχει ξεχωριστή ρύθμιση παρόχων ούτε ξεχωριστό API key. Τα διαπιστευτήρια των παρόχων και ο διακόπτης του Ollama ισχύουν αμετάβλητα.
Μπορείτε να χρησιμοποιήσετε τη μηχανή σε τρία σημεία:
- στη σελίδα Strands, για μόνιμες συνεδρίες agent
- στο Chat, μέσω των επιλογών Strands στον επιλογέα μοντέλου
- στο Work, ως επιλογή Strands του στοιχείου ελέγχου Μηχανή στο πεδίο σύνταξης
Πρόσβαση
Ο διαχειριστής επιλέγει ποιος μπορεί να χρησιμοποιεί τη μηχανή στις Ρυθμίσεις → Διαχείριση χρηστών → Πρόσβαση και πολιτικές → Μηχανή Strands:
| Λειτουργία | Ετικέτα στη ρύθμιση | Ποιος μπορεί να χρησιμοποιεί το Strands |
|---|---|---|
disabled | Απενεργοποιημένο | Κανείς, ούτε οι διαχειριστές (προεπιλογή) |
admins | Διαχειριστές | Ενεργοί διαχειριστές |
all-users | Όλοι οι χρήστες | Κάθε ενεργός λογαριασμός |
Η αλλαγή ισχύει από το επόμενο αίτημα, χωρίς επανεκκίνηση.
Για να καθορίσετε σταθερά τη λειτουργία σε επίπεδο εγκατάστασης, ορίστε το
LIBRE_STRANDS_ACCESS:
LIBRE_STRANDS_ACCESS=admins # or disabled, all-users
Μια σταθερά ορισμένη λειτουργία κλειδώνει το στοιχείο ελέγχου στη Διαχείριση
χρηστών. Οποιαδήποτε τιμή εκτός από disabled, admins ή all-users κλειδώνει
τη μηχανή απενεργοποιημένη, αντί να επιστρέψει στην αποθηκευμένη ρύθμιση.
Ο server επιβάλλει τη λειτουργία σε κάθε αίτημα REST, στο chat μέσω WebSocket
και σε κάθε κλήση μοντέλου μιας εκτέλεσης Work. Αν η λειτουργία δεν μπορεί να
διαβαστεί, η πρόσβαση απορρίπτεται. Οι λογαριασμοί χωρίς πρόσβαση δεν βλέπουν
τη σελίδα Strands, τις επιλογές Strands στο chat ούτε τη μηχανή Strands του
Work, και το API απαντά 403.
Σελίδα Strands
Ανοίξτε το Strands από την πλαϊνή μπάρα (/strands).
- Οι συνεδρίες διατηρούνται και μετά από επανεκκινήσεις, έως 200 ανά λογαριασμό. Το πρώτο μήνυμα δίνει όνομα σε μια νέα συνεδρία.
- Επιλέξτε μοντέλο για κάθε συνεδρία. Το Προεπιλεγμένο μοντέλο χρησιμοποιεί το προεπιλεγμένο μοντέλο chat σας.
- Οι απαντήσεις εμφανίζονται σε ροή καθώς παράγονται, μαζί με τη συλλογιστική του μοντέλου και μια κάρτα για κάθε κλήση εργαλείου.
- Η Διακοπή ακυρώνει τον γύρο που εκτελείται. Μια συνεδρία εκτελεί έναν γύρο τη φορά.
- Η διαγραφή μιας συνεδρίας αφαιρεί το ιστορικό της και τον χώρο εργασίας της.
Chat
Επιλέξτε Strands στον επιλογέα μοντέλου. Εμφανίζεται στην ομάδα Πράκτορες, δίπλα στα μοντέλα Agent CLI:
- Το Strands (
strands) χρησιμοποιεί την προεπιλογή της μηχανής, δηλαδή το προεπιλεγμένο μοντέλο chat σας. - Το Strands · μοντέλο (πάροχος) (
strands:<route>) καρφιτσώνει ένα μοντέλο και τον πάροχό του για τη συνομιλία.
Το Strands στο Chat εξαρτάται μόνο από την πρόσβαση στο Strands. Δεν χρειάζεται τον διακόπτη των μοντέλων Agent CLI και εμφανίζεται ακόμη κι όταν αυτός είναι απενεργοποιημένος. Στο Chat ο agent έχει τα ίδια εργαλεία αρχείων όπως στη σελίδα Strands, σε έναν ιδιωτικό χώρο εργασίας ανά λογαριασμό, και οι απαντήσεις του φτάνουν ως κείμενο και συλλογιστική. Δείτε Εγκατεστημένοι coding agents για την ομάδα Πράκτορες και για τη χρήση μιας επιλογής Strands ως μοντέλου εργασιών για τίτλους και περιλήψεις σκέψης.
Work
Στο πεδίο σύνταξης του Work, επιλέξτε Libre WebUI ή Strands στο στοιχείο ελέγχου Μηχανή και διαλέξτε το μοντέλο χωριστά. Με το Strands, ένας agent Strands σχεδιάζει κάθε βήμα και το Work εκτελεί τα εργαλεία που ζητά στο sandbox του Work, με την κανονική πολιτική εγκρίσεων του Work. Το Work παραμένει η έγκυρη πηγή για την καταγραφή της συνομιλίας, τις εγκρίσεις, την εκτέλεση εργαλείων και το ιστορικό εκτελέσεων· ο agent Strands δεν εκτελεί δικά του εργαλεία στο Work.
Το υποκείμενο μοντέλο του παρόχου πρέπει να υποστηρίζει κλήση εργαλείων. Το Work το ελέγχει πριν ξεκινήσει μια εκτέλεση και απορρίπτει μοντέλο που δεν δηλώνει υποστήριξη εργαλείων.
Οι εκτελέσεις Work που αποθηκεύτηκαν από παλαιότερες εκδόσεις με πρόθεμα
μοντέλου dsh: ανοίγουν ως εκτελέσεις Strands. Δείτε
Work: μηχανή Strands για το πώς η επιλογή μηχανής
συνδυάζεται με μοντέλα που μεταφέρονται από το Chat.
Μοντέλο ασφάλειας
Στη σελίδα Strands και στο Chat, ο agent έχει σκόπιμα μικρό σύνολο εργαλείων:
read,writeκαιedit, για αρχεία στον χώρο εργασίας του- το πρόσθετο
todosτου harness, για τον σχεδιασμό εργασιών πολλών βημάτων
Δεν έχει shell, λήψη ιστοσελίδων, μνήμη ούτε δεξιότητες, και κανένα αρχείο
AGENTS.md δεν προστίθεται στις οδηγίες του.
Κάθε συνεδρία έχει ιδιωτικό κατάλογο χώρου εργασίας, τον οποίο ο agent βλέπει ως
/workspace. Κάθε διαδρομή επιλύεται αφού ακολουθηθούν οι συμβολικοί σύνδεσμοι
και πρέπει να μένει μέσα σε αυτόν τον κατάλογο, ώστε ένας σύνδεσμος στον χώρο
εργασίας να μην μπορεί να φτάσει στον υπόλοιπο δίσκο. Το sandbox αρνείται να
εκτελέσει εντολές.
| Στοιχείο | Όριο |
|---|---|
| Συνεδρίες ανά λογαριασμό | 200 |
| Μήκος prompt | 32.000 χαρακτήρες |
| Γύροι agent ανά μήνυμα | 24 |
| Ανάγνωση ή εγγραφή αρχείου | 2 MB ανά κλήση |
| Τίτλος συνεδρίας | 120 χαρακτήρες |
Ένας γύρος που φτάνει το όριο γύρων σταματά και το αναφέρει. Κάθε γύρος μπορεί να κάνει πολλές κλήσεις μοντέλων στους παρόχους σας, γι' αυτό παραχωρήστε πρόσβαση με την ίδια προσοχή όπως σε κάθε άλλη πρόσβαση σε μοντέλα που καταναλώνει τον προϋπολογισμό του παρόχου.
Αποθήκευση
Τα δεδομένα του Strands βρίσκονται στο <DATA_DIR>/strands/, όχι στη βάση
δεδομένων της εφαρμογής. Κάθε λογαριασμός έχει δικό του κατάλογο,
<DATA_DIR>/strands/users/<account-hash>/, που περιέχει:
registry.json: τη λίστα συνεδριών του λογαριασμούsessions/: τα στιγμιότυπα συνεδριών Strands που χρησιμοποιεί ο agent ως πλαίσιοtranscripts/: την καταγραφή κάθε συνεδρίας που εμφανίζεται στη σελίδα Strandsworkspaces/: τον ιδιωτικό χώρο εργασίας κάθε συνεδρίαςchat-workspace/: τον χώρο εργασίας που χρησιμοποιούν οι γύροι του Chat
Συμπεριλάβετε το <DATA_DIR>/strands/ στα αντίγραφα ασφαλείας, αν οι συνεδρίες
έχουν σημασία για εσάς.
Χρήση
Η σελίδα Χρήση παρόχων (/usage) αποδίδει τις κλήσεις Strands στον agent
Strands στην ενότητα Πράκτορες. Δείτε
Χρήση agents.
API
Κάθε διαδρομή απαιτεί πιστοποιημένο λογαριασμό με πρόσβαση στο Strands, εκτός
από το /api/strands/access, που απαιτεί διαχειριστή.
| Μέθοδος | Διαδρομή | Σκοπός |
|---|---|---|
GET | /api/strands/access | Διαβάζει τη λειτουργία πρόσβασης και αν την καθορίζει σταθερά το LIBRE_STRANDS_ACCESS (διαχειριστής) |
PUT | /api/strands/access | Ορίζει το mode σε disabled, admins ή all-users (διαχειριστής· 409 αν είναι σταθερά ορισμένη) |
GET | /api/strands/health | Διαθεσιμότητα της μηχανής και εκδόσεις του harness και του SDK |
GET | /api/strands/models | Μοντέλα που μπορεί να κινήσει η μηχανή για αυτόν τον λογαριασμό |
GET | /api/strands/sessions | Λίστα συνεδριών |
POST | /api/strands/sessions | Δημιουργεί συνεδρία (προαιρετικά title και model) |
GET | /api/strands/sessions/:sessionId | Διαβάζει μια συνεδρία, την καταγραφή της και αν εκτελείται γύρος |
PATCH | /api/strands/sessions/:sessionId | Αλλάζει τον τίτλο ή το μοντέλο μιας συνεδρίας |
DELETE | /api/strands/sessions/:sessionId | Διαγράφει μια συνεδρία μαζί με την καταγραφή και τον χώρο εργασίας της |
POST | /api/strands/sessions/:sessionId/messages | Στέλνει { "text": "..." } και μεταδίδει τον γύρο σε ροή ως NDJSON |
POST | /api/strands/sessions/:sessionId/cancel | Σταματά τον γύρο που εκτελείται |
Η ροή μηνυμάτων γράφει ένα συμβάν JSON ανά γραμμή: turn-start, text,
reasoning, tool-start, tool-result, done (με τον λόγο διακοπής και τη
χρήση tokens, όταν την αναφέρει ο πάροχος) και error. Το κλείσιμο της
σύνδεσης ακυρώνει τον γύρο. Η αποστολή μηνύματος ενώ εκτελείται γύρος επιστρέφει
409.
Διαμόρφωση
| Μεταβλητή | Προεπιλογή | Σκοπός |
|---|---|---|
LIBRE_STRANDS_ACCESS | δεν ορίζεται (ρύθμιση διαχειριστή, admins) | Καθορίζει σταθερά disabled, admins ή all-users· οποιαδήποτε άλλη τιμή κλειδώνει τη μηχανή απενεργοποιημένη |
Αντιμετώπιση προβλημάτων
Δείτε Προβλήματα μηχανής Strands.