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.
/orchestrator_agent/project/project_file/artifact/checklist/workflow/memory/prompt_libraryskill-routersource-routeragent-exclusionscapabilities-toolsubtask-tooltodo-tooltodo-reminderretry-utilsanthropic-stream-adaptersmooth-text-emitteranswer-formatterproject_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 pipelineEach module owns its events under pub_sub/. Subscribers are named after the Bazel package. Retry + DLQ are handled by Service Bus.
internals/.A chat wrapper makes one API call per question. Yesper runs an orchestrated loop of dozens of specialist agents, two 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.