← Plattform
Teknisk arkitektur

”Bara ChatGPT med ett UI?” Här är den faktiska stacken.

En översikt av systemet bakom Yesper: en orkestrerad agent-loop med dual-model routing, multi-tenant Cosmos DB, event-drivna async-pipelines via Azure Service Bus, Cosmos change-feed + SignalR för realtid, och en flotta specialistagenter som exponeras som tool calls.

RuntimeNode.js · TypeScript BuildBazel monorepo MolnAzure (EU) ModellerClaude + Azure OpenAI
01Klienter
Webbapp
React SPA · SSE-strömning
Tender LM
Anbudsproduktion (separat UI)
MCP-klienter
Claude Desktop, Cursor, IDE
API-konsumenter
Bearer-token · enterprise
02Edge & API
HTTP API-gateway
services/yesper · services/backend
Varje modul registrerar sina endpoints (ApiModule-mönster, snake_case-paths).
  • /orchestrator_agent
  • /project
  • /project_file
  • /artifact
  • /checklist
  • /workflow
  • /memory
  • /prompt_library
  • + 16 more
Auth & authz
modules/yesper/auth0 · workspace_authorization
Auth0 SSO · scope_types (workspace / project / org) · org-routing.
MCP-server
modules/yesper/mcp_server
Exponerar Yesper-verktyg till externa LLM-klienter via Model Context Protocol.
03Orkestrerare
orchestrator_agent — tool-calling-loop med dual-model routing
modules/yesper/orchestrator_agent/internals/{claude-orchestrator-agent.ts · orchestrator-chat-completion-agent.ts}
Routing
  • skill-router
  • source-router
  • agent-exclusions
  • capabilities-tool
Loop-kontroll
  • subtask-tool
  • todo-tool
  • todo-reminder
  • retry-utils
Strömning
  • anthropic-stream-adapter
  • smooth-text-emitter
  • answer-formatter
  • SSE → client
Modell-backends
Claude
modules/yesper/anthropic_model
Azure OpenAI
modules/yesper/azure_model
04Agentflotta

Projektintelligens

  • project_agent — cross-file reasoning
  • project_explorer_agent
  • project_file_researcher
  • project_file_indexer — RAG
  • blueprint_analyzer
  • bill_of_quantities
  • document_type_assessor
  • image_analyzer
  • file_comparator_agent

Svensk myndighetsdata

  • allabolag_agent
  • trafikverket_agent
  • sgu_agent
  • nvv_agent
  • ama_agent
  • mapbox_agent · geo_agent
  • weather_agent

Dokumentpipeline

  • xlsx_agent · excel_converter
  • msoffice_agent
  • file_converter
  • file_chunker
  • sharepoint_sync
  • project_file_storage — Azure Blob

Arbetsflöden & struktur

  • workflow_agent
  • checklist_agent
  • composer_agent
  • template_agent
  • plan_agent
  • memory_agent

Research & exekvering

  • research_agent
  • web_agent — headless browsing
  • code_execution_agent
  • reference_library
  • prompt_library

Artefakter & leverans

  • artifact · artifact_editor_agent
  • web_artifact_creator_agent
  • editor_agent
  • content_generation
  • content_export — Word/Excel/PDF
  • bessy — enrichment pipeline
05Data & events

Data plane

multi-tenant · org-isolerad
Cosmos DB — standard
modules/yesper/cosmos_db
Delade multi-tenant-containers. Partition keys per org.
Cosmos DB — per org
CosmosDbClientFactory(org_id)
Dedikerade databaser för enterprise-kunder. Samma kod, annan routing.
Azure Blob
project_file_storage
Råfiler · revisioner · stora binärer.
Cosmos change feed + SignalR
modules/yesper/realtime
generic-change-feed-processor → signalr-hub → SSE till klient.
Redis streams
modules/yesper/redis_stream
Låg-latens fan-out för realtids-textströmning.
Vektorindex
project_file_indexer
Chunkat, embeddat, semantiskt sökbart via RAG-verktyg.

Event plane

Azure Service Bus · InMemoryPubSub i test
orchestrator-run-executed agent-task-scheduled agent-task-execution-started agent-task-run-completed agent-task-blocked checklist-run-executed workflow-run-executed project-file-vectorized project-file-revision-indexed immediate-project-file-indexing-requested project-file-indexing-failed thread-summarization-requested thread-summary-upserted project-exploration-triggered workspace-exploration-triggered bessy-record-created bessy-enrichment-completed generated-file-created project-deleted project-file-deleted agent-thread-deleted

Varje modul äger sina events under pub_sub/. Subscribers namnges efter Bazel-paketet. Retry + DLQ hanteras av Service Bus.

06Externa leverantörer
LLM-leverantörer
  • Anthropic Claude (Opus / Sonnet / Haiku)
  • Azure OpenAI (EU-deployment)
  • Modell-routing per agent
Svenska myndigheter & öppna data
  • Allabolag
  • Trafikverket
  • SGU
  • Naturvårdsverket
  • AMA
  • Mapbox
  • Weather API
Enterprise
  • Auth0
  • SharePoint Graph API
  • Gmail / outbound email
  • Braintrust (evals)
07Genomgående
Observability
Strukturerad loggning (statiskt meddelande, variabler i details), traces, LLM-eval.
loggertracerbraintrust
Testdisciplin
BDD mocha · NoOp-implementationer · mock factories · Cosmos-tester mot riktig DB.
bazel testTestLoggerNoOp*Store
DI & modularitet
ApiModule-interface · Client/Store-separation · aldrig import från internals/.
ApiModuleLocalClientStoreFactory
Secrets & config
Google KMS-krypterade config-filer · inga env-var-secrets · encrypt-prod-pipeline.
secret_managerEncryptedString
"ChatGPT med en webbsida"-tesen
En modell. En textruta. Inget minne.

En chat-wrapper gör ett API-anrop per fråga. Yesper kör en orkestrerad loop med dussintals specialistagenter, två modell-leverantörer, en multi-tenant-datamodell, en event-plane med 20+ topics och en index-pipeline som håller varje projektfil semantiskt sökbar — allt bakom samma textruta. Skillnaden är inte UI:t. Det är allt bakom det.