Module 01 / Assistant

AI that actually does things.

Live Part of Atlas

The Assistant has memory, identity, and permissions. It drafts the doc, books the meeting, sends the contract, and routes the task. Every action is policy-checked. Every decision is audit-logged. Nothing happens that the user could not have done themselves.

Architecture

Four layers, built for action.

The Assistant is not one model. It is four layers stacked: memory, planner, executor, auditor. Each is replaceable. Each is observable.

Layer 01Memory

A per-user, per-workspace memory store. Lives in your tenant. Reads the work graph. Never includes another user's data without that user's grant.

Layer 02Planner

Decomposes "draft the recap and book the follow-up" into typed steps. Each step has preconditions, side effects, and a reason. Plans are inspectable.

Layer 03Executor

Calls module APIs through the same auth path a user would. Cannot escalate. Policy gate runs before every side effect. Holds for human approval where required.

Layer 04Auditor

Every step, every input, every output, every policy decision is logged with a stable hash. Reproducible from the log alone.

What it does

Five things that compound.

A chatbot summarizes. The Assistant operates. The difference is that operation requires identity, permission, and audit, which most chatbots do not have.

Drafts grounded in your work

Every draft is generated from spans in the work graph. No hallucinated metrics. No invented quotes. The cite is on every paragraph.

Acts within your permissions

The Assistant inherits the user's permissions. It cannot send mail from an account it cannot read. It cannot edit a doc the user cannot edit. Escalation is impossible by design.

Holds for approval on high-impact

Money-moving actions, external sends to net-new addresses, contract signs, and large data exports require explicit human confirmation. The held action shows up in the user's queue.

Remembers what matters

Per-user, per-workspace memory of preferences, decisions, and prior conversations. Memory is auditable, editable, and exportable. You can delete a memory permanently.

Speaks the org's vocabulary

Picks up your jargon, named systems, and abbreviations from your docs and history. Refers to "M-318" or "the Frankfurt cluster" the way your team does, not the way a generic model would.

How it works

Three phases, per action.

A user asks. The planner expands the ask into typed steps. The executor runs the steps in order, with policy and audit on each. Three loops, one log.

PHASE 01"recap and book"plan01 · draft.recap02 · task.create03 · cal.book04 · doc.draft05 · proposal06 · notify

Decompose to typed steps

The planner produces an inspectable plan: step type, target module, args, preconditions, and a side-effect tag (read / write / external).

PHASE 02policy gate✓ step 01: read scope ok✓ step 02: write to own tasks✓ step 03: cal write, own calendar✓ step 04: docs.write own draft⚠ step 05: contract send · HOLDreason: high-value rule (>$100k)✓ step 06: notify own channel

Gate every side effect

Each writing step passes the policy engine. Reads are unrestricted. Writes are checked against the user's permissions. Sensitive actions are explicitly held.

PHASE 03action.001user · mia@acme.cominput · sha256:7a4f…model · claude-opuspolicy · pass:6 hold:1side · 4 writeslatency · 1.8saudit logrecordedgroundedreplayableexportable

Log every event

Every step writes an event with input hash, model, policy decision, side effect, and latency. Recorded in the workspace audit log, replayable, and exportable.

Key features

Nine more, all in policy.

Each is on by default for every workspace, gated by the workspace's policy bundle.

Per-user identity

Acts as the user, not as a shared service account. Audit attributes every action to a human.

Policy engine

Rego-style rules. Pre-built bundles for high-value, external-recipient, after-hours, and sensitive scope.

Memory you can read

Click into the memory store, see what the Assistant remembers, edit or delete any entry. Logged.

Streaming UX

Plans, steps, and outputs stream live. Users see what is about to happen before it does.

Multi-user delegation

"Have the Assistant draft this on Mia's behalf and ship for my review." Delegations are time-boxed and audited.

Model neutrality

Anthropic, OpenAI, Cohere, Mistral, or a model you host yourself. Per-workspace default plus per-skill override. Bring your own model key.

Encrypted in transit and at rest

TLS 1.3 on every request. Memory, plans, and logs are encrypted at rest by the managed hosting layer.

No training on your data

Your tenant's content is not used to improve a shared model. Enforced by the model provider's API terms.

Skill marketplace

Curated skills with permission manifests. Install with one click. Each skill discloses its scope.

Connected

Operates every module.

The Assistant is the only surface that touches every other module. It is also the only surface that touches all of them through their public APIs, not behind their back.

One actor for the whole stack

Every module exposes a typed API. The Assistant uses those APIs, the same ones third parties use. Nothing private. No back doors. That is why permission boundaries actually hold.

Public API onlyPer-step policyPer-event auditPer-tenant memoryPer-workspace model
API

Programmatic Assistant.

Drive the Assistant from your own code. The plan, policy, and audit surface are first-class.

