InvarraCustomer portal

Phalanx

How Phalanx governs agent actions

Phalanx is a gateway you run in your own infrastructure, between your AI agents and the systems they change. Here is what it checks, how each decision is enforced at execution, what it records, and what your architecture needs.

From proposal to recorded outcome

The five steps from an agent's proposal to a recorded outcome 1, Propose: the agent calls a tool with no credential attached. 2, Decide: Phalanx checks the contract, state, evidence and limits. 3, Permit: a one-use permit covers that exact operation. 4, Execute: the protected connector rechecks, then uses its own credential. 5, Record: Phalanx records the verified result, or marks it uncertain. Step 1 belongs to your application, steps 2, 3 and 5 to Phalanx, and step 4 to the protected connector. Your application Phalanx Protected connector Phalanx 1 2 3 4 5 ProposeDecidePermitExecuteRecord The agent calls a tool.No credential attached. Contract, state, evidenceand remaining limits. One use, for thatexact operation. Rechecks, then usesits own credential. Verified result, ormarked uncertain. PERMITHOLDBLOCK
The five steps from an agent's proposal to a recorded outcome 1, Propose: your application's agent calls a tool with no credential attached. 2, Decide: Phalanx checks the contract, state, evidence and limits, and returns PERMIT, HOLD or BLOCK. 3, Permit: a one-use permit covers that exact operation. 4, Execute: the protected connector rechecks, then uses its own credential. 5, Record: Phalanx records the verified result, or marks it uncertain. 1 2 3 4 5 Your application Propose The agent calls a tool.No credential attached. Phalanx Decide Contract, state, evidence and limits. PERMITHOLDBLOCK Phalanx Permit One use, for that exact operation. Protected connector Execute Rechecks, then uses its own credential. Phalanx Record Verified result, or marked uncertain.

Three parts stay separate, so the component that proposes an action is never the one that can perform it.

Your application and agent

Reasons, chooses tools and proposes actions. Your application supplies the authenticated user, resource and task. The agent holds no credential for a protected action.

Phalanx

Checks authority and the contract, tracks budgets, evaluates evidence, issues one-use permits and records execution state. It runs as its own service; your business logic is not copied into it.

Protected connector

Holds the business credential, rechecks the permit's conditions, performs the operation and reports the result for verification. It can be your existing API or a small isolated service.

Five steps, every time

  1. Propose.

    The agent calls a tool. The SDK adapter sends Phalanx the proposal, with the user and task your application authenticated.

  2. Decide.

    Phalanx evaluates the action against its contract, current state, required evidence and remaining limits, and returns PERMIT, HOLD or BLOCK.

  3. Permit.

    A permitted action receives a one-use permit bound to that exact operation.

  4. Execute.

    The protected connector rechecks the conditions and performs the operation with its own credential.

  5. Verify and record.

    Phalanx records the verified result, or marks it uncertain, and links it to the decision.

You define the contract. Phalanx enforces it.

A contract describes one action precisely: what it touches, who may trigger it, where it may go, what state it depends on and which limits apply. Contracts are versioned files that you review and then activate explicitly. Staging a contract does not activate it.

A contract can specify

  • The tool, its effect class and the resource it acts on
  • The authenticated actor it requires
  • The exact connector destination: scheme, host, port, method and path
  • A reference to the credential, never the secret itself
  • The request and response fields allowed, and the result schema
  • State dependencies and revision checks
  • When the action is PERMIT, HOLD or BLOCK, and what resolves a HOLD
  • Count limits, value limits in exact currency units, evidence freshness and task lifetime
  • How the result is verified, and whether the action can be reversed

Six kinds of action

Effect classWhat it governs
READRetrieving account information or a bounded query result
WRITEChanging a declared record or resource
EGRESSSending a message or information to an approved destination
ACCOUNT_MUTATIONChanging customer or account state
FINANCIALA monetary operation you declare, in exact currency units
EXPORT_SHAREExporting or sharing declared information

These are categories of action, not a catalogue of prebuilt integrations. Each protected action needs a connector to the API that performs it.

Three decisions. Each one means something specific.

DecisionWhat it meansWhat happens
PERMITThe action meets every condition in its contract.A one-use permit lets the connector perform that exact action. Execution and verification are recorded separately.
HOLDAn approval, fact or piece of evidence still needs authorized resolution.Nothing executes. An authorized operator inspects and resolves the HOLD, and Phalanx rechecks the conditions.
BLOCKThe action is outside the task's authority or your rules.No permit is issued. The connector never receives the request.

HOLD is a real workflow state, not a prompt asking the chatbot to approve itself. Neither the agent nor the caller that proposed the action can resolve it.

Your application decides how each decision appears to your users. Phalanx returns machine-readable results, identifiers and receipt references; the wording is yours.

A good plan is not a permit.

A permit is bound to one action: the signed configuration, the resource, the exact operation and the state it depends on. It works once. The connector rechecks those conditions immediately before it uses the credential.

Connector routes are fixed in configuration. The agent can't supply a new URL, header, credential, protocol or retry policy through its arguments.

If a route is unknown, disabled, mismatched, stale or ambiguous, the action stops. If Phalanx or an evidence source is unavailable, nothing falls back to a direct executor.

A one-use permit, rechecked by the connector Illustration. A one-use permit covers one WRITE action on case 5521, one exact operation, and a dependency on the record still being at revision 8. It can be used once. Before executing, the protected connector rechecks the signature and configuration, the resource and operation, and that the record is still at revision 8. Only then does it execute, once. One-use permit p_3e91 signed by Phalanx ActionWRITE case.status Resourcecase 5521 Depends onrevision 8 Uses1 of 1 Protected connector rechecks Signature and active configuration Same resource, same exact operation Record still at revision 8 Then it executes, once, with its own credential. Illustrative identifiers.

Control what the agent can see, not only what it can change.

Sensitive reads go through the same gateway. Protected data is released only after the permitted read has executed and its result matches the declared schema. A held, blocked or failed read returns nothing protected. Bounded list and search queries are supported too, with declared filters and a fixed route.

One task, one budget, across every participating tool.

Without a shared budget, each tool enforces its own limit, and an agent that spreads one task across three tools gets three allowances. In a configured shared workflow, participating tools draw from one task budget. Phalanx records usage across the workflow and applies what remains to every later action.

A workflow can limit

  • The total number of actions
  • The number of actions per integration
  • Money, in an exact currency and unit
  • How much information is disclosed
  • How long the task lives, bound to one user and session

Budgets are durable, so retries and restarts don't reset recorded usage. A workflow groups 2 to 32 integrations and is opt-in. Tools you don't group keep their own independent limits.

Three tools drawing from one shared task budget Illustration. A task has one budget of 10 actions in a configured shared workflow. The email tool sends 4 messages and the ticket tool makes 5 updates; both are permitted, leaving 1 action. The SMS tool then proposes 2 messages, which exceeds the 1 remaining, so it is held. Without a shared budget, each tool could have used all 10 on its own. One task budget 10 actions Email 4 Tickets 5 1 left Email toolsends 4 messages PERMIT Ticket toolmakes 5 updates PERMIT SMS toolproposes 2 messages, only 1 left HOLD Without a shared budget, each tool could use all 10 on its own. Illustrative. Hold or block is set per contract.

Let your own data decide how much the agent may do.

A task maximum is a ceiling, not an entitlement. With Evidence Bridge, a contract can require an authoritative field in your system, such as an entitlement recorded for the customer, to support the value the agent proposes. Dynamic Autonomy then narrows the agent's authority to what that evidence supports, never above the maximum you set.

Missing, stale, invalid or conflicting evidence never widens authority. The checks are deterministic: numeric values from your system, compared by rules you declared. No model is involved.

Evidence narrows the agent's authority below the task maximum Illustration. On a scale from €0 to €500, the task maximum is €500. The entitlement recorded for this customer in your system is €120, so the agent's authority for this task is €0 to €120. A €90 request falls inside it and is permitted. A €300 request is under the €500 maximum but above the evidence, so it is not permitted. Task maximum: €500 set by your application Evidence: entitlement €120 read from your system of record Allowed Under the maximum, not supported €0 €500 €90 request PERMIT €300 request Not permitted Being under the maximum isn't enough. Your data has to support the amount.

When a response is lost, Phalanx doesn't guess.

If a connector accepted an operation but its reply never arrived, the action is marked UNCERTAIN. Phalanx won't send it again blindly. The outcome is reconciled first, using the operation's stable identity. A retry of the same operation is recognised as the same operation; a new action with different arguments is evaluated as new.

What "exactly once" can mean depends on the system at the other end. Some support idempotency keys, some are transactional, some only allow at-most-once delivery. The contract states which applies, and Phalanx enforces it. It doesn't promise exactly-once behaviour from a system that can't provide it.

A lost response is reconciled, not retried blindly Illustration. 1: sending a case update to a customer is permitted as operation op_7f2c. 2: the connector sends it through the email service. 3: the reply is lost, so the outcome is recorded as UNCERTAIN and nothing is sent again. 4: Phalanx reconciles by looking up op_7f2c. 5: the service confirms the message was already sent, so the outcome is EXECUTED and no duplicate is sent. 1 Customer update permitted operation op_7f2c 2 Connector sends it by email the reply never arrives 3 Recorded UNCERTAIN Not sent again. Outcome unknown. 4 Reconcile op_7f2c with the service same operation identity 5 Recorded EXECUTED It was already sent. No duplicate. Illustrative. Guarantees depend on the target system.

Records you can verify, not just logs you can read.

Each receipt links a decision to its task, the action, the execution attempt and the verified result. Receipts are signed and form an authenticated, ordered chain, so a missing or altered record is detectable.

Verification tells you what is wrong, not just that something is: an absent receipt, an incomplete chain, a corrupt chain, or verification that couldn't run.

A signed, ordered chain of receipts Illustration. Four linked receipts. Receipt 0419 records a PERMIT decision to read account A-102. Receipt 0420 records the connector attempt. Receipt 0421 records the outcome EXECUTED, with a result that matched the declared schema. Receipt 0422, for a different action, records UNCERTAIN, awaiting reconciliation. Each receipt references the one before it, and the chain verifies intact. r_0419 prev r_0418 Decision PERMIT: read account A-102 r_0420 prev r_0419 Attempt: connector called with permit r_0421 prev r_0420 Outcome EXECUTED: result schema checked r_0422 prev r_0421 Outcome UNCERTAIN: to reconcile Chain verified: 4 of 4 receipts intact Signed and ordered. A missing or altered receipt is detected. Illustrative identifiers.
StatusMeaning
PERMITTEDAuthorized. Completion not yet verified.
EXECUTEDThe effect was verified under the connector's contract.
HELDWaiting for authorized resolution. Nothing executed.
BLOCKEDOutside authority. Nothing executed.
UNCERTAINThe available evidence can't establish what happened. Reconciliation required.

Receipts are tamper-evident evidence about the governed execution path. They are not a compliance certification and don't prove facts outside that path.

Runs in your infrastructure, next to the credentials it protects.

The usual footprint is one Phalanx service plus persistent storage. Add a protected backend only if your agent's process holds business credentials today; that is one boundary, not one service per tool. Authorization decisions happen inside your deployment. Invarra's control plane handles your identity, licence and signed releases.

Where Phalanx runs Inside your infrastructure: your application and AI agent, which hold no business credentials; the Phalanx service with its durable state; the protected connector, which holds the credential; and your business systems. Proposals flow from the application to Phalanx, one-use permits from Phalanx to the connector, and calls from the connector to your systems. Outside: your model provider, connected to your application, and the Invarra control plane, which supplies the licence and signed releases to Phalanx. Your model provider Invarra control plane licence, signed releases Your infrastructure Your application and agent no business credentials proposal Phalanx decides, permits, records Durable state one-use permit Protected connector holds the credential Your business systems billing, CRM, email, databases Decisions and records stay here. Usually one Phalanx service plus storage.
Qualified in 1.9
Self-managedLinux (amd64) with Docker or Docker Compose
Managed on RenderA Render private service on your account, with one writer and a persistent disk
AdministrationThe signed Phalanx CLI on Linux (amd64)
Your applicationHTTP/JSON or the TypeScript SDK
StoragePersistent storage you own

Two questions decide whether Phalanx can protect an action.

  1. Can the action be routed through the Phalanx gateway, the SDK or its tool-dispatch adapter?

  2. Can its real credential live behind a protected connector, with every equivalent direct route removed?

Two yeses and it can be protected. Any no, and the architecture has to change first. Your model provider and cloud don't decide it; the execution route does.

Three application architectures 1, Plug, configure, play: agent, your tool API, Phalanx, protected connector, business system. Supported. 2, Adapt, plug, configure, play: agent, your dispatcher with the Phalanx adapter, Phalanx, protected connector, business system. Supported. 3, Direct execution: the agent holds the credential and calls the business system directly, bypassing Phalanx. Can't be protected as-is. 1 Plug, configure, play Supported Agent Tool API Phalanx Connector System Point your existing tool interface at Phalanx. 2 Adapt, plug, configure, play Supported Agent Dispatcher+ adapter Phalanx Connector System A one-time hook where your agent dispatches tools. 3 Direct execution Can't protect as-is Agent+ credential Phalanx System bypassed The architecture has to change first.

Built to be operated, upgraded and recovered.

Administered by CLI and API

A signed CLI and an authenticated admin API cover enrolment, contract review and activation, HOLD resolution, credential and caller management, and receipt verification.

Ready means ready

Readiness reflects loaded, usable authority, not just a running container. An invalid or half-loaded configuration blocks protected actions until it is fixed.

Encrypted backup and verified restore

Full-state backups are encrypted to a key only you hold. Restores are checked against identity and history, and unsafe stale snapshots are rejected.

Upgrades that keep history

Upgrades preserve keys, receipts, budgets and unresolved operations. A rollback restores the matching state and the matching signed image together.

Recovery restores Phalanx's own state. It can't reverse actions already completed in external systems.

What you get, and what Phalanx doesn't do.

Included in the 1.9 release

  • Signed runtime image for Linux (amd64)
  • Signed customer CLI for administration
  • TypeScript SDK @invarra/phalanx, with proposal clients and tool-dispatch adapters
  • Versioned JSON schemas for integrations, proposals, workflows, evidence and results
  • Example configurations: starting points, never default approvals
  • Deployment material for Linux/Docker and Render
  • Integration, deployment and recovery documentation, a software bill of materials and third-party notices

Not what Phalanx is for

  • Judging whether your chatbot's sentences are true. Phalanx governs actions.
  • Learning policy. Decisions follow the rules you declare, over facts you declare.
  • Protecting an action the agent can still perform another way. Other credentials and direct routes must be closed.
  • Plugging into an application whose tool execution you can't change.
  • Running as a service operated by Invarra. You run it.
  • Certifying compliance. Records are evidence, not certification.

Questions engineers ask first

How is this different from a guardrail or a scoped API key?

Those check what the agent says, or which tools it may call. Phalanx decides whether a specific action executes, and the agent never holds the credential to act without it. The homepage compares them side by side. Compare

Does Phalanx work with my model provider?

Yes. Phalanx governs the tool calls your agent proposes, not the model. You choose, run and pay for your model separately.

Does Phalanx use AI to make its decisions?

No. Decisions are deterministic: your contracts, applied to declared state and evidence. The runtime is CPU-based and needs no Phalanx-trained model or GPU.

Which integrations are supported?

HTTP/JSON connectors to your own APIs, the TypeScript SDK and generic tool-dispatch adapters. Phalanx doesn't ship vendor-specific connectors; you point a connector at the API that performs the action.

Does it work with MCP?

The supported integration path in 1.9 is HTTP/JSON and the TypeScript SDK. Tell us about your MCP setup; we'll only describe an MCP adapter as supported once it has been qualified.

What happens if Phalanx is unavailable?

Protected actions stop. Nothing falls back to a direct route around the gateway.

Is there a user interface for writing contracts?

The Phalanx contracts interface is in the Invarra customer portal. Guided forms will let you create, edit, validate and version action contracts, shared-workflow limits and supported evidence settings. You'll be able to review a readable summary, approve it and download schema-valid configuration.

How is Phalanx licensed?

Your licence sets the release channel, environments and number of deployments. Contact us for pricing.

Bring one action. We'll show you how Phalanx would govern it.

Tell us what the agent should do, the system it touches and the limit that matters. We'll tell you plainly whether your architecture fits and what an evaluation should prove.