Why did we open-source our inference engine? Read the post

Publish a status page update straight from the incident report

Superlinked gives your agent one API to turn an internal incident review into a public update that carries no hostnames, no ticket numbers and no responder names.

Get started
Incident report

2025-04-30 Gerrit data corruption

  • Start: 2025-04-30 15:42:00
  • End: 2025-04-30 21:19:00
  • Impact: Gerrit was down for ~5h. Two repositories were corrupted and had to be repaired.
deploy100deploy2002gerrit1003gerrit2002T387833T393034 5 staff names
Status update
Status: Resolved
Impact: Gerrit was unavailable for five hours, and two repositories required manual repair due to data corruption.
Window: 2025-04-30 15:42 to 2025-04-30 21:19 UTC
Cause: A failed server switchover caused both hosts to act as primary, leading to conflicting replication and data loss.
  • Passed: Four labelled lines
  • Passed: Window matches the report
  • Passed: 25 words or fewer
  • Passed: No hosts, tickets or names

Your status page agent

Read the review your responders wrote and draft what customers see. Keep the outage window the report states and drop everything internal.

Incident review 2025-03-31 sessionstore unavailability
Public update Four labelled lines, no host and no responder named

Your on-call context

Decide what counts as internal and what a status page says.

REVIEW Post-incident report Scorecard and timeline
POLICY Never-publish list Hosts, tickets, responders
TEMPLATE Status page format Four labelled lines
CHECKS Run before posting Window, length, identifiers
Browse all tasks
from sie_sdk import SIEClient
client = SIEClient(
api_key="API keysk-sie-…",
base_url="https://api.superlinked.com",
)
messages = [
{"role": "system", "content": "instructionWrite a public status page update from the internal incident report below. Return exactly these four lines and nothing else: Status: Resolved Impact: <what users experienced, one sentence of 25 words or fewer> Window: <YYYY-MM-DD HH:MM> to <YYYY-MM-DD HH:MM> UTC Cause: <the cause in plain language, one sentence of 25 words or fewer> Rules: - Copy the start and end times from the report. If it lists several windows, use the first start and the last end. - Do not mention hostnames, ticket numbers or staff names."},
{"role": "user", "content": "textTitle: 2025-03-31 sessionstore unavailability Task: T390513 Start: 2025-03-31 02:58 End: 2025-03-31 03:36 Impact: Edits were failing for the duration of the outage. Starting at approximately 02:58 the sessionstore service in both datacenters became unavailable after a enough nodes had crashed due to disk exhaustion, that clients were no longer able to make quorum."},
]
result = client.chat_completions(
"modelQwen/Qwen3.8-27B-FP8",
messages,
max_completion_tokens=max tokens256,
)
print(result["choices"][0]["message"]["content"])
import { SIEClient } from '@superlinked/sie-sdk';

const client = new SIEClient('https://api.superlinked.com', {
  apiKey: 'sk-sie-…',
});

const result = await client.chatCompletions({
  model: 'Qwen/Qwen3.8-27B-FP8',
  messages: [
    { role: 'system', content: "Write a public status page update from the internal incident report below.\n\nReturn exactly these four lines and nothing else:\nStatus: Resolved\nImpact: <what users experienced, one sentence of 25 words or fewer>\nWindow: <YYYY-MM-DD HH:MM> to <YYYY-MM-DD HH:MM> UTC\nCause: <the cause in plain language, one sentence of 25 words or fewer>\n\nRules:\n- Copy the start and end times from the report. If it lists several windows, use the first start and the last end.\n- Do not mention hostnames, ticket numbers or staff names." },
    { role: 'user', content: "Title: 2025-03-31 sessionstore unavailability\n\nTask: T390513\nStart: 2025-03-31 02:58\nEnd: 2025-03-31 03:36\nImpact: Edits were failing for the duration of the outage.\n\nStarting at approximately 02:58 the sessionstore service in both datacenters became unavailable after a enough nodes had crashed due to disk exhaustion, that clients were no longer able to make quorum." },
  ],
  max_completion_tokens: 256,
});
console.log(result.choices[0]?.message.content);
curl https://api.superlinked.com/v1/chat/completions \
  -H "Authorization: Bearer sk-sie-…" \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"Qwen/Qwen3.8-27B-FP8\",\"messages\":[{\"role\":\"system\",\"content\":\"Write a public status page update from the internal incident report below.\\n\\nReturn exactly these four lines and nothing else:\\nStatus: Resolved\\nImpact: <what users experienced, one sentence of 25 words or fewer>\\nWindow: <YYYY-MM-DD HH:MM> to <YYYY-MM-DD HH:MM> UTC\\nCause: <the cause in plain language, one sentence of 25 words or fewer>\\n\\nRules:\\n- Copy the start and end times from the report. If it lists several windows, use the first start and the last end.\\n- Do not mention hostnames, ticket numbers or staff names.\"},{\"role\":\"user\",\"content\":\"Title: 2025-03-31 sessionstore unavailability\\n\\nTask: T390513\\nStart: 2025-03-31 02:58\\nEnd: 2025-03-31 03:36\\nImpact: Edits were failing for the duration of the outage.\\n\\nStarting at approximately 02:58 the sessionstore service in both datacenters became unavailable after a enough nodes had crashed due to disk exhaustion, that clients were no longer able to make quorum.\"}],\"max_completion_tokens\":256}"
