Ugrás a fő tartalomra

Strands motor

A Libre WebUI egy olyan ügynökmotort tartalmaz, amely a nyílt forráskódú Strands Agents harness projektre épül (@strands-agents/harness 0.1.1 a @strands-agents/sdk 1.19.0 felett). A motor a Libre WebUI háttérfolyamatán belül fut, így nem kell külön démont telepíteni. Az SDK a motor első használatakor töltődik be; ha a Strands ki van kapcsolva a szerveren, az SDK soha nem töltődik be.

A motor azokat a modelleket használja, amelyeket a Libre WebUI már kiszolgál:

  • Ollama-modellek, ha az Ollama engedélyezve van
  • az aktív chat- vagy completion-szolgáltatói bővítmények modelljei

Minden modellhívás ugyanazokon az Ollama- és bővítményszolgáltatásokon megy át, amelyeket a Chat is használ. Nincs külön szolgáltatói konfiguráció és nincs külön API-kulcs. A szolgáltatói hitelesítő adatok és az Ollama kapcsolója változatlanul érvényesek.

A motort három helyen használhatja:

  • a Strands oldalon, tartós ügynök-munkamenetekhez
  • a Chatben, a modellválasztó Strands bejegyzésein keresztül
  • a Workben, a szerkesztő Motor vezérlőjének Strands lehetőségeként

Hozzáférés​

Egy rendszergazda választja ki, ki használhatja a motort, a Beállítások → Felhasználókezelés → Hozzáférés és szabályzatok → Strands motor alatt:

MódCímke a beállításbanKi használhatja a Strandst
disabledKiSenki, a rendszergazdákat is beleértve (alapértelmezett)
adminsRendszergazdákAz aktív rendszergazdák
all-usersMinden felhasználóMinden aktív fiók

A módosítás a következő kéréstől érvényes, újraindítás nélkül.

Ha a módot telepítési szinten szeretné rögzíteni, állítsa be a LIBRE_STRANDS_ACCESS változót:

LIBRE_STRANDS_ACCESS=admins # or disabled, all-users

A rögzített mód zárolja a vezérlőt a Felhasználókezelésben. A disabled, admins és all-users értéken kívül bármely más érték kikapcsolt állapotban zárolja a motort, ahelyett hogy a mentett beállításra esne vissza.

A szerver minden REST-kérésnél, a WebSocket-chatben és egy Work-futás minden modellhívásánál érvényesíti a módot. Ha a mód nem olvasható be, a hozzáférés megtagadva. A hozzáféréssel nem rendelkező fiókok nem látják a Strands oldalt, a Strands chatbejegyzéseket és a Strands Work-motort, az API pedig 403 választ ad.

A Strands oldal​

Nyissa meg a Strands oldalt az oldalsávról (/strands).

  • A munkamenetek újraindítás után is megmaradnak, fiókonként legfeljebb 200. Az első üzenet adja az új munkamenet nevét.
  • Minden munkamenethez válasszon modellt. Az Alapértelmezett modell az Ön alapértelmezett chatmodelljét használja.
  • A válaszok generálás közben folyamatosan érkeznek, a modell gondolatmenetével és minden eszközhíváshoz egy kártyával.
  • A Leállítás megszakítja a futó kört. Egy munkamenetben egyszerre egy kör fut.
  • Egy munkamenet törlése eltávolítja annak előzményeit és munkaterületét.

Chat​

Válassza a Strands lehetőséget a modellválasztóban. Az Agents csoportban jelenik meg, az Agent CLI modellek mellett:

  • A Strands (strands) a motor alapértelmezését használja, vagyis az Ön alapértelmezett chatmodelljét.
  • A Strands · modell (szolgáltató) (strands:<route>) egy modellt és annak szolgáltatóját rögzíti a beszélgetéshez.

A Chatben a Strands csak a Strands-hozzáféréstől függ. Nincs szüksége az Agent CLI modellek kapcsolójára, és akkor is megjelenik, ha az a kapcsoló ki van kapcsolva. A Chatben az ügynök ugyanazokkal a fájleszközökkel rendelkezik, mint a Strands oldalon, fiókonként egy privát munkaterületen, és a válaszai szövegként és gondolatmenetként érkeznek. Az Agents csoportról, valamint arról, hogyan használható egy Strands bejegyzés feladatmodellként a címekhez és a gondolatmenet-összefoglalókhoz, lásd: Telepített kódolóügynökök.

Work​

A Work szerkesztőjében válassza a Libre WebUI vagy a Strands lehetőséget a Motor vezérlőben, a modellt pedig külön válassza ki. Strands esetén egy Strands ügynök tervezi meg az egyes lépéseket, a Work pedig a Work sandboxban, a Work szokásos jóváhagyási szabályzata szerint hajtja végre a kért eszközöket. Az átirat, a jóváhagyások, az eszközvégrehajtás és a futási előzmények tekintetében a Work marad a hiteles forrás; a Strands ügynök a Workben nem futtat saját eszközöket.

