← Plattform
Arkitektur

Långt ifrån en wrapper.
Så här ser Yesper faktiskt ut.

Ett chattskal har en modell och en textruta. Yesper är ett produktionssatt system av specialistagenter, svensk myndighetsdata, dokumentpipelines och långlivat projektminne — koordinerat av en orkestrerare som för varje förfrågan avgör vem som gör vad.

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.