Build the "Chat" capability into my app using the Superlinked Inference Engine (SIE).

Context
- SIE is an OpenAI-style inference API. Python SDK: `from sie_sdk import SIEClient`; TypeScript: `@superlinked/sie-sdk`.
- Base URL: https://api.superlinked.com (or my regional endpoint). Auth: Bearer key from env `SIE_API_KEY` (never hard-code it).
- Model: Qwen/Qwen3.8-27B-FP8 (OpenAI-compatible endpoint: /v1/chat/completions). Keep the model id configurable.

Task
- Input: a block of text.
- Behaviour: return the model’s answer to the prompt
- Send one POST /v1/chat/completions request (SDK: chat_completions / chatCompletions) with an optional system message for instructions, the user's text as the user message, and max_completion_tokens. Read the answer from choices[0].message.content.

Deliverables
- A typed client wrapper, an application-level function for this task, error handling for timeouts/empty input, and unit tests with a stubbed client.
- Wire it into my existing stack (ask me which framework if unclear) and add a short usage example.
Output
Status: Resolved Impact: Edits were failing for the duration of the outage. Window: 2025-03-31 02:58 to 2025-03-31 03:36 UTC Cause: Session store nodes crashed due to disk exhaustion, preventing clients from reaching quorum.
Left out of the update
T390513
Qwen3.8-27B-FP8
  • Window matches the report
  • 25 words or fewer

Compare models for this task

PRICE
$ / 1M input tokens $ / 1M output tokens
$0.2 OpenAI GPT-5.4 nano
$0.3 Google Gemini 3.5 Flash-Lite
SIE Qwen3.5 4B $0.72
SIE Qwen3.6 27B $0.72
OpenAI GPT-5.4 mini $0.75
Anthropic Claude Haiku 4.5 $1
$0.72 SIE Qwen3.5 4B
$0.72 SIE Qwen3.6 27B
$1.25 OpenAI GPT-5.4 nano
$2.5 Google Gemini 3.5 Flash-Lite
OpenAI GPT-5.4 mini $4.5
Anthropic Claude Haiku 4.5 $5
QUALITY
MMLU-Pro
SIE Qwen3.6 27B 0.66
0.64
0.63
SIE Qwen3.5 4B 0.58
0.56
0.55
LATENCY
p50 s
0.6s SIE Qwen3.5 4B
0.7s
0.7s
SIE Qwen3.6 27B 1.3s
1.5s
1.6s

A status page agent that will not post an update failing a check

View on GitHub
Input Internal incident review Scorecard, timeline and responder notes
Your agent Status page publisher Drafts the update, then refuses to post one that fails a check
Output Public status update Four labelled lines customers can read

Five model stages between the internal review and the status page

Write the public update Qwen/Qwen3.8-27B-FP8 12 recorded calls
Name every host, ticket and responder fastino/gliner2-large-v1 Entity extraction
Strip identifiers from customer-facing text urchade/gliner_multi_pii-v1 Redaction
Find the past incident this one resembles Qwen/Qwen3-Embedding-8B Search
Put the closest past write-up first Qwen/Qwen3-Reranker-4B Rerank
12 incident reviews rewritten
48 of 48 checks passed
91 hosts, tickets and names left out
15 identifiers in the hardest review, none published