Az alatta lévő szolgáltatói modellnek támogatnia kell az eszközhívást. A Work ezt a futás indítása előtt ellenőrzi, és elutasítja azt a modellt, amely nem jelez eszköztámogatást.

A korábbi kiadásokban dsh: modellelőtaggal mentett Work-futások Strands-futásként nyílnak meg. Arról, hogy a motor kiválasztása hogyan viszonyul a Chatből átvett modellekhez, lásd: Work: Strands motor.

Biztonsági modell​

A Strands oldalon és a Chatben az ügynök szándékosan kis eszközkészlettel rendelkezik:

  • read, write és edit a munkaterületén lévő fájlokhoz
  • a harness todos bővítménye a többlépéses munka megtervezéséhez

Nincs shellje, webes lekérése, memóriája és nincsenek skilljei, és az utasításaiba semmilyen AGENTS.md fájl nem kerül be.

Minden munkamenetnek saját privát munkaterület-könyvtára van, amelyet az ügynök /workspace néven lát. Minden elérési út feloldása a szimbolikus linkek követése után történik, és annak ezen a könyvtáron belül kell maradnia, így a munkaterületen lévő link sem érheti el a lemez többi részét. A sandbox megtagadja a parancsok végrehajtását.

ElemKorlát
Munkamenetek fiókonként200
Prompt hossza32 000 karakter
Ügynökkörök üzenetenként24
Fájlolvasás vagy -írás2 MB hívásonként
Munkamenet címe120 karakter

A körkorlátot elérő kör leáll, és ezt jelzi is. Minden kör több modellhívást is indíthat az Ön szolgáltatóihoz, ezért a hozzáférést ugyanolyan körültekintéssel adja meg, mint bármely más, szolgáltatói keretet fogyasztó modellhozzáférést.

Tárolás​

A Strands adatai a <DATA_DIR>/strands/ alatt találhatók, nem az alkalmazás adatbázisában. Minden fióknak saját könyvtára van, <DATA_DIR>/strands/users/<account-hash>/, amely a következőket tartalmazza:

  • registry.json: a fiók munkamenetlistája
  • sessions/: a Strands munkamenet-pillanatképek, amelyeket az ügynök kontextusként használ
  • transcripts/: az egyes munkamenetekhez a Strands oldalon megjelenített átirat
  • workspaces/: az egyes munkamenetek privát munkaterülete
  • chat-workspace/: a Chat-körök által használt munkaterület

Ha a munkamenetek fontosak Önnek, vegye fel a <DATA_DIR>/strands/ könyvtárat a biztonsági mentésekbe.

Használat​

A Provider Usage (/usage) az Agents szakaszában a Strands ügynökhöz rendeli a Strands-hívásokat. Lásd: Ügynökhasználat.

API​

Minden útvonalhoz Strands-hozzáféréssel rendelkező, hitelesített fiók szükséges, kivéve a /api/strands/access útvonalat, amelyhez rendszergazda kell.

MetódusÚtvonalCél
GET/api/strands/accessA hozzáférési mód lekérése, és annak jelzése, hogy a LIBRE_STRANDS_ACCESS rögzíti-e (admin)
PUT/api/strands/accessA mode beállítása disabled, admins vagy all-users értékre (admin; rögzítés esetén 409)
GET/api/strands/healthA motor elérhetősége, valamint a harness és az SDK verziója
GET/api/strands/modelsA motor által ehhez a fiókhoz használható modellek
GET/api/strands/sessionsMunkamenetek listázása
POST/api/strands/sessionsMunkamenet létrehozása (opcionális title és model)
GET/api/strands/sessions/:sessionIdEgy munkamenet, annak átirata és annak lekérése, hogy fut-e éppen kör
PATCH/api/strands/sessions/:sessionIdEgy munkamenet címének vagy modelljének módosítása
DELETE/api/strands/sessions/:sessionIdMunkamenet törlése az átiratával és munkaterületével együtt
POST/api/strands/sessions/:sessionId/messages{ "text": "..." } küldése és a kör streamelése NDJSON formátumban
POST/api/strands/sessions/:sessionId/cancelA futó kör leállítása

Az üzenetfolyam soronként egy JSON-eseményt ír: turn-start, text, reasoning, tool-start, tool-result, done (a leállás okával és a tokenhasználattal, ha a szolgáltató jelenti) és error. A kapcsolat bezárása megszakítja a kört. Ha futó kör közben küld üzenetet, a válasz 409.

Konfiguráció​

VáltozóAlapértelmezettCél
LIBRE_STRANDS_ACCESSnincs beállítva (rendszergazdai beállítás, admins)disabled, admins vagy all-users rögzítése; bármely más érték kikapcsolt állapotban zárolja a motort

Hibaelhárítás​

Lásd: A Strands motor problémái.