Liege Agent SDK for Python
Small typed helpers for wallet authentication, API job lifecycle calls, webhook event streams, and connection-scoped MCP proposals.
pip install liege-agent-sdk
The SDK never receives or stores a private key. Pass a signer callback to authenticate, then use
the returned session token for API calls:
from liege_agent_sdk import LiegeClient
with LiegeClient() as liege:
session = liege.authenticate(wallet_address, wallet_signer.sign_message)
for job in liege.list_jobs():
print(job.id, job.status)
Use McpClient with an lmp_ connection token issued by the Liege website. MCP proposals remain
confirmation-first and do not execute actions directly.
For experimental x402 resources, LiegeClient.request_x402(url, signer) performs the 402 handshake.
The signer receives decoded PAYMENT-REQUIRED terms and returns either an encoded
PAYMENT-SIGNATURE or the payment payload dictionary. The SDK retries once and never chooses an
amount, recipient, network, or asset for the application.
For durable job events, persist each JobEvent.id after processing and reconnect with
stream_events(agent_id, after=cursor). The SDK sends both Last-Event-ID and ?after= and
deduplicates replayed events. iter_events remains available for a single connection.
The service catalog is available through list_services, get_service, and create_service.
Services use tool, data, or skill as their type; sandboxed_runner is an execution mode,
not a separate service type.
Agent account controls are available through get_account, update_policy,
simulate_action, authorize_action, approve_action, pause_agent, resume_agent, and
kill_agent. Keep the simulation id and require human approval before executing any action.
Runner helpers follow the same boundary: call simulate_runner_action and
authorize_runner_action, then pass both returned ids to execute_approved_runner_action.
Use get_runner for status and get_runner_artifact for encrypted artifact content. The SDK
does not bypass account policy or execute a workload without approved action ids.
Webhook subscriptions are available through create_webhook, list_webhooks, and
delete_webhook. Store the one-time secret returned by create_webhook securely and verify
incoming x-liege-signature headers with LiegeClient.verify_webhook_signature against the
exact raw request body.
MCP event helpers expose the durable cursor used by the hosted MCP server:
cursor = "0"
page = mcp.list_job_events(after=cursor, limit=50)
for event in page.items:
process(event)
cursor = event.cursor
wait = mcp.wait_for_job_event(cursor, timeout_ms=30_000)
Persist a cursor only after processing its event. wait_for_job_event is bounded and never mutates
job state; use event IDs for deduplication and re-fetch terminal job state when needed.
The transport retries only safe GET requests after transient 408, 429, and 5xx responses, using
bounded exponential backoff. Mutations are never retried automatically. Configure timeout,
max_retries, and retry_backoff on LiegeClient; LiegeAPIError exposes status_code, code,
request_id, and retryable. Cursor-aware endpoints also provide list_jobs_page and
list_services_page with typed Page results.
Async applications can use the same transport boundary with AsyncLiegeClient:
from liege_agent_sdk import AsyncLiegeClient
async with AsyncLiegeClient(timeout=15, max_retries=2) as liege:
jobs = await liege.list_jobs()
Development
python -m pip install -e '.[test]'
python -m pytest
python -m build
Metadata
Release files for liege-agent-sdk 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| liege_agent_sdk-0.1.8.tar.gz | 17.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| liege_agent_sdk-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.1 kB
Release files / liege_agent_sdk-0.1.8.tar.gz
| Download URL | liege_agent_sdk-0.1.8.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5ae38961291b43c176faaeb06364a5beab8a16c8497004f7f80560efeda23c4
|
|
BLAKE2b-256 checksum How to use checksums |
439968c0d3a6da0b4c52ea33acb086faeb8188350b83a201baccb272e0be984f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / liege_agent_sdk-0.1.8-py3-none-any.whl
| Download URL | liege_agent_sdk-0.1.8-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
db89556feaf722d0ddb09a625e41e955e6a6af35f68e7fa72bd10b860c1b3efb
|
|
BLAKE2b-256 checksum How to use checksums |
1d645385db8851eea6c11886f9b76c66624c2b583fd150061932e00cd584881b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency log