Flerkanalsöversikt
Triggerfish ansluter till dina befintliga meddelandeplattformar. Du pratar med din agent var du redan kommunicerar — terminal, Telegram, Slack, Discord, WhatsApp, en webbwidget eller e-post. Varje kanal har sin egen klassificeringsnivå, ägarbeknäftelsekontroller och policyhantering.
Hur kanaler fungerar
Varje kanaladapter implementerar samma gränssnitt: connect, disconnect, send, onMessage och status. Kanalroutern sitter ovanför alla adaptrar och hanterar meddelandedispatch, klassificeringskontroller och logik för återförsök.
När ett meddelande anländer på vilken kanal som helst:
- Identifierar routern avsändaren (ägare eller extern) med identitetskontroller på kodsnivå — inte LLM-tolkning
- Taggar meddelandet med kanalens klassificeringsnivå
- Skickar det vidare till policymotorn för hantering
- Dirigerar agentens svar tillbaka via samma kanal
Kanalklassificering
Varje kanal har en standardklassificeringsnivå som avgör vilken data som kan flöda genom den. Policymotorn tillämpar nedskrivningsregeln: data vid en given klassificeringsnivå kan aldrig flöda till en kanal med lägre klassificering.
| Kanal | Standardklassificering | Ägaridentifiering |
|---|---|---|
| CLI | INTERNAL | Alltid ägare (terminalanvändare) |
| Telegram | INTERNAL | Telegram-användar-ID-matchning |
| Signal | PUBLIC | Aldrig ägare (adaptern ÄR din telefon) |
| Slack | PUBLIC | Slack-användar-ID via OAuth |
| Discord | PUBLIC | Discord-användar-ID-matchning |
PUBLIC | Telefonnummermatchning | |
| WebChat | PUBLIC | Aldrig ägare (besökare) |
| E-post | CONFIDENTIAL | E-postadressmatchning |
Fullt konfigurerbart Alla klassificeringar är konfigurerbara i din triggerfish.yaml. Du kan ange vilken kanal som helst till vilken klassificeringsnivå som helst baserat på dina säkerhetskrav.
yaml
channels:
telegram:
classification: CONFIDENTIAL
slack:
classification: INTERNALEffektiv klassificering
Den effektiva klassificeringen för ett meddelande är minimumet av kanalklassificeringen och mottagarklassificeringen:
| Kanalnivå | Mottagarnivå | Effektiv nivå |
|---|---|---|
| INTERNAL | INTERNAL | INTERNAL |
| INTERNAL | EXTERNAL | PUBLIC |
| CONFIDENTIAL | INTERNAL | INTERNAL |
| CONFIDENTIAL | EXTERNAL | PUBLIC |
Det innebär att även om en kanal är klassificerad som CONFIDENTIAL behandlas meddelanden till externa mottagare på den kanalen som PUBLIC.
Kanaltillstånd
Kanaler rör sig genom definierade tillstånd:
- UNTRUSTED — Nya eller okända kanaler börjar här. Ingen data flödar in eller ut. Kanalen är fullständigt isolerad tills du klassificerar den.
- CLASSIFIED — Kanalen har tilldelats en klassificeringsnivå och är aktiv. Meddelanden flödar enligt policyregler.
- BLOCKED — Kanalen har uttryckligen inaktiverats. Inga meddelanden bearbetas.
UNTRUSTED-kanaler En UNTRUSTED-kanal kan inte ta emot data från agenten och kan inte skicka data till agentens kontext. Det här är en hård säkerhetsgräns, inte en rekommendation. :::
Kanalrouter
Kanalroutern hanterar alla registrerade adaptrar och tillhandahåller:
- Adapterregistrering — Registrera och avregistrera kanaladaptrar efter kanal-ID
- Meddelandedispatch — Dirigera utgående meddelanden till rätt adapter
- Återförsök med exponentiell backoff — Misslyckade sändningar återförsöks upp till 3 gånger med ökande fördröjningar (1s, 2s, 4s)
- Bulkoperationer —
connectAll()ochdisconnectAll()för livscykelhantering
yaml
# Routerns återförsöksbeteende är konfigurerbart
router:
maxRetries: 3
baseDelay: 1000 # millisekunderRipple: Skrivning och närvaro
Triggerfish vidarebefordrar skrivindiktatorer och närvaro över kanaler som stöder dem. Det här kallas Ripple.
| Kanal | Skrivindiktatorer | Läskvittenser |
|---|---|---|
| Telegram | Skicka och ta emot | Ja |
| Signal | Skicka och ta emot | — |
| Slack | Bara skicka | — |
| Discord | Bara skicka | — |
| Skicka och ta emot | Ja | |
| WebChat | Skicka och ta emot | Ja |
Agentnärvarotillstånd: idle, online, away, busy, processing, speaking, error.
Meddelandechunkning
Plattformar har meddelandelängdsgränser. Triggerfish delar automatiskt upp långa svar för att passa inom varje plattforms begränsningar och delar vid radbrytningar eller mellanslag för läsbarhet:
| Kanal | Max meddelandelängd |
|---|---|
| Telegram | 4 096 tecken |
| Signal | 4 000 tecken |
| Discord | 2 000 tecken |
| Slack | 40 000 tecken |
| 4 096 tecken | |
| WebChat | Obegränsat |
Nästa steg
Ställ in de kanaler du använder:
- CLI — Alltid tillgänglig, ingen installation behövs
- Telegram — Skapa en bot via @BotFather
- Signal — Länka via signal-cli daemon
- Slack — Skapa en Slack-app med Socket Mode
- Discord — Skapa en Discord-botapplikation
- WhatsApp — Anslut via WhatsApp Business Cloud API
- WebChat — Bädda in en chattwidget på din webbplats
- E-post — Anslut via IMAP och SMTP-relä
