Pakota agenttisäännöt

Pakotus on SilentShieldin tekoälyagenttien hallinnan taso 2: sen sijaan, että tekoälyagenttien käynnit vain tallennettaisiin, palvelimesi tai edge soveltaa avainkohtaista käytäntöäsi aktiivisesti — jokainen agentti sallitaan, rajoitetaan tai estetään. Se rakentuu suoraan tarkkailutilan päälle. Enforcement-komponentit (Next.js-middleware, sidecar-binääri, Cloudflare Worker) toimitetaan tällä hetkellä pyynnöstä early access -vaiheessa — ota yhteyttä: [email protected].

Ensin tarkkaile, sitten pakota

Selkeä suosituksemme: ota ensin tarkkailu käyttöön, anna sen pyöriä viikko tai kaksi ja käy raportti läpi ennen kuin estät mitään — sama vaiheittainen eteneminen kuin Wordfencen oppimistilassa tai DMARC-käyttöönotossa (none → quarantine → reject). Vasta raportti näyttää, mitkä tekoälypalvelut todella vierailevat sivustollasi ja mitä esto sinulle maksaisi, esimerkiksi sitaatteja tekoälyhaussa. Pakottaminen ilman tätä kuvaa on sokkona päättämistä.

Näin pakotus toimii

Jokainen enforcer noudattaa samaa sopimusta: se hakee API-avaimellesi policy-bundlen, varmentaa bundlen Ed25519-allekirjoituksen SilentShieldin kiinnitettyjä julkisia avaimia vasten ja päättää sitten paikallisesti — salli, hylkää tai rajoita — ilman yhtäkään kutsua pyyntöpolulla.

Kiinnitetyt allekirjoitusavaimet haet kerran osoitteesta https://api.silentshield.io/.well-known/silentshield-agent-keys. Ja jokainen enforcer toimii fail-open-periaatteella: minkä tahansa virheen sattuessa — verkko, allekirjoitus, vanhentunut bundle — pyyntö päästetään läpi. Pakotus ei voi koskaan kaataa sivustoasi.

Käyttöönottovaihtoehdot

Next.js (Edge Middleware)

Sama Next.js-sovitin, joka tarkkailee, osaa myös pakottaa. Aseta policy-ympäristömuuttujat; middleware soveltaa sitten käytäntöäsi edgessä:

.envbash
AGENT_POLICY_URL=https://api.silentshield.io/api/v1/agent/policy
AGENT_OBSERVE_API_KEY=YOUR_API_KEY
AGENT_TRUSTED_KEYS=[{"kid":"…","key":"<base64 ed25519 pubkey>"}]

Reverse proxy (nginx / Caddy / Traefik)

Yksi pieni sidecar-binääri palvelee kaikkia kolmea proxyä: proxy kysyy siltä forward authin kautta kerran pyyntöä kohti. Käynnistä se site-avaimellasi ja luotetuilla avaimilla:

Terminalbash
AGENT_POLICY_URL="https://api.silentshield.io/api/v1/agent/policy" \
AGENT_SITE_KEY="YOUR_API_KEY" \
AGENT_TRUSTED_KEYS='[{"kid":"…","key":"<base64 ed25519 pubkey>"}]' \
AGENT_SIDECAR_LISTEN=":8127" \
  ./agent-sidecar

Sidecar vastaa GET /auth -kutsuun koodilla 204 (salli), 403 (hylkää) tai 429 ja Retry-After (rajoita). Kytke se proxyysi näin:

nginx.confnginx
location = /_ss_auth {
    internal;
    proxy_pass              http://127.0.0.1:8127/auth;
    proxy_pass_request_body off;
    proxy_set_header        Content-Length "";
    proxy_set_header        X-Forwarded-Method $request_method;
    proxy_set_header        X-Forwarded-Uri    $request_uri;
    proxy_set_header        X-Forwarded-Host   $host;
    proxy_set_header        X-Forwarded-For    $remote_addr;
    proxy_set_header        User-Agent         $http_user_agent;
    proxy_set_header        Signature          $http_signature;
    proxy_set_header        Signature-Input    $http_signature_input;
    proxy_set_header        Signature-Agent    $http_signature_agent;
}
location / {
    auth_request /_ss_auth;
    # ... your normal proxy_pass to the origin ...
}
Caddyfilecaddy
example.com {
    forward_auth 127.0.0.1:8127 {
        uri /auth
        copy_headers User-Agent Signature Signature-Input Signature-Agent
        # Caddy sends X-Forwarded-Method/-Uri/-Host automatically
    }
    reverse_proxy origin:8080
}
traefik.ymlyaml
http:
  middlewares:
    silentshield:
      forwardAuth:
        address: "http://agent-sidecar:8127/auth"
        authRequestHeaders:
          - "User-Agent"
          - "Signature"
          - "Signature-Input"
          - "Signature-Agent"

Cloudflare Worker

Cloudflare Worker -enforcer varmentaa policy-bundlen Web Crypto Ed25519:llä ja estää pyynnöt jo ennen kuin ne saavuttavat originisi:

Terminalbash
cd enforcers/cloudflare-worker
npx wrangler secret put AGENT_SITE_KEY
# set AGENT_POLICY_URL + AGENT_TRUSTED_KEYS in wrangler.toml [vars]
npx wrangler deploy

Rehelliset rajat

Agenttiselaimia kotitalouksien IP-osoitteissa (Comet, ChatGPT Atlas ja vastaavat) ei voi teknisesti erottaa ihmiskävijöistä. Mikään tuote ei pysty tunnistamaan niitä luotettavasti — siksi SilentShield ei tietoisesti anna tälle luokalle mitään pakotuslupausta.

robots.txt ja lähetetyt sisältösignaalit ovat suosituksia: hyvin käyttäytyvät indeksoijat noudattavat niitä, mutta mikään ei pakota niitä siihen. Tekninen pakotus tapahtuu vain tämän sivun enforcereissa — ja nekin toimivat varovaisesti ja hylkäävät vain varmasti tunnistetut tunnetut agentit, jotta oikeutettuja kävijöitä ei koskaan estetä.

Määritä käytäntösi

Se, mitä kukin agentti saa tehdä, määritetään API-avainkohtaisesti agenttikeskuksessa: API-avaimet → valitse avain → Agentti. Esiasetukset kattavat yleisimmät tapaukset; jokaisesta muutoksesta syntyy uusi allekirjoitettu bundle, jonka enforcerisi ottavat käyttöön automaattisesti.

Avaa agenttikeskus →