ArmorIQ SDK
Build secure AI agents with cryptographic intent verification.
The ArmorIQ SDK enables developers to build AI agents with built-in security and auditability. Just one API key - no cloud complexity.
Why ArmorIQ?
- Simple - Just one API key, no cloud credentials
- Secure - Cryptographic verification for every action
- Auditable - Complete execution trail
- Fast - Get started in 5 minutes
Installation
pip install armoriq-sdk
CLI commands are also available after install:
armoriq --help
Quick Start
1. Get Your API Key
Visit platform.armoriq.ai to generate your API key.
2. Initialize the Client
from armoriq_sdk import ArmorIQClient
client = ArmorIQClient(
api_key="ak_your_key_here",
user_id="your-user-id",
agent_id="your-agent-id"
)
Or load SDK settings from armoriq.yaml generated by the CLI:
from armoriq_sdk import ArmorIQClient
client = ArmorIQClient.from_config("armoriq.yaml")
3. Capture Your Plan
plan = {
"goal": "Get weather forecast",
"steps": [
{
"action": "get_weather",
"tool": "weather_api",
"inputs": {"city": "Boston"}
}
]
}
plan_capture = client.capture_plan(
llm="gpt-4",
prompt="What's the weather in Boston?",
plan=plan
)
4. Get Intent Token
token = client.get_intent_token(plan_capture)
5. Invoke Actions
result = client.invoke(
mcp_name="weather-mcp",
action="get_weather",
intent_token=token,
inputs={"city": "Boston"}
)
print(result)
Observability
The SDK emits one native OpenTelemetry span tree per agent run — traces, model calls, policy decisions, and tool/command execution — exported over OTLP protobuf. There is no separate JSON telemetry pipeline and no pipeline selector to configure; native OTel is the only path.
Choose one of three exporter destinations via ObservabilityOptions:
from armoriq_sdk import ArmorIQClient
from armoriq_sdk.models import ObservabilityOptions
# 1. ArmorIQ OTLP (default) — spans go to the ArmorIQ backend's
# POST /v1/traces receiver, authenticated with your API key.
client = ArmorIQClient(
api_key="ak_your_key_here",
observability=ObservabilityOptions(exporter="armoriq"),
)
# 2. Generic external OTLP — send spans to any OTLP/HTTP collector
# (an OpenTelemetry Collector, Langfuse, etc).
client = ArmorIQClient(
api_key="ak_your_key_here",
observability=ObservabilityOptions(
exporter="external",
endpoint="https://otel-collector.example.com/v1/traces",
),
)
# 3. Caller-owned tracer provider — the SDK uses your existing
# TracerProvider and never mutates or shuts it down. Because the SDK
# cannot attach its export-time policy re-check to a pipeline it does
# not own, this mode is capped at `metadata`: prompts, completions,
# tool arguments and tool results are never captured, whatever your
# organization's lease allows.
client = ArmorIQClient(
api_key="ak_your_key_here",
observability=ObservabilityOptions(
exporter="provider",
tracer_provider=my_tracer_provider,
),
)
Per-session opt-out, without changing the exporter, via
SessionOptions.observability_enabled=False.
Capture depth (off, metadata, enhanced, debug) is bounded by your
organization's policy first; local settings can only lower it, never raise it.
exporter="provider" lowers it further, to metadata at most.
Breaking change (0.7.0): the legacy in-memory JSON recorder/shipper pipeline,
ObservabilityOptions.pipeline, and theARMORIQ_OTEL_PIPELINEenv var are removed. See CHANGELOG.md for the full list of removed APIs and their replacements.
Documentation
For complete documentation, visit docs.armoriq.ai
- Framework adapter compatibility — tested Python framework versions, lifecycle hooks, and limits for the zero-touch OpenTelemetry adapters.
Links
License
MIT License - see LICENSE file for details.
Metadata
Release files for armoriq-sdk-dev 0.8.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| armoriq_sdk_dev-0.8.9.tar.gz | 231.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| armoriq_sdk_dev-0.8.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 424.8 kB
Release files / armoriq_sdk_dev-0.8.9.tar.gz
| Download URL | armoriq_sdk_dev-0.8.9.tar.gz |
|---|---|
| Size | 231.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2485670d251ea76b876e240a117a1e11e95ffe0fa4a01dd07fc8f143bdefc759
|
|
BLAKE2b-256 checksum How to use checksums |
b0f277e984e064c862361e002ce098b44aa531cbe6862ea97208ed33df9c13b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / armoriq_sdk_dev-0.8.9-py3-none-any.whl
| Download URL | armoriq_sdk_dev-0.8.9-py3-none-any.whl |
|---|---|
| Size | 193.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e814564bc0f1b7522f4a8f1eed291336aed1afa747c0d480cd12a429ce5459e
|
|
BLAKE2b-256 checksum How to use checksums |
da0408c077fb16f38cda18b23ee175d39ebd8437b9644f2e4c0d203f258290b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for armoriq-sdk-dev 0.8.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.