{"id":"agent","type":"module","title":"Agent (AI Assistant, \"Klara\")","status":"ga","audience":["consultant","bid-manager","org-admin"],"scope":"both","tier_min":"basic","aliases":["12","klarum","assistant","klara"],"summary":"Klarum's conversational assistant: a tool-using ReAct agent on LangGraph that reasons over the org's own data, calls tools to read and act on it, searches the web, and drives the UI of the page the user is on.","keywords":["langgraph","react-agent","tools","sse","notebook","page-bridge","dspy","rag","citations"],"body":{"what_it_is":"Klarum's conversational AI assistant, branded **\"Klara\"** to the end user. A\n**tool-using ReAct agent** built on **LangGraph** (`create_react_agent`) that\nholds a conversation, reasons over the firm's own data, calls tools to read\nand *act on* it, searches the web, and drives the UI of the page the user is\non. Two modes: **Chat** (streaming multi-turn with tool use, citations,\nthinking/tool-call blocks) and **Notebook** (a Jupyter-style cell stack of\npromptable automations wired to the process engine + knowledge API).\nContext-scoped: firm-wide on its own page, but **hard-pinned** to a\nworkspace + its issuer/tender when opened from that workspace.\n","what_it_helps_users_do":"In natural language: find and triage the pipeline; discover and search live\ntenders; interrogate firm knowledge with **citations and page numbers**; read\ndeep project context (details, company research, validation reports, history,\ndashboard analytics); take actions (update/delete projects, export to Excel,\ngenerate outreach emails, edit/save document content, write issuer-timeline\nnotes (gated), convert transcripts into checklists); operate the current\nscreen by text (\"apply my template Noah\", \"reorder by deadline\"); and run\nrepeatable automations in Notebook mode. The pitch: instead of clicking\ndozens of screens, the consultant talks to one assistant that already knows\ntheir firm, workspace, the live market, and their documents, and can both\n*answer* and *do*.\n"},"engines":[],"integrations":[{"id":"tavily-search","type":"integration","title":"Tavily","summary":"Web search and company research behind the WebSearch tool and a heavier research agent, registered only when an API key is set.","category":"web-search"}],"capabilities":[{"id":"chat-mode","type":"capability","title":"Chat mode","summary":"Streaming multi-turn conversation with tool use, citations and live thinking and tool-call blocks, persisted to process_runs so a session is resumable.","status":"ga","scope":null,"keywords":["streaming","sse","resumable","citations"],"body":null},{"id":"notebook-mode","type":"capability","title":"Notebook mode","summary":"A Jupyter-style cell stack of promptable automations wired to the process engine and the knowledge API, for work that repeats.","status":"ga","scope":null,"keywords":["notebook","cells","repeatable"],"body":null},{"id":"page-action-bridge","type":"capability","title":"Page-action bridge","summary":"A server-stateless tool: the agent emits an action, the backend echoes it, and the frontend invokes the matching handler from its per-page registry. This is what lets the assistant operate the UI.","status":"ga","scope":null,"keywords":["dispatch","stateless","registry","drive-ui"],"body":null},{"id":"contract-manifest-state-edges","type":"capability","title":"Contract manifest and state-edges","summary":"A source-walked manifest maps every route to its components, testids, actions and dual doors, so an in-page view with no route of its own is still reachable and nothing is hand-maintained.","status":"ga","scope":null,"keywords":["manifest","state-edge","doors","derived"],"body":null},{"id":"cross-context-isolation","type":"capability","title":"Cross-context isolation","summary":"Row-level firm scoping on every SQL and RAG call plus a non-negotiable prompt rule that the agent may only answer about the pinned workspace, so one deal cannot leak into another.","status":"ga","scope":null,"keywords":["rls","isolation","hard-rule","safety"],"body":null},{"id":"read-the-tender-notice","type":"capability","title":"Reading the tender's own notice","summary":"In a workspace built on a tender, the agent can read the notice the buyer published - the source document - rather than only the fields extracted from it.","status":"ga","scope":null,"keywords":["notice","source-page","provenance","tender"],"body":null},{"id":"gated-write-tools","type":"capability","title":"Gated write tools","summary":"Write tools sit behind a per-org opt-in flag and refuse when mis-wired, and confirm-gated proposals put a human between an intention and an effect.","status":"ga","scope":null,"keywords":["writes","opt-in","confirm-gate"],"body":null},{"id":"brand-aware-document-generation","type":"capability","title":"Brand-aware document generation","summary":"On request the agent produces a finished on-brand PDF dressed in the org's own design tokens, routing between approved brands by matching the new document to the org's past accepted ones.","status":"ga","scope":null,"keywords":["branding","archetype","design-tokens","typst"],"body":{"what_it_is":"On request the agent produces a finished, on-brand PDF - a capability\nstatement, letter of interest, opportunity dossier, bid/no-bid memo, or a\nfree-form \"sectioned document\" for anything else - dressed in the firm's\nown visual identity (logo, colours, fonts, page geometry) captured as\nreusable **design tokens**. Every doc type renders\nthrough the Typst typesetting engine by default, with the HTML/Jinja +\nWeasyPrint/Chromium path kept as a fallback. The firm composes the words;\nthe brand is applied automatically.\n","what_it_helps_users_do":"A firm doesn't have one voice - it has a boardroom voice and a bid-desk\nvoice. Software that forces every document through a single template\nproduces output that feels slightly off, and clients notice. Making each\ndocument feel native to its purpose - an investor brief that reads like\nyour past investor reports, a formal bid that reads like your past bids -\nis the difference between \"the computer made this\" and \"our firm made\nthis,\" at no extra effort from the user.\n"}}]}