Č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)
- Rýchly model — Spustite odľahčený sekundárny model pre interné pomocné úlohy (klasifikácia pamäte, extrakcia entít) popri vašom hlavnom chatovacom modeli — plná kontrola nad nákladmi a latenciou
- Rozšírenie Safari — Spárujte notarizované rozšírenie Safari pre macOS, aby agent mohol otvárať karty, kontrolovať stránky, klikať, vypĺňať formuláre a snímať obrazovku vo vašej skutočnej relácii prehliadača, na úrovni oprávnení, ktorú si zvolíte
- 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 — vrátane toho, či nainštalovať rozšírenie Safari (voliteľné, dá sa preskočiť, iba macOS).
Spustite bun run help kedykoľvek pre úplný zoznam príkazov, alebo bun run config na rýchly prehľad vašej aktuálnej konfigurácie (citlivé údaje sú skryté).
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í |
LLM_QUICK_PROVIDER / LLM_QUICK_MODEL | rovnaké ako hlavný | Poskytovateľ/model pre rýchly model (interné pomocné úlohy) |
SAFARI_PERMISSION_LEVEL | confirm | Politika klikania rozšírenia Safari: confirm, autonomous alebo readonly |
SAFARI_CAPTURES_BASE_URL | iba lokálne | Verejná základná URL na poskytovanie zachytených snímok stránok Safari aplikácii |
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