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 0.8.17
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 | Actions |
|---|---|---|---|---|
| armoriq_sdk-0.8.17.tar.gz | 244.4 kB | Without provenance | Details for armoriq_sdk-0.8.17.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| armoriq_sdk-0.8.17-py3-none-any.whl | Python 3 | none | any | Details for armoriq_sdk-0.8.17-py3-none-any.whl |
Total release size: 449.0 kB
Release files / armoriq_sdk-0.8.17.tar.gz
| Download URL | armoriq_sdk-0.8.17.tar.gz |
|---|---|
| Size | 244.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
33ae92d45576449b3ee673ed0d104870ca80633779a89d9f89f54824910d9ba8
|
|
BLAKE2b-256 checksum How to use checksums |
554bd5744d9bcbebd94f3223f87a757fc0ecf39cc9555fdef2386522ffb82b47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / armoriq_sdk-0.8.17-py3-none-any.whl
| Download URL | armoriq_sdk-0.8.17-py3-none-any.whl |
|---|---|
| Size | 204.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
52315dc8b74330b6242c520b3e156d9b29488d239e5574bb1e08e76787d52d4c
|
|
BLAKE2b-256 checksum How to use checksums |
03f411c471edb2cb9e9924962858bb55b087b8816cd91d61f733d6d75e3c77af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for armoriq-sdk 0.8.17
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.