All 12 updates kept the outage window and named no host, ticket or responder

View evidence
Incident report

2025-03-12 ExternalStorage Database Cluster Overload

  • Start: 2025-03-12 10:44:00, 2025-03-13 11:15:00
  • End: 2025-03-12 13:44:00, 2025-03-13 14:15:00
  • Impact: We had minimal user facing impact: Global traffic had a ~0.03-0.04% error rate, edits were affected for a very short period of time, while p50 and p75 latency for Web and External API, were not affected
.wmnetpublish-74publish-81T389498 11 staff names
Status update 4/4 checks · 7.5 s wall clock
Status: Resolved
Impact: Minimal user impact with a 0.03-0.04% error rate and brief edit disruptions, while standard latency metrics remained unaffected.
Window: 2025-03-12 10:44 to 2025-03-13 14:15 UTC
Cause: A deployment tooling error prevented the application from accessing the cache, causing excessive load on the database cluster.
  • Passed: Four labelled lines
  • Passed: Window matches the report
  • Passed: 25 words or fewer
  • Passed: No hosts, tickets or names
Wikitech, 2025-03-12 ExternalStorage Database Cluster Overload, CC BY-SA 4.0
Incident report

2024-11-25 WMCS proxy nginx failure

  • Start: 03:09
  • End: 03:57
  • Impact: No impact as we were lucky and the affected proxy instance was the "standby" instance, and not the "active" one.
proxy-03proxy-04T379927T381092T381107 3 staff names
Status update 4/4 checks · 6.0 s wall clock
Status: Resolved
Impact: No user-facing impact occurred as the failure affected only the standby proxy instance.
Window: 2024-11-25 03:09 to 2024-11-25 03:57 UTC
Cause: A Puppet bug removed necessary nameserver entries from configuration files, causing the web server service to fail.
  • Passed: Four labelled lines
  • Passed: Window matches the report
  • Passed: 25 words or fewer
  • Passed: No hosts, tickets or names
Wikitech, 2024-11-25 WMCS proxy nginx failure, CC BY-SA 4.0
Incident report

2024-12-03 Port saturation from cached Varnish HEAD-GET upgrades

  • Start: 2024-12-03 19:59:00
  • End: 2024-12-09 10:28:00
  • Impact: Not particularly public
.wmnetT381771 1 staff name
Status update 4/4 checks · 5.7 s wall clock
Status: Resolved
Impact: No user-visible issues were reported, as the internal network saturation did not affect public service availability.
Window: 2024-12-03 19:59 to 2024-12-09 10:28 UTC
Cause: Cached responses from converted HEAD requests caused excessive backend traffic and network port saturation.
  • Passed: Four labelled lines
  • Passed: Window matches the report
  • Passed: 25 words or fewer
  • Passed: No hosts, tickets or names
Wikitech, 2024-12-03 Port saturation from cached Varnish HEAD-GET upgrades, CC BY-SA 4.0

These 3 and the report in the hero are 4 of the 12 recorded incident reports, and all 12 passed every check. The playground above runs a further call on a short excerpt, which is not one of the 12.

Deploy your way

Self-host with K8s

Easy & scalable deployment in your own cloud.

  • Terraform to your cloud in minutes
  • Apache-2.0, same engine as Cloud
  • Scales to zero, no bill between jobs
  • Per-tenant pools, no noisy neighbors
Agent prompt
Deploy SIE to our AWS account with the superlinked/sie/aws Terraform module. Docs: superlinked.com/docs/deploymentDeploy SIE to our GCP project with the superlinked/sie/google Terraform module. Docs: superlinked.com/docs/deploymentDeploy SIE to our Azure AKS cluster via helm install. Requirements: superlinked.com/docs/deployment
Deploy guide

Run locally

Run the same models on your own machine.

  • Runs on NVIDIA GPU or Apple Silicon
  • One command, no Docker or cluster
  • All 100+ Cloud models, fully offline
  • Same SDK and IDs, no code changes
pip install "sie-server[local]" && sie-server servepip install "sie-server[local]" && sie-server serve --device cuda
Quickstart

Contact us

Tell us about your use case and we'll get back to you shortly.

Apply for an inference grant

Free capacity on our hosted cluster for selected projects. Tell us what you run and we reply by email.