A chat wrapper has one model and one text field. Yesper is a production system of specialist agents, Swedish authority data, document pipelines, and long-lived project memory — coordinated by an orchestrator that decides who does what for every request.
An orchestrated agent loop with multi-model routing, multi-tenant Cosmos DB, event-driven async pipelines via Azure Service Bus, Cosmos change-feed + SignalR for real-time, and a fleet of specialist agents exposed as tool calls.
project_agent — cross-file reasoningproject_explorer_agentproject_file_researcherproject_file_indexer — RAGblueprint_analyzerbill_of_quantitiesdocument_type_assessorimage_analyzerfile_comparator_agentallabolag_agenttrafikverket_agentsgu_agentnvv_agentama_agentmapbox_agent · geo_agentweather_agentxlsx_agent · excel_convertermsoffice_agentfile_converterfile_chunkersharepoint_syncproject_file_storage — Azure Blobworkflow_agentchecklist_agentcomposer_agenttemplate_agentplan_agentmemory_agentresearch_agentweb_agent — headless browsingcode_execution_agentreference_libraryprompt_libraryartifact · artifact_editor_agentweb_artifact_creator_agenteditor_agentcontent_generationcontent_export — Word/Excel/PDFbessy — enrichment pipelineFile-type-aware and deferred-loaded — only the skills a task needs are pulled into context.
Multi-tier OCR fallback, automatic document classification, and query expansion across synonyms, abbreviations, and formal codes (e.g. "bygglov" → AFC.181).
Each capability publishes and subscribes to its own domain events. Delivery, retry, and dead-lettering are handled by Azure Service Bus.
A chat wrapper makes one API call per question. Yesper runs an orchestrated loop of dozens of specialist agents, three model providers, a multi-tenant data model, an event plane with 20+ topics, and an index pipeline that keeps every project file semantically searchable — all behind the same text field. The difference isn't the UI. It's everything behind it.