assistant.ts
// Ask the Assistant to draft and act. Stream the plan, policy decisions, and outputs.
import { Wrx } from "@wrxstack/sdk";

const wrx = new Wrx({ token: process.env.WRX_TOKEN });

const run = await wrx.assistant.run({
  as_user: "mia@acme.com",
  ask:     "Recap the Acme call, send MSA v3 to legal, and book the onboarding walkthrough Thursday.",
  policy:  "standard_b2b_sales",
  on_hold: "prompt_user"           // or "deny", "escalate"
});

for await (const ev of run.events()) {
  switch (ev.kind) {
    case "plan":    console.log("plan:", ev.steps); break;
    case "policy":  console.log(ev.step, ev.decision, ev.reason); break;
    case "action":  console.log("did:", ev.target, ev.id, ev.latency_ms); break;
    case "hold":    await wrx.assistant.confirm(ev.action_id, { actor: "mia@acme.com" }); break;
    case "audit":   // writes to the workspace audit log with input hash break;
  }
}
Comparison

Assistant vs. ChatGPT Enterprise.

ChatGPT Enterprise is a chat surface with optional connectors. wrxstack Assistant is an action layer with identity, policy, and audit on every step.

wrxstack Assistant vs. ChatGPT Enterprise

CapabilityChatGPT Enterprisewrxstack Assistant
Per-user identity on actionsService account modelActs as the user, audit attributes back
Policy gate on side effectsNot built inRego-style per step
Audit logPrompt logStep + policy + side effect, exportable
Memory you can editOpaqueReadable, editable, exportable
Native operates the platformCustom GPTs + connectorsAll 16 modules, native
Hold-for-approvalNot nativePer-policy, per-step
Model choiceOpenAI onlyAnthropic, OpenAI, Cohere, or self-hosted models
FAQ

Common questions.

Six things security and engineering leaders ask in the first hour of evaluating Assistant.

How is "acts as the user" actually enforced?

The Assistant signs every API call with a delegated token tied to the user's session. The platform's auth layer treats it like any other authenticated request, with the same ACL checks. There is no shared service account that can write on behalf of multiple users. An action's audit row has the user identity, not the assistant identity.

How does memory work, and is it visible?

Memory is a per-user, per-workspace store of preferences, decisions, and conversational facts. You can see every entry in a dedicated UI. You can edit or delete entries. Deletion propagates to derived embeddings within 10 minutes. Memory never crosses tenant boundaries.

What does the policy bundle actually contain?

A typical bundle has rules for high-value financial actions, external recipients on first contact, sensitive scopes (HR, finance, legal), after-hours actions, and bulk operations. Each rule produces an allow, allow-with-confirm, or deny. Bundles are versioned, reviewable, and testable.

How do you keep the model from inventing facts that look like actions?

The planner is constrained: every step has to type-check against the public module schemas. Steps that do not type-check are dropped. Outputs are grounded in retrieved spans. The audit row carries the input hash so a reviewer can replay and verify.

What is the worst-case if a rogue actor compromises the Assistant?

The Assistant can do at most what the user could do. There is no privilege escalation path. Policy gates fire even if the Assistant is bypassed. The audit log records every action against the acting user and is exportable for review. Recovery is a session revoke plus a normal incident response.

Can we bring our own model?

Yes. The Assistant supports Anthropic, OpenAI, Cohere, Mistral, and any OpenAI-compatible endpoint, including one you host yourself. Set a per-workspace default and override the model per skill. You bring your own model-provider key.

Does the assistant work across all my apps, or just one?

Across all of them. The Assistant reads and acts on the whole work graph, tasks, projects, docs, the CRM, inbox, meetings, contracts, and the 60+ integrations, in a single request. It can pull a figure from a document, update the matching CRM deal, and open a task from one instruction. A copilot bolted onto a single app can only act inside that app. Every action runs as the user, inside their permissions, and is written to the audit log.

Related

Pairs well with.

The Assistant gets sharper with every other module live. Three to start with.

Try it

Type. Watch. Audit.

Pattern-matched, browser-only demo. Real grounded responses, real audit trails: the same three columns the production assistant writes to the workspace audit log.

Try a prompt

+ Enter to send · Esc to clear · Runs entirely in your browser.

Assistant response · session local

grounded · no API call · audit-ready

Open the full playground →

Honest limits

Who this is not for.

Assistant takes actions inside Atlas, so it is not a general-purpose chatbot. It is built and maintained by one person and does not yet hold SOC 2 or any formal certification, so it suits small and mid-size teams that value speed over a procurement checklist. If you need an open-ended model for research and long-form writing, or a vendor with an enterprise compliance program already in place, a large model provider will fit better.

Get started

An AI you can actually trust.

Free to start, no credit card. Standard policy bundle in the box. SSO available.