Μετάβαση στο κύριο περιεχόμενο

Μηχανή 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
Μήκος prompt32.000 χαρακτήρες
Γύροι agent ανά μήνυμα24
Ανάγνωση ή εγγραφή αρχείου2 MB ανά κλήση
Τίτλος συνεδρίας120 χαρακτήρες

Ένας γύρος που φτάνει το όριο γύρων σταματά και το αναφέρει. Κάθε γύρος μπορεί να κάνει πολλές κλήσεις μοντέλων στους παρόχους σας, γι' αυτό παραχωρήστε πρόσβαση με την ίδια προσοχή όπως σε κάθε άλλη πρόσβαση σε μοντέλα που καταναλώνει τον προϋπολογισμό του παρόχου.

Αποθήκευση​

Τα δεδομένα του Strands βρίσκονται στο <DATA_DIR>/strands/, όχι στη βάση δεδομένων της εφαρμογής. Κάθε λογαριασμός έχει δικό του κατάλογο, <DATA_DIR>/strands/users/<account-hash>/, που περιέχει:

  • registry.json: τη λίστα συνεδριών του λογαριασμού
  • sessions/: τα στιγμιότυπα συνεδριών Strands που χρησιμοποιεί ο agent ως πλαίσιο
  • transcripts/: την καταγραφή κάθε συνεδρίας που εμφανίζεται στη σελίδα Strands
  • workspaces/: τον ιδιωτικό χώρο εργασίας κάθε συνεδρίας
  • 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.