We deliver the complete aamp engine (single binary), which you plug into your platform through an API in no time. That lets you launch paid AI services for your customers faster, without rebuilding your existing system.
The agent runs the conversation and decides which tool to reach for. Repeatable logic goes into Python scripts that the agent calls, and on top of them you build form-based apps run by users or by the scheduler. Every change goes to a draft first and only takes effect once you publish a new version.
Python scripts, document indexing and browser work run in disposable Firecracker microVMs. The machine starts with no network access, and you grant access explicitly by listing allowed addresses. When the run finishes, is stopped or times out, the machine is deleted.
Tools such as web search, browser control or page reading are configured once as profiles and attached to the agents you choose. Integrations, such as SSH, are used by scripts. The agent receives a description of the tool, not a password or key, so the scope of its access is your decision.
All guest network traffic goes through a host-controlled proxy. Domain rules support default-allow or default-deny, and host.internal exposes only the routes you approve.
Fourteen log domains record token accounting, firewall decisions, proxy traffic and document-level retrieval. They are produced as a side effect of the system running, not as a separate integration project.
A single Go binary with no cgo, message broker or external cache. Deploys on a Linux host with /dev/kvm.
SQLite plus local files. A backup is one file and two directories; migrating means copying them.
Firecracker microVMs for risky work: browser control, document rendering, RAG indexing.
Any OpenAI-compatible endpoint: vLLM, Ollama, LocalAI, TGI or a hosted frontier model provider.
DataLake datasets on DuckDB and Parquet: versioned, classified and queried by agents read-only.
Python scripts become form-based apps and dashboards for users without admin rights. The cron scheduler runs them at set times.
Two roles with access granted per agent, plus input and output safeguards on every interface.
14 log domains: token accounting, firewall decisions, proxy traffic and document-level retrieval.
You manage agents, safeguards and logs from one panel. Each plane has its own scope and its own event record, so it is easy to see what worked and why.
The safeguard runs before the user's message reaches the agent's model. Safe content passes through; unsafe content stops the request and returns the refusal message you set. A failed evaluation does not pass silently: the mechanism blocks by default.
Safeguards are reusable policies attached per interface: internal chat, WebWidget, API and the OpenAI-compatible endpoint, plus content processing, which checks untrusted tool output before it returns to the loop.
The built-in classifier runs on the server's CPU, with no graphics card and no internet connection. Every decision is logged with its reasoning, category and risk score.
What went into the prompt, what was retrieved, what the model returned, which tools ran and what it cost, all recorded as a side effect of the system running.
Transparency obligations under Article 50 apply from 2 August 2026. Obligations for Annex III high-risk systems apply by December 2027, which means you are building architecture, not buying a patch.
Underneath it all, two roles. Administrator configures the system and sees every module. User has access only to explicitly assigned agents and Apps.
Decisions are enforced on the server for every protected route, not by hiding buttons. Changing permissions invalidates that user's sessions, the last active administrator cannot be demoted or removed, and every change writes an authorisation record with the subject, action, target and result.
host.internal exposes only the routes you approveThe output filter runs after the response is generated and before it is delivered, replacing detected identifiers with explicit markers, [REDACTED_EMAIL], [REDACTED_PERSON_NAME] while keeping the meaning and structure of the response.
With the filter active, the response is buffered rather than streamed, so no unfiltered fragment gets out early. Only the cleaned text is delivered, stored and audited. If the filter fails, delivery is blocked.
Personal-data filtering is a risk-reduction measure, not a certification. Detection quality depends on language, context and input, and the mechanism should work alongside data minimisation, access control and a retention policy.
Two filters protect every conversation: the input filter stops attempts to hijack the agent (prompt injection) before the content reaches the model, and the output filter masks personal data such as national ID or bank account numbers. Roles and access granted to specific agents and knowledge bases decide who can use what. Keys, rules and logs stay on your server.
Input, cached and output tokens for any date range, with a daily chart and a breakdown by model. You can narrow the view to selected agents, ingresses and knowledge bases, so you can see which use case is expensive.
You set a limit on input tokens, output tokens and number of requests for the whole installation or a chosen scope. The panel shows usage, a cumulative chart with the limit line and a forecast based on usage so far, next to a comparison with the previous month.
A separate panel collects usage of personal-data filters and input filters, the script assistant, speech transcription, agents called by scripts and embeddings. For each you see the number of calls, errors, processing time and tokens.
Send the routine majority of traffic to small or local models, and keep frontier capability for the share of tasks that justifies it. Reported combined savings from tiered routing range from 40 to 80 percent compared with running on frontier models alone.
Each agent has a limit on model–tool rounds, after which it stops, and automatic context compaction once a set threshold is exceeded. A long conversation does not grow forever.
Reasoning tokens are billed as output. For each agent you set the reasoning level and the maximum number of response tokens, with a default for the whole installation.
Many platforms charge for every step an agent takes. With aamp you pay for the completed task, however many steps it needed. You connect models on your own API keys with no middleman margin (BYOK), or run them locally.
Provider and model are assigned to the agent and to host functions, not to one global setting. Data classification decides which model an agent may call, and the same assignment governs which agents can query a DataLake dataset or Data Product.
Run open-weight models on your own hardware next to hosted frontier models, behind one policy boundary. Any OpenAI-compatible endpoint: vLLM, Ollama, LocalAI or TGI.
A second provider is a configured fallback, not an incident you improvise your way through during an outage.
aamp works with any OpenAI-compatible model, in the cloud and locally, for example through Ollama or vLLM. Open models now match closed ones on many tasks, so full privacy does not mean worse results.
Each user sees only the agents they have been given access to. Conversations, attachments and history stay on your server, and the administrator decides who uses which agent.
Published dashboards are open to every signed-in user, including those without admin rights. Each tile has its own form, run button, status and result. One failed tile does not block the others, and two users’ results never mix.
Finished reports, alerts and responses land in the recipient's inbox, with an unread counter in the menu. Nobody has to ask the agent about the status of a task.
An administrator describes the goal and the assistant prepares an agent or an app: it picks the model, integrations and tools, writes the script, creates knowledge sources and a base, runs a test, reads the logs and fixes errors. Changes to network access, publishing, schedules and runs of published versions wait for your approval in the conversation.
Each agent has its own model, instructions, tools, scripts and access to selected data sources. You save changes as a draft and publish them as a new version, and the Agent Flow view shows every dependency on one graph.
You write and test code in the editor, with run history and a console. A script can call a published agent and get a structured result back. Every run happens in a disposable microVM, and in the builder a script becomes a form-based app that can also run on a schedule.
A process wraps a published script in a form and a readable result view, with no frontend to write. A dashboard arranges many such widgets on a 12-column grid: drag, resize, set default parameters and the run mode. Processes and dashboards have drafts, releases and version history.
Integrations such as SSH, TypeSafe or Jina Reader are configured once and attached to scripts. Tool profiles, such as web search or browser control, are attached to agents. Keys stay encrypted on the server.
A source can be files, a list of links or an entire website. A “rolling” base always uses the current content, while a “strict” base works on a frozen, published version. The agent answers with a reference to the source.
You upload CSV or XLSX files as versioned datasets. On top of them you build analytical products, such as recommendations of products bought together. The agent sees only the published version.
On a diagram you define types, such as Customer and Order, their properties and relationships. An AI assistant helps build the model, and every publication creates a version used by the connected agents.
An ingress connects the agent to a channel: an API or a WebWidget embedded with one snippet of code. Each ingress has its own session limits, test address and connection status.
A task combines a published app, its parameters and a cron expression with a timezone. You can also describe the schedule in plain words, such as “every Monday at 10:00”, and the assistant fills in the form. Missed times coalesce into one run, and overlapping executions of the same task are skipped.
Settings cover four areas: general, model providers, users and secrets. Under general you choose the default model and the assistant model, set embeddings and document chunking, Firecracker microVM parameters, WebWidget limits and the background job queue, plus the local protective models: Prompt Guard, the PII filter and the token counter.
Modules in the order you see them in the console: everyday work with agents and apps, building, data sources, and operations and settings.
Each response shows input and output tokens and the cost. The Agent button opens a read-only summary: provider, model, context window, compaction threshold, tool round limit, system prompt and connected tools. The user knows which agent they are talking to, and the administrator does not have to dig through logs.
You see which agent and which ingress handled the conversation, how many messages there were, how many knowledge bases were used and whether safeguards triggered. A session with an error expands down to a single step.
Every knowledge base search and every document fragment read is recorded with the time, session and ingress. It is easy to check what an answer was based on.
For each job you see the knowledge base, status, number of source files, processed chunks and documents, the model used and any error.
Web search, browser or page reading: every use of a tool by the agent is recorded under the profile it came from, with its arguments and result.
Each run records its input parameters, console output, duration and status. This covers manual runs, scheduled runs and runs called by an agent.
A record of every evaluation: which filter triggered, on which channel, and whether the content was passed, blocked or masked.
Provider, model, input, cached and output tokens, response time and a content preview. You can also see whether the request came from an ingress, a knowledge base or a host function.
Key rotations, knowledge base refreshes and widget limit changes are recorded with the previous value, the current value and the author of the change.
Logs are split into areas, with filters for date, agent, session and status. Token usage is summarised separately in the Budget section.
/dev/kvm)We state the requirements plainly and up front. A failed install is a lost customer; an honest list of prerequisites is not.
aamp is a single executable with a local database, running on a Linux server. It does not need a container cluster. Agent code runs in isolated microVMs, and installation and updates can be done offline, from a signed bundle.