Python SDK for Aionis Memory Graph API
Project description
aionis-sdk
Python SDK for Aionis Memory Graph API.
Install
pip install aionis-sdk==0.2.21
Local Lite Runtime
The Python SDK is a client package.
For local development, use the official Aionis CLI from the TypeScript package to start Lite:
npx @aionis/sdk@0.2.21 dev
Then point the Python client at the local base URL:
from aionis_sdk import AionisClient
client = AionisClient(base_url="http://127.0.0.1:3321")
This is the recommended path for:
- Python SDK evaluation
- local write/recall/handoff/replay testing
- single-machine developer setup without a separate local Aionis repo
Usage
import os
from aionis_sdk import AionisClient
client = AionisClient(
base_url="http://127.0.0.1:3321",
timeout_s=10.0,
api_key=os.getenv("API_KEY"), # optional: X-Api-Key
auth_bearer=os.getenv("AUTH_BEARER"), # optional: Authorization: Bearer <token>
admin_token=os.getenv("ADMIN_TOKEN"), # optional: X-Admin-Token
)
out = client.write(
{
"scope": "default",
"input_text": "python sdk write",
"auto_embed": False,
"nodes": [{"client_id": "py_evt_1", "type": "event", "text_summary": "hello python sdk"}],
"edges": [],
}
)
print(out["status"], out["request_id"], out["data"]["commit_id"])
For Aionis Doc continuity flows, the Python client now also exposes high-level helpers:
resumed = client.doc_recover_and_resume(
{
"recover_request": {"anchor": "aionis-doc:workflow-001", "scope": "default"},
"input_kind": "handoff-store-request",
"candidates": ["resume_patch", "request_review"],
"feedback_outcome": "positive",
}
)
print(resumed["resume_summary"]["resume_state"])
print(resumed["resume_summary"]["lifecycle_transition"])
For a complete Python + CLI first-run flow, see:
Typed payloads
0.2.0+ exports TypedDict API payloads from aionis_sdk.types:
from aionis_sdk import AionisClient
from aionis_sdk.types import ToolsFeedbackInput, ToolsSelectInput
client = AionisClient(base_url="http://localhost:3001")
select_payload: ToolsSelectInput = {
"scope": "default",
"run_id": "run_001",
"context": {"intent": "json", "provider": "minimax", "tool": {"name": "curl"}},
"candidates": ["curl", "bash"],
"strict": True,
}
select_out = client.tools_select(select_payload)
decision_id = (select_out.get("data") or {}).get("decision", {}).get("decision_id")
feedback_payload: ToolsFeedbackInput = {
"scope": "default",
"run_id": "run_001",
"decision_id": decision_id,
"outcome": "positive",
"context": {"intent": "json", "provider": "minimax", "tool": {"name": "curl"}},
"candidates": ["curl", "bash"],
"selected_tool": "curl",
}
client.tools_feedback(feedback_payload)
client.tools_run({"scope": "default", "run_id": "run_001"})
Auth Options
api_key: sendsX-Api-Key.auth_bearer: sendsAuthorization: Bearer <token>.admin_token: sendsX-Admin-Token(debug/admin flows).
Covered methods
writerecallrecall_textcontext_assembleplanning_contextfindlist_sessionscreate_sessionwrite_eventlist_session_eventspack_exportpack_importarchive_rehydratenodes_activatehandoff_storehandoff_recoversandbox_create_sessionsandbox_executesandbox_run_getsandbox_run_logssandbox_run_artifactsandbox_run_cancelrules_evaluaterules_statetools_selecttools_decisiontools_runtools_feedbackfeedbackreplay_run_startreplay_step_beforereplay_step_afterreplay_run_endreplay_run_getreplay_playbook_compile_from_runreplay_playbook_getreplay_playbook_candidatereplay_playbook_promotereplay_playbook_repairreplay_playbook_repair_reviewreplay_playbook_runreplay_playbook_dispatchautomation_createautomation_getautomation_listautomation_telemetryautomation_assign_reviewerautomation_promoteautomation_validateautomation_graph_validateautomation_shadow_reportautomation_shadow_reviewautomation_shadow_validateautomation_shadow_validate_dispatchautomation_compensation_policy_matrixautomation_runautomation_run_getautomation_run_listautomation_run_assign_reviewerautomation_run_cancelautomation_run_approve_repairautomation_run_compensation_retryautomation_run_compensation_assignautomation_run_compensation_record_actionautomation_run_resumeautomation_run_reject_repairdoc_recoverdoc_resumedoc_recover_and_resumehealthget_capability_contract
Admin/control methods (require admin_token):
control_upsert_tenant,control_list_tenants,control_upsert_projectcontrol_create_api_key,control_list_api_keys,control_list_stale_api_keys,control_revoke_api_key,control_rotate_api_keycontrol_create_alert_route,control_list_alert_routes,control_update_alert_route_status,control_list_alert_deliveriescontrol_enqueue_incident_publish_job,control_list_incident_publish_jobs,control_replay_incident_publish_jobscontrol_upsert_tenant_quota,control_get_tenant_quota,control_delete_tenant_quotacontrol_upsert_sandbox_budget,control_get_sandbox_budget,control_delete_sandbox_budget,control_list_sandbox_budgetscontrol_list_audit_events,control_get_tenant_dashboard,control_get_tenant_diagnosticscontrol_get_tenant_incident_publish_rollup,control_get_tenant_incident_publish_slo,control_get_tenant_timeseries,control_get_tenant_key_usage
Error model
AionisApiError: API returned non-2xx response.AionisNetworkError: request timeout/network failure.
Capability-aware helpers:
is_backend_capability_unsupported_error(err)parse_backend_capability_error_details(err.details)is_shadow_dual_write_strict_failure_error(err)parse_shadow_dual_write_strict_failure_details(err.details)
from aionis_sdk import AionisApiError, is_backend_capability_unsupported_error
try:
client.pack_export({"scope": "default"})
except Exception as err:
if is_backend_capability_unsupported_error(err):
print(err.details.get("capability"), err.details.get("failure_mode"))
elif isinstance(err, AionisApiError):
print(err.code, str(err))
Smoke
set -a; source .env; set +a
npm run sdk:py:smoke
Build check (repo local)
npm run sdk:py:compile
npm run sdk:py:release-check
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aionis_sdk-0.2.21.tar.gz.
File metadata
- Download URL: aionis_sdk-0.2.21.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c69af77731bea157401fceeddccda82e9bd05af521abd75d15ffe1384a61946
|
|
| MD5 |
e8d733015425d0c7fa3937e009ca1ab6
|
|
| BLAKE2b-256 |
78f0f3a3e58fe24ce8e7354ba7dd137fcb26d10ffc0891ca69a4f06375d694c1
|
File details
Details for the file aionis_sdk-0.2.21-py3-none-any.whl.
File metadata
- Download URL: aionis_sdk-0.2.21-py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
779cda425c022baa5cd205a8bd0cb73020ff14c60255171205b7e7d9d1c63a05
|
|
| MD5 |
4952c257909f0cc20508bfd69c67ce21
|
|
| BLAKE2b-256 |
eefe8d811e990c8a16adcfe50cd57f14710dbcea233368651da3ea18a04e1778
|