opbox

The agent chat home is where you land and where the work happens. Rather than a dashboard of widgets you click through, it is a conversation: you tell the agent what you want, it calls the same governed verbs a person would, and it answers with live cards for the matters, parties, and documents it touched. This is the spine of how you actually work in Opbox v2. The chat is not a lesser, text-only cousin of the screens; it is a co-equal way in that renders the same objects in their compact form, and it carries the things waiting for you - your inbox, your searches, and the agents you have convened - in one place.

What it does

You work by talking, and the agent calls the same verbs you do. The chat runs an owned reasoning loop that, given your message, picks a kernel verb, calls it through the one front door, feeds the result back, and repeats until it can answer. Everything it does is a named, permission-checked, audited verb - there is no side door and no special agent power. The agent is bounded: the public chat executes under a dedicated WORKER identity at autonomy 1, which permits reads and ordinary writes but denies every sensitive or owner operation, regardless of what the verb is. Your sign-in is the access gate (who may chat); the bounded worker is the execution identity (what the chat may do).

Answers come back as live object widgets, not walls of text. When the agent mentions a matter, a party, or a document, it does not dump a paragraph: it shows the same compact card the full screen would show, driven by the verb’s render descriptor. Click a card and it deep-links you straight into the full panel for that object. Because the card and the panel come from one contract, the chat and the GUI can never tell you different stories about the same thing. A matter card can even carry an action like “Advance” that, when clicked, calls an existing verb - it never invents a new way to change data.

Your inbox is right here, and the unread count is honest. The home surface reads your notifications and shows them as you work: a per-section dot is simply the count of what is unread, and the inbox is scoped to you alone, so you only ever see what was addressed to you. Open an item to read it, and mark it done when you have dealt with it. Nothing is inferred from a stale board or a stray timestamp; the dots and the list are a live read of the record.

You can search across everything from the conversation. A single unified search runs over the whole workspace - matters, documents, parties - combining meaning-based and keyword retrieval and merging the two into one ranked answer. You ask in plain words and the agent finds the thing, then renders it as a card you can open. The search is permission-scoped like every other read, so it can only return what you are allowed to see.

You can convene an agent, or a panel, for a piece of work. From the conversation you can bring an ephemeral agent to a task: it is minted as a bounded instance whose toolset, autonomy, budget, and workspace are inherited from you and can never exceed yours. For a harder call you can convene a panel - several seats, each with a distinct lens, sharing one budget, returning their verdicts to a single synthesis. You can read a convening to see each seat’s status, spend, and conclusion, list the live and recent convenings in the workspace, and dissolve one when it is done - which tears down the actor but keeps the outcome and the audit trail. Convening a panel above your own standing level waits for a one-shot approval gate first.

You can export what the agent shows you. Any verb’s result can be rendered to a finished file - a PDF or other format - and saved, so a card you are looking at in chat becomes a document you can hand on. The export is itself a governed, audited verb, so an exported copy carries the same provenance as everything else.

How you use it

Open the home and start a conversation. You arrive at the chat. Type what you want in plain words - “show me the open matters for Acme”, “draft the engagement letter”, “what is waiting on me” - and the agent works it by calling verbs. The streaming reply shows you the tool calls it is making and the cards they return, so you can watch the work happen, not just read a summary of it.

Open a card to drill in. When the agent shows you a matter, party, or document card, click it to deep-link into the full panel for that object. The compact card in chat and the full panel are the same object in two projections, so opening one never takes you to a different version of the truth.

Clear your inbox as you go. Check the unread dot, open the item it points to, deal with it, and mark it done. The count drops because it is a live read of your notifications, not a separate tally you have to reconcile.

Find something fast. Ask the agent to search, or search directly, across matters, documents, and parties at once. You get back the ranked matches as cards, scoped to what you are allowed to see, ready to open.

Convene help for a task. Ask for an agent on a piece of work and one is convened under your bounds. For a judgement call, convene a panel: each seat works independently and returns its view to one synthesis. Read the convening to follow the seats, and dissolve it when the work is done - the conclusions and audit stay on the record after the actor is gone.

Export the result. When you have what you need on screen, export it to a finished file for a client, an advisor, or a data room. The exported copy is produced by a governed verb, so it is audited like every other action.

The kernel verbs behind it

Everything above runs through the kernel’s one front door: each call is permission-checked and audited before it executes (see the kernel and agents & MCP). These are the verbs most specific to the home surface.

  • search.query - unified retrieval over the workspace, combining vector and lexical search into one ranked, permission-scoped result.
  • inbox.get - read a single inbox item.
  • inbox.list - read your notifications, scoped to you; the per-section dot is the count of what is unread.
  • inbox.mark - mark an inbox item as dealt with.
  • render.export - render a verb’s result to a finished file in the chosen format and save it.
  • agent.convene - convene one ephemeral agent for a task, minted as a bounded instance that inherits (never exceeds) your toolset, autonomy, and budget.
  • agent.convene.panel - convene an N-seat panel, each seat a distinct lens sharing one budget and returning to a single synthesis.
  • agent.convening.get - read one convening and its seats’ status, spend, verdicts, and synthesis.
  • agent.convening.list - list the live and recent convenings in the workspace.
  • agent.dissolve - tear down a convening to the ledger, destroying the actor while keeping the outcome and audit.
  • agent.autonomy.set - set an agent’s autonomy level (L0-L3); no agent can raise its own.
  • agent.grant.get - read the verb-packs an agent has been granted.
  • agent.grant.set - grant or deny a verb-pack to an agent, never amplifying beyond the grantor’s own.
  • agent.skill.attach - attach a skill to an agent.

See the full set in the agent verb reference.