Čo je PocketHook Agent Server?#
Agentový server premení PocketHook na plnohodnotného AI asistenta. Namiesto toho, aby ste sami písali logiku odpovedí, pripojíte LLM (Claude, GPT, Gemini atď.), ktorý spracúva správy, volá nástroje a vracia štruktúrované odpovede PocketHook — vrátane spúšťačov Skratiek.
Server beží na vašom vlastnom počítači. Vaše dáta zostávajú u vás.
Toto je východiskový bod. Server sa dodáva so základnou sadou nástrojov a je navrhnutý tak, aby ste ho rozširovali. Pridajte vlastné integrácie — e-mail, kalendáre, dokumenty, API — a prispôsobte si ho.
Funkcie#
- Viacero poskytovateľov LLM — Anthropic, OpenAI, GitHub Copilot, Google, Mistral, Groq, xAI, OpenRouter, Ollama (lokálne), LM Studio (lokálne)
- OAuth autentifikácia — GitHub Copilot a OpenAI Codex cez device code / browser flow
- Agentové nástroje — Príkazy shellu, čítanie/zápis súborov, výpis adresárov, webové vyhľadávanie, web scraping, správa vývojových serverov
- Rozdelenie framework / používateľ — Súbory frameworku (
skills/,custom-tools/,config/) zostávajú iba na čítanie. Vaše prispôsobenia žijú vdata/user/(zručnosti, vlastné nástroje, inštrukcie, typované preferencie). Aktualizácie frameworku sa inštalujú čisto, bez prepisovania vašej práce - Typované používateľské preferencie — Ukladajte hodnoty ako preferovanú mapovú aplikáciu alebo doménu tunela do
data/user/prefs.json. Odkazujte na ne v zručnostiach ako{{prefs.key}}a server ich pri načítaní nahradí - Programovacie úlohy jedným volaním — Meta-nástroj
run_code_jobvytvorí úlohu na pozadí typu prompt (spúšťanú vaším nakonfigurovaným LLM) a jedným krokom pošle používateľovi potvrdenie, čím nahrádza chybový vzor „respond + create-job" - Typované protokolové nástroje — Šesť dedikovaných nástrojov
respond_*(respond_text,respond_image,respond_buttons,respond_shortcut,respond_html,respond_sequence), plus typované nástroje úloh (create_once_job,create_cron_job) a typované nástroje pracovného priestoru (create_project,list_projects,delete_project). Schémy odmietajú zle formátované URL, syntax tlačidiel a kombinácietype/scheduleskôr, než sa dostanú na zariadenie - Typované zapisovače pre prispôsobenie —
create_user_skillacreate_custom_toolzostavujú markdown používateľskej vrstvy so správnym frontmatterom, takže loader ich vždy parsuje a agent tieto súbory nikdy nepíše ručne - Úlohy na pozadí — Jednorazové alebo opakované úlohy s cron výrazmi alebo jednoduchými intervalmi
- Dynamické zručnosti — Definujte skratky a pravidlá správania ako
.mdsúbory. Do promptu sa načíta iba kompaktný index; plný obsah sa načítava na vyžiadanie cez nástrojload_skill - Samospravované zručnosti — Agent môže vytvárať, upravovať a mazať definície zručností (zápisy vždy smerujú do používateľskej vrstvy)
- Sémantická pamäť — Vektorové vyhľadávanie s embeddingami (Ollama, LM Studio alebo OpenAI). Spomienky sú automaticky klasifikované LLM do dimenzií wing/room/hall/status
- Znalostný graf — Temporálne úložisko trojíc pre trvalé fakty s automatickou invalidáciou. Viachodnotové vzťahy koexistujú; jednohodnotové fakty sa automaticky nahrádzajú
- Metóda PARA s kaskádou ukončenia projektu — Každá spomienka je označená statusom (Projekt, Oblasť, Zdroj, Archív). Keď projekt skončí, jediné volanie
complete_projectarchivuje jeho vektory, invaliduje všetky plánovacie trojice spojené s jeho slugom a zaznamená dokončenie — jedno volanie namiesto troch - Hybridné vybavovanie — Kombinuje kľúčové slovo vyhľadávanie FTS5 s vektorovým sémantickým vyhľadávaním pomocou reciprocal rank fusion
- Dlhodobá pamäť — SQLite + fulltextové vyhľadávanie FTS5 ako záložné riešenie, keď je sémantická pamäť vypnutá
- Správa vývojových serverov s kontraktom tunela — Spúšťanie, zastavovanie a výpis vývojových serverov. Keď je požadované
tunnel: true, server to vynucuje pred štartom aj po spawne — nedostupný localhost server nikdy nebeží potichu - Automatická sanitizácia URL — Ak agent nechá v odpovedi URL
localhost, nástrojerespond_*ju prepíšu na zodpovedajúcu URL tunela, aby váš telefón vždy dostal dostupný odkaz - Vlastné nástroje — Agent môže inštalovať CLI nástroje a registrovať ich ako nové schopnosti
- Verzovanie — Automatické git verzovanie pre súbory workspace; zálohy konfigurácie pre zručnosti a oprávnenia
- Webový dashboard — Živý prehľad úloh na pozadí, prispôsobiteľný na používateľa.
/dashboarda/api/jobssú zámerne neautentifikované — obmedzte prístup na úrovni siete (Tailscale ACL, firewall, reverse proxy s basic auth) alebo nastavteDASHBOARD=false, ak ich nepotrebujete - HTTPS tunelovanie — Vstavaná podpora pre Tailscale, ngrok a Cloudflare Tunnel
- Systémová služba — Inštalácia ako trvalá služba na macOS, Linux alebo Windows
- Obmedzovanie požiadaviek — Limity na token s konfigurovateľnými prahmi
Požiadavky#
- Runtime Bun
- API kľúč alebo OAuth prihlasovacie údaje pre vášho poskytovateľa LLM
- (Voliteľne) Tailscale, ngrok alebo cloudflared pre HTTPS tunelovanie
Rýchly štart#
git clone https://github.com/pockethook-app/pockethook-agent-server.git
cd pockethook-agent-server
bun install
# Interaktívne nastavenie — výber poskytovateľa, modelu, autentifikačného tokenu, portu
bun run setup
# Spustenie servera + HTTPS tunela
bun run dev:tunnel
Sprievodca nastavením vás prevedie výberom poskytovateľa LLM, konfiguráciou autentifikácie a nastavením oprávnení nástrojov.
Po spustení skopírujte zobrazené URL do Nastavení PocketHook:
| Nastavenie PocketHook | URL |
|---|---|
| Server URL | https://your-host |
| Health Check URL | https://your-host/health |
| Polling URL | https://your-host/jobs |
Ako to funguje#
- Odošlete správu v PocketHook
- Server ju prepošle vášmu zvolenému LLM s históriou konverzácie, vybavenými spomienkami a dostupnými nástrojmi
- LLM správu spracuje — môže spúšťať príkazy shellu, čítať/zapisovať súbory, prehľadávať web, plánovať úlohy na pozadí, pamätať si fakty alebo spúšťať vývojové servery
- Odpoveď je vrátená vo formáte PocketHook (
msg+shortcut+data+url) - PocketHook zobrazí správu a vykoná prípadné Skratky na vašom zariadení
Podporovaní poskytovatelia LLM#
| Poskytovateľ | Autentifikácia | Predvolený model |
|---|---|---|
| Anthropic | API kľúč | claude-sonnet-4-20250514 |
| OpenAI | API kľúč | gpt-4.1-mini |
| OpenAI Codex | OAuth | gpt-5.1-codex-mini |
| GitHub Copilot | OAuth | claude-sonnet-4 |
| Google (Gemini) | API kľúč | gemini-2.5-flash |
| Mistral | API kľúč | mistral-medium-latest |
| Groq | API kľúč | llama-3.3-70b-versatile |
| xAI (Grok) | API kľúč | grok-3-mini-fast |
| OpenRouter | API kľúč | anthropic/claude-sonnet-4 |
| Ollama (lokálne) | Žiadny | llama3.2 |
| LM Studio (lokálne) | Žiadny | qwen3.5-4b-mlx |
Prepnite poskytovateľa kedykoľvek pomocou bun run switch. Ollama a LM Studio bežia úplne na vašom počítači — nepotrebujete API kľúč, žiadne dáta neopustia vašu sieť.
Pamäť#
Systém pamäte má tri vrstvy, z ktorých každá slúži inému účelu.
Dizajn sémantickej pamäte kombinuje myšlienky z MemPalace (architektúra pamäťového paláca, ktorá organizuje spomienky do krídel, chodieb a izieb) a metódy PARA od Tiaga Forte (Projekty, Oblasti, Zdroje, Archív) pre správu životného cyklu znalostí.
Konverzačná pamäť#
SQLite s fulltextovým vyhľadávaním FTS5. Všetky správy sú ukladané s časovými pečiatkami a identifikátormi relácií.
- Krátkodobá — Posledných
MAX_HISTORYspráv uchovávaných v pamäti na reláciu - Dlhodobá — Všetky správy uložené v SQLite, prehľadávateľné cez FTS5 párovanie kľúčových slov
- Vybavovanie za ťah — Keď je sémantická pamäť zapnutá,
MAX_RECALLurčuje, koľko relevantných spomienok sa vkladá do promptu pri každom ťahu - Relácie vypršia po
SESSION_TTL_MINUTES, ale dlhodobá pamäť pretrváva navždy
Tieto hodnoty laďte interaktívne príkazom bun run memory.
Sémantická pamäť#
Vyžaduje VECTOR_MEMORY=true a poskytovateľa embeddingov (Ollama, LM Studio alebo OpenAI).
Každá spomienka je vložená ako vektor a automaticky klasifikovaná LLM do štyroch dimenzií:
- Wing — Entita:
user,person:john,project:blog,place:london - Room — Typ:
facts,preferences,events,decisions,requests - Hall — Téma:
personal,tech,health,travel,food,work - Status — PARA klasifikácia:
project,area,resource,archive
Keď položíte otázku, extrakcia entít zameria vektorové vyhľadávanie na najrelevantnejšie krídla. Výsledky sú zlúčené s FTS5 výsledkami kľúčových slov pomocou reciprocal rank fusion — takže dostanete to najlepšie z oboch prístupov.
Znalostný graf#
Temporálne úložisko trojíc pre štruktúrované, trvalé fakty:
- Trojice:
(subjekt, predikát, objekt)s časovými pečiatkamivalid_from/valid_until - Jednohodnotové predikáty (
lives_in,partner) automaticky invalidujú starú hodnotu pri aktualizácii - Viachodnotové predikáty (
child,friend,hobby) koexistujú bez invalidácie - Fakty zo znalostného grafu sú vkladané spolu s vybavenými spomienkami do každej konverzácie
Keď agentovi poviete „Presťahoval som sa do Berlína", invaliduje starú trojicu lives_in a vytvorí novú — automaticky.
PARA životný cyklus#
Každá spomienka je označená PARA statusom:
- Projekt — Aktívna, časovo obmedzená práca
- Oblasť — Prebiehajúce zodpovednosti
- Zdroj — Referenčný materiál (zoznamy, odporúčania, návody)
- Archív — Dokončené alebo zrušené projekty
Keď je projekt dokončený, agent použije sémantickú podobnosť na archiváciu iba spomienok daného projektu, pričom zachová referenčný materiál pre budúce použitie.
Kaskáda ukončenia projektu#
Povedzte „Ruším cestu do Barcelony" a jediné volanie nástroja zariadi všetko:
- Archivuje vektory projektu (udalosti, rozhodnutia, požiadavky spojené s Barcelonou).
- Invaliduje každú aktívnu trojicu znalostného grafu, ktorej predikát zodpovedá slugu projektu (
scheduled_visit_barcelona,planning_visit_barcelona,confirmed_visit_barcelona). - Zaznamená dokončenie ako novú trojicu:
(user, "cancelled_visit_barcelona", "2026-04-15").
Porovnávanie rešpektuje hranice slov — iný projekt s názvom revisit_barcelona zostane nedotknutý. Agent už nemusí orchestrovať tri oddelené volania v správnom poradí, takže to zvládnu aj menšie modely.
Ak je VECTOR_MEMORY vypnuté alebo je poskytovateľ embeddingov nedostupný, systém sa prepne na FTS5 bez chýb.
Zručnosti#
Zručnosti sú .md súbory v adresári skills/, ktoré definujú iOS Skratky, ktoré agent môže spúšťať, a/alebo pravidlá správania. Používajú dynamické načítavanie: do systémového promptu sa vkladá iba kompaktný index (názov, popis, zoznam skratiek). Agent načítava plný obsah na vyžiadanie cez nástroj load_skill, čím udržiava nízku spotrebu tokenov pri pridávaní ďalších zručností.
Každý súbor zručnosti používa YAML frontmatter:
---
title: Notes
description: Create notes on the user's device with a title and body
shortcuts: [newNote]
target: mac
sync_app: Notes
---
### New Note
Shortcut name: `newNote`
Creates a new note on the user's device.
Data fields:
- title (string, required): Note title
- content (string, required): Note body
Polia frontmatteru#
| Pole | Povinné | Popis |
|---|---|---|
title | Áno | Čitateľný názov |
description | Áno | Jedna veta použitá v indexe zručností zobrazenom agentovi |
shortcuts | Áno | Pole názvov skratiek definovaných v súbore. Pre zručnosti obsahujúce iba pravidlá správania použite [] |
target | Nie | Kde sa skratky vykonávajú: device (predvolené, odoslané do iOS) alebo mac (spúšťa sa na serveri) |
sync_app | Nie | Aplikácia, ktorá sa po vykonaní na strane servera krátko otvorí na pozadí, aby spustila synchronizáciu iCloud (napr. Notes, Calendar, Reminders). Vynechajte alebo použite none na preskočenie |
Zručnosti môžu byť aj pravidlá správania bez skratiek (napr. „ako naplánovať rodinný výlet"). Pre tieto použite shortcuts: [].
Agent môže vytvárať a spravovať zručnosti na vyžiadanie — požiadajte ho o „vytvor zručnosť na ovládanie mojich svetiel" a napíše .md súbor za vás. Nové a upravené zručnosti vždy smerujú do vašej používateľskej vrstvy (data/user/skills/), takže aktualizácie frameworku ich nikdy neprepíšu. Pozrite sekciu Customizing your agent nižšie.
Spúšťanie skratiek na Mac serveri#
Keď má zručnosť target: mac, skratky bežia ticho na Mac serveri cez CLI shortcuts run, namiesto toho, aby boli odoslané na zariadenie iOS. Je to ideálne pre akcie, ktoré vytvárajú obsah synchronizovaný s iCloud — poznámky, pripomienky, udalosti kalendára — pretože výsledok sa automaticky synchronizuje na všetky vaše zariadenia bez toho, aby aplikácia PocketHook musela čokoľvek robiť.
Ako to funguje:
- Agent rozhodne, že sa má skratka spustiť (napr. „vytvor poznámku s dnešnými poznámkami zo stretnutia")
- Server volá
shortcuts run "názovSkratky"s údajmi odovzdanými ako JSON na stdin, v rovnakom obalovom formáte, aký používa PocketHook iOS - Ak je
sync_appnastavené, server na chvíľu otvorí túto aplikáciu na pozadí (open -gj -a Notes), aby si vynútil synchronizáciu iCloud, a po 5 sekundách ju zatvorí - Používateľ dostane potvrdzujúcu správu v chate; samotná skratka sa na zariadenie neposiela
Požiadavky:
- Server musí bežať na macOS —
shortcuts runje iba pre macOS. Na iných platformách server zaloguje varovanie a vráti sa k vykonaniu na zariadení - Skratka musí byť nainštalovaná v Shortcuts.app na Mac serveri
- Skratka by mala očakávať Dictionary ako vstup (PocketHook zabalí údaje do
{ context, timestamp, app, data })
Kedy použiť target: mac:
- Akcie synchronizované s iCloud (Notes, Reminders, Calendar) — výsledok sa aj tak dostane na každé zariadenie
- Dlhotrvajúce spracovanie, ktoré chcete držať mimo iOS zariadenia
- Akákoľvek skratka, ktorá nepotrebuje interagovať s používateľským rozhraním iPhonu
Kedy ponechať target: device (predvolené):
- Skratky, ktoré potrebujú funkcie dostupné iba na iPhone (kamera, presná poloha, lokálne automatizácie aplikácií)
- Skratky, ktoré žiadajú používateľa o interaktívny vstup
- Skratky používajúce App Intents z aplikácií dostupných iba na iOS
Úlohy na pozadí#
Požiadajte agenta o naplánovanie úloh a zvyšok zvládne sám:
- „Kontroluj počasie každé ráno o 8 a vytvor poznámku"
- „Spúšťaj tento skript každú hodinu"
- „Pripomeň mi skontrolovať e-mail za 30 minút"
Úlohy podporujú cron výrazy (0 8 * * *) a jednoduché intervaly (30m, 1h, 2d). Výsledky sú doručované do PocketHook, keď dopytuje koncový bod /jobs.
Dva typy vykonávania:
- Shell — Spustí bash príkaz, zachytí výstup. Môže spustiť Skratku po dokončení
- Prompt — Spracovaný AI agentom s plným prístupom k nástrojom, uloží kompletnú odpoveď PocketHook
Vývojové servery#
Keď agent vytvorí webový projekt v workspace (Hugo, Astro, Next.js, Flask, Go atď.), proaktívne ponúkne jeho servírovanie:
- Náhľad — Spustí lokálny vývojový server na automaticky pridelenom porte pre rýchle zobrazenie
- Verejný — Spustí server a vystaví ho cez HTTPS tunel, aby bol prístupný odkiaľkoľvek
Agent spravuje životný cyklus: spúšťanie, zastavovanie a zobrazovanie zoznamu bežiacich serverov. Všetky servery sa upracú pri zastavení hlavného servera.
Kontrakt tunela#
Keď agent spúšťa server s požiadavkou na expozíciu cez tunel, runtime to vynucuje: ak nie je nainštalovaný žiadny tunelovací nástroj (Tailscale, ngrok, cloudflared), server odmietne štart. Ak nastavenie tunela zlyhá po spawne, osirelý proces je zastavený a agent dostane explicitnú informáciu — tak, aby sa mohol vrátiť do režimu náhľadu alebo vás požiadať o inštaláciu tunela. Vrátená URL je vždy URL tunela, keď je tunelovanie zapnuté, s poznámkou, že lokálna URL je dostupná iba hostiteľovi.
Ako poistka každý nástroj respond_* post-spracováva svoju správu: akákoľvek URL localhost alebo 127.0.0.1, ktorá sa do odpovede vkradne, sa automaticky prepíše na zodpovedajúcu URL tunela, keď spravovaný server nejakú má. Keď prepísať nejde, dostanete varovanie v logoch namiesto pokazeného odkazu na telefóne.
Dashboard#
Vstavaný webový dashboard na /dashboard zobrazuje živý prehľad úloh na pozadí.
Zámerne neautentifikovaný.
/dashboardaj/api/jobssú otvorenéGETendpointy — ktokoľvek, kto sa dostane na hostiteľa, môže vypísať úlohy. Obmedzte prístup na úrovni siete (Tailscale ACL, firewall, reverse proxy s basic auth) alebo nastavteDASHBOARD=false, ak ich nepotrebujete. iOS aplikácia PocketHook tieto endpointy nepoužíva.
Je plne prispôsobiteľný:
- Rýchla úprava — Umiestnite súbor
dashboard.htmldoworkspace/dashboard/pre jednoduché úpravy - Plný projekt — Vytvorte projekt s frameworkom (Svelte, React, Vue atď.) vo
workspace/dashboard/s výstupom zostavenia dodist/
Požiadajte agenta o prispôsobenie vášho dashboardu a zvyšok zvládne sám — každý používateľ dostane unikátny, personalizovaný dashboard.
Vlastné nástroje#
Agent môže inštalovať CLI nástroje a registrovať ich ako nové schopnosti — rozširuje sa sám bez úpravy kódu servera.
Napríklad povedzte „nainštaluj Playwright a použi ho na robenie snímok obrazovky". Agent:
- Nainštaluje závislosť
- Vytvorí definíciu nástroja (jednoduchý
.mdsúbor) - Použije nový nástroj v budúcich konverzáciách
Vlastné nástroje sa načítavajú za behu — reštart nie je potrebný. Zmažte .md súbor na odstránenie nástroja.
Verzovanie#
Všetky používateľské dáta sú automaticky verzované:
- Súbory workspace — Sledované lokálnym git repozitárom vnútri
workspace/. Každý zápis vytvorí auto-commit. Požiadajte agenta o „vráť späť poslednú zmenu" alebo použitegit revert HEADručne - Konfiguračné súbory —
config/agent-instructions.md,config/personality.md,skills/apermissions.jsonsú zálohované pred každou úpravou. Až 20 verzií na súbor
Git je voliteľný — ak nie je nainštalovaný, zmeny workspace nie sú verzované. Zálohy konfigurácie fungujú vždy.
Customizing your agent#
Agentový server sa dodáva s minimálnou základňou frameworku a očakáva, že si na ňu navrstvíte vlastné prispôsobenia. Runtime udržiava obe vrstvy oddelené, aby aktualizácie frameworku nikdy neprepísali vašu prácu.
Framework vs používateľ#
pockethook-agent-server/
├── skills/ # zručnosti dodávané frameworkom (iba na čítanie)
├── custom-tools/ # rezervované pre nástroje dodávané frameworkom (iba na čítanie)
├── config/
│ ├── agent-instructions.md # inštrukcie agenta z frameworku (iba na čítanie)
│ └── personality.md # osobnosť z frameworku (iba na čítanie)
└── data/user/ # VAŠE prispôsobenia žijú tu (ignorované gitom)
├── skills/ # vaše vlastné zručnosti (prepíšu základ podľa názvu súboru)
├── custom-tools/ # vaše nainštalované vlastné nástroje
├── instructions.md # vaše doplnky k inštrukciám agenta
└── prefs.json # typované hodnoty referencované ako {{prefs.key}}
Používateľské prispôsobenia sa zapisujú cez dedikované typované nástroje (create_user_skill, create_custom_tool), takže výsledné súbory vždy zodpovedajú formátu loadera. Nástroj write tiež odmieta akúkoľvek cestu pod skills/, custom-tools/ alebo config/ a presmerováva agenta do data/user/* — takže aj priame úpravy súborov končia v používateľskej vrstve.
Poznámka k základnému adresáru
custom-tools/. Dnes obsahuje iba šablónu (_example.md), ktorú loader ignoruje — každý nástroj, ktorý agent nainštaluje, smeruje dodata/user/custom-tools/. Adresár je rezervovaný, aby budúce verzie frameworku mohli dodávať voliteľné vstavané nástroje bez prepísania vašich inštalácií. Keď k tomu dôjde, vaše súbory v používateľskej vrstve stále vyhrávajú pri kolízii názvov, takže nie je čo migrovať.
Štyri spôsoby prispôsobenia#
| Čo chcete zmeniť | Kam to patrí | Príklad |
|---|---|---|
| Skratka alebo zručnosť s pravidlom správania | data/user/skills/<nazov>.md | „Vytvor zručnosť na zaznamenávanie mojich tréningov" |
| CLI nástroj zabalený ako schopnosť agenta | data/user/custom-tools/<nazov>.md | „Nainštaluj ffmpeg a dovoľ mi ho používať na konverzie" |
| Globálne pravidlo („vždy odpovedaj po slovensky", „nikdy nepoužívaj tabuľky") | data/user/instructions.md | „Odteraz vždy zhrň články v 3 odrážkach" |
| Typovaná predvolená hodnota referencovaná zručnosťami | data/user/prefs.json | „Moje predvolené východiskové miesto trasy je Madrid" → {"routeOrigin": "Madrid"} |
Tieto súbory nikdy nemusíte písať ručne. Stačí povedať agentovi, čo chcete, a on sám vyberie správnu vrstvu.
Typované preferencie s {{prefs.*}}#
Povedzme, že píšete zručnosť plánovača trasy, ktorá potrebuje poznať váš predvolený východiskový bod. Namiesto toho, aby ste do zručnosti natvrdo napísali „Madrid", odkážte sa na preferenciu:
- **Východiskový bod**: {{prefs.routeOrigin}}, pokiaľ používateľ neurčí iný počiatok.
A uložte hodnotu do data/user/prefs.json:
{
"routeOrigin": "Madrid, Španielsko",
"preferredMapsApp": "apple",
"tunnel": { "domain": "my-host.ts.net" }
}
Server nahrádza placeholdery pri načítaní zručnosti. Vnorené kľúče ({{prefs.tunnel.domain}}) fungujú tiež. Neznáme kľúče zostanú nedotknuté, aby preklepy zostali viditeľné.
Úprava základne frameworku priamo#
Ak si server hostujete sami a chcete upraviť samotný framework, môžete editovať config/agent-instructions.md, config/personality.md, skills/ alebo custom-tools/ priamo — server vás nezastaví, keď použijete editor súborov. Ale agent do týchto ciest z konverzácie nezapíše. A aktualizácie frameworku vaše úpravy prepíšu. Pre čokoľvek, čo chcete zachovať, preferujte používateľskú vrstvu.
Rozšírenie servera#
- Vlastné nástroje — Požiadajte agenta o inštaláciu CLI nástrojov; automaticky smerujú do
data/user/custom-tools/ - Pridajte zručnosti — Požiadajte agenta o vytvorenie zručnosti; súbor smeruje do
data/user/skills/ - Zmeňte správanie — Požiadajte agenta o aplikáciu globálneho pravidla; pripojí ho do
data/user/instructions.md - Konfigurujte oprávnenia — Spustite
bun run permissionsna kontrolu, ktoré nástroje agent môže používať - Pridajte vstavané nástroje — Implementujte nové funkcie nástrojov v
src/tools.tspre hlbšie integrácie (vyžaduje fork servera)
Konfigurácia#
Všetky nastavenia sú uložené v .env (vytvorenom pomocou bun run setup). Kľúčové možnosti:
| Premenná | Predvolená | Popis |
|---|---|---|
AUTH_TOKEN | (povinný) | Zdieľaný tajný kľúč s PocketHook |
LLM_API_KEY | (povinný) | API kľúč poskytovateľa LLM |
LLM_PROVIDER | anthropic | Názov poskytovateľa |
LLM_MODEL | claude-sonnet-4-20250514 | ID modelu |
LLM_REASONING | off | Úroveň uvažovania: off, minimal, low, medium, high, xhigh. Vyššie úrovne pridávajú skryté tokeny myslenia (pomalšie + drahšie). Ignorované modelmi, ktoré to nepodporujú |
PORT | 3000 | Port servera |
AGENT_NAME | PocketHook Assistant | Zobrazovaný názov agenta |
MAX_HISTORY | 50 | Správy v krátkodobej pamäti |
MAX_RECALL | 5 | Spomienky vrátené za ťah sémantickým vybavovaním (iba keď VECTOR_MEMORY=true) |
SESSION_TTL_MINUTES | 60 | Expirácia relácie |
VECTOR_MEMORY | false | Povoliť sémantickú pamäť (vyžaduje poskytovateľa embeddingov) |
EMBEDDING_PROVIDER | ollama | Poskytovateľ embeddingov: ollama, lm-studio alebo openai |
EMBEDDING_MODEL | nomic-embed-text | Názov modelu embeddingov |
EMBEDDING_URL | (auto) | URL API embeddingov |
EMBEDDING_API_KEY | — | API kľúč pre OpenAI embeddingy |
LOG_LEVEL | info | Úroveň logovania: debug, info, warn, error |
RATE_LIMIT_MAX | 30 | Maximálny počet požiadaviek za okno |
DASHBOARD | true | Povoliť webový dashboard (cesta /dashboard) |
INSTANCE_NAME | (názov adresára projektu, s odstráneným prefixom pockethook-) | Sufix používaný pre označenie systémovej služby, adresár logov a párovanie procesu. Nastavte explicitne, keď na rovnakom počítači beží viacero kópií |
Kompletnú referenciu konfigurácie nájdete v GitHub repozitári.
Spustenie ako služba#
Nainštalujte ako trvalú službu, ktorá sa spúšťa automaticky:
bun run service install
| Platforma | Backend | Umiestnenie služby |
|---|---|---|
| macOS | launchd | ~/Library/LaunchAgents/com.pockethook.${INSTANCE_NAME}.plist |
| Linux | systemd (user) | ~/.config/systemd/user/pockethook-${INSTANCE_NAME}.service |
| Windows | NSSM | PocketHook-${PascalCase(INSTANCE_NAME)} v Správcovi služieb Windows |
INSTANCE_NAME sa štandardne odvodzuje z názvu adresára projektu s odstráneným prefixom pockethook- (napr. kópia v pockethook-agent-server/ sa stane agent-server). Nastavte ho explicitne pre spustenie viacerých kópií na rovnakom počítači bez kolízií — každá inštancia si zachováva vlastné data/ a logy.
Spravujte pomocou bun run service status, restart, stop alebo uninstall.
Bezpečnosť#
- Vyžadované HTTPS — PocketHook vyžaduje HTTPS pre všetky URL
- Bearer token autentifikácia — Zdieľaný tajný kľúč medzi aplikáciou a serverom
- Obmedzovanie požiadaviek — Limity na token bránia zneužitiu
- Izolované nástroje — Príkazy shellu a prístup k súborom obmedzený oprávneniami
- Blokované vzory — Nebezpečné príkazy (
sudo,rm -rf /) blokované v predvolenom nastavení - Hranica pracovného adresára — Agent nemôže opustiť svoj určený adresár
- Chránené citlivé súbory —
.env,.git,*.key,*.pemblokované pred prístupom agenta - Automatické verzovanie — Všetky zmeny workspace sú sledované gitom pre ľahký návrat