Installation
Requires Python 3.9 or higher.
pip install metaprise
AgentOS Client
The primary client for all AURA operations. Initialize with your API key.
from metaprise import AgentOS
client = AgentOS(
api_key = "mp-...", # Required. Use env vars in production.
base_url = "https://api.metaprise.ai", # Optional. Default shown.
timeout = 30, # Optional. Request timeout in seconds.
org_id = "acme-corp", # Optional. Scopes all operations to org.
)
| Parameter | Type | Required | Description |
api_key | str | Yes | Your API key (prefixed mp-) |
base_url | str | No | API base URL. Override for on-prem. |
timeout | int | No | Request timeout in seconds. Default: 30 |
org_id | str | No | Organization scope for multi-tenant setups |
MissionDefinition
The four-field declaration that defines what a Mission does. You write the objective — AURA decomposes and executes it.
from metaprise import MissionDefinition
mission = MissionDefinition(
objective = "Reconcile outstanding invoices for Q1",
tools = ["accounting_api", "contract_db"],
authority = "finance_team",
timeout = 3600
)
missions.launch()
Launch a Mission for execution. Returns a MissionHandle with the mission_id for tracking.
POST /v1/missions/launch
Launch a new Mission with the given definition and context.
result = client.missions.launch(
definition = mission, # MissionDefinition object
context = { # Input data for the Mission
"quarter": "Q1-2026",
"entity": "ACME-US"
},
wait = False, # If True, blocks until CLOSED
)
print(result.mission_id) # → "msn_7f3k9..."
print(result.state) # → "CREATED"
missions.stream()
Stream real-time state transitions for a running Mission.
for event in client.missions.stream(mission_id):
print(f"[{event.state}] {event.message}")
if event.state == "CLOSED":
break
missions.get_outcome()
Retrieve the immutable outcome record for a completed Mission.
outcome = client.missions.get_outcome(mission_id)
# Returns: MissionOutcome(status, actions_taken, audit_chain_id, duration_ms, cost_usd, tokens_consumed)
agents.deploy()
Deploy a pre-built agent from the Agent Store or a custom agent definition.
POST /v1/agents/deploy
Deploy an agent with specified configuration.
agent = client.agents.deploy(
agent_id = "compliance-reviewer",
config = {
"model": "metaprise-llm-v1",
"engines": ["compliance", "audit"],
"orchestration": "plan-and-execute",
}
)
agents.run()
Execute a deployed agent against input data.
result = agent.run(
input = "Review for FINRA compliance violations",
documents = ["trade_confirmation.pdf"],
)
print(result.output) # Agent response
print(result.audit_chain) # Cryptographic audit record
agents.list()
GET /v1/agents
List all deployed agents in the current organization.
agents = client.agents.list(status="active")
for a in agents:
print(f"{a.agent_id}: {a.name} ({a.status})")
audit.get_chain()
chain = client.audit.get_chain(audit_chain_id)
for entry in chain.entries:
print(f" {entry.sequence}: {entry.event} → {entry.result}")
audit.verify()
Independently verify the integrity of an entire AuditChain — sequence continuity, hash chain validity, and entry self-verification.
assert client.audit.verify(audit_chain_id) # → True
registry.publish()
registry = client.registry()
registry.publish(MissionPackage(
name="invoice_reconciliation", version="1.0.0",
definition=mission, tags=["finance"], royalty_pct=25
))
registry.discover()
results = registry.discover(tags=["finance"], min_authority="L2")
for r in results:
print(f"{r.name}@{r.version} — {r.description}")
registry.install()