Inspects AI agent projects for ECZ-ID configuration and public evidence posture.
Project description
ECZ-ID AI Agent Inspection
ecz-id-agents statically inspects AI agent manifests for ECZ-ID
configuration posture and declared relationships (tools, APIs, MCP
servers, operator/principal). Part of the ECZ-ID PyPI family. It
inspects, explains and routes only.
It never imports or executes agent code, never loads or runs agent tools, and never reads prompts into results — only their presence is noted, and redaction guards every export. It never issues or activates an ECZ-ID, never prices or carts, and never certifies. It is not a safety/compliance/insurance/premium decision and not a behavioural, alignment, capability or safety proof about the agent. Missing public proof is neutral. Local policy decides. Re-check before reliance.
One-command first run
$ ecz-id-agents inspect ./my-agent
ECZ-ID inspection: ./my-agent [ecz-id-agents]
A. configuration posture : PRESENT
B. public proof posture : NOT_CHECKED (neutral)
...
local policy decides; re-check before reliance
Supported inputs
- A directory or manifest file. Recognised names:
agent_manifest.json,agent.json,agents.json(static JSON only). - Observes declared agent name, model provider, tool / API / MCP / package / repository relationships and the declared operator / principal.
Runtime object inspection (adapter boundary)
For OpenAI Agents, Pydantic AI, LangGraph and CrewAI, you may pass an already-constructed object and get neutral observations back — attributes are read, never called, the framework is identified without importing it, tools are not executed, and prompts are never inlined:
from ecz_id_agents import inspect_agent_object
report = inspect_agent_object(my_agent) # {"observations": [...], "note": "..."}
Privacy boundaries
Static JSON inspection; never imports or executes agent code. Bounded,
symlink-refusing enumeration. No telemetry, no uploads. Prompts are never
inlined; secrets redacted on every export. Offline mode
(--offline / ECZ_ID_OFFLINE=1) skips all network.
Explicit non-claims
Not a safety / certification / compliance / insurance / premium decision. Not a behavioural, alignment, capability or safety proof. Does not issue, activate or bind an ECZ-ID. Does not upload prompts. Does not price or cart.
Python API
from ecz_id_agents import inspect
result = inspect("./my-agent")
print(result.configuration_evidence.posture.value) # PRESENT / PARTIAL / ABSENT / INVALID
CI / test example
$ ecz-id-agents inspect . --json > ecz-id-agents.json # exit 0 for any completed inspection
$ ecz-id-agents doctor --json
Routes
- Resolver: https://resolver.ecocitizenz.org
- TrustOps: https://trustops.ecocitizenz.com/start
- Developer Gateway: https://developers.ecocitizenz.com
- Central Machine Interface: https://machine.ecocitizenz.org/.well-known/ecz-machine.json
Agent Credential and Know-Your-Agent guidance is arranged via TrustOps — this package only routes you there.
Re-check
$ ecz-id-agents recheck ./my-agent --json
Machine-readable integration
Machine Interface · Manifest · Resolver · Operator setup · Developer guidance
Each installation includes structured machine-readable metadata for automation,
CI and supported integrations. Every JSON report embeds a compact
machine_interface object with the canonical roots and safe, read-only actions.
The package runs locally to inspect, explain and route. It does not issue an ECZ-ID, write canonical truth, create public proof, price a cart, or replace Resolver proof.
$ ecz-id-agents manifest --json
$ ecz-id-agents compare ./old ./new --json # neutral drift
$ ecz-id-agents inspect . --sarif # SARIF for code scanning
$ uvx ecz-id-agents inspect . # or: pipx run ecz-id-agents inspect .
- Central Machine Interface: https://machine.ecocitizenz.org/.well-known/ecz-machine.json
- Resolver (read-only public proof): https://resolver.ecocitizenz.org
- Operator setup (TrustOps): https://trustops.ecocitizenz.com/start
- Developer Gateway: https://developers.ecocitizenz.com
Continue with ECZ-ID
- Operator setup: https://trustops.ecocitizenz.com/start
- Developer guidance: https://developers.ecocitizenz.com
- Public Resolver proof: https://resolver.ecocitizenz.org
- Central Machine Interface: https://machine.ecocitizenz.org/.well-known/ecz-machine.json
- EcoCitizenz: https://www.ecocitizenz.com
- Specifications and governance: https://www.ecocitizenz.org
- ECZ-ID on Visual Studio Marketplace: https://marketplace.visualstudio.com/publishers/ecocitizenz
- ECZ-ID on Open VSX: https://open-vsx.org/namespace/ecocitizenz
- Explore the ECZ-ID Python tool family: https://pypi.org/search/?q=ecz-id
Licence and trademarks
Apache-2.0 (see LICENSE, NOTICE). The code licence grants no trademark
rights; “ECZ-ID” and “EcoCitizenz” are trademarks of their owner(s) — see
TRADEMARKS.md. Changelog: CHANGELOG.md. Security: SECURITY.md.
CLI: ecz-id-agents | Import: ecz_id_agents | Plugin group: ecz_id.plugins
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 ecz_id_agents-0.1.1.tar.gz.
File metadata
- Download URL: ecz_id_agents-0.1.1.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8deadb3df7caad8c5306c1506f1c2359d83d73ce776db631343642258fcbaa2b
|
|
| MD5 |
5662c763fbe81a26d70f260f27185fb1
|
|
| BLAKE2b-256 |
0f3f9fc317d808b5130423c1cc5a20dd8b59ef7751ed97bd64744e1ee9eaf76e
|
Provenance
The following attestation bundles were made for ecz_id_agents-0.1.1.tar.gz:
Publisher:
publish-ecz-id-agents.yml on Ecocitizenz/ecz-id-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ecz_id_agents-0.1.1.tar.gz -
Subject digest:
8deadb3df7caad8c5306c1506f1c2359d83d73ce776db631343642258fcbaa2b - Sigstore transparency entry: 2085181219
- Sigstore integration time:
-
Permalink:
Ecocitizenz/ecz-id-python@6f3dee174371df77e454bc7321b263cc5c04c0a6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Ecocitizenz
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-ecz-id-agents.yml@6f3dee174371df77e454bc7321b263cc5c04c0a6 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ecz_id_agents-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ecz_id_agents-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5851dd86c953bb9f5089a16a639088e4719b3f5c071cc738bec624ef5d890e8
|
|
| MD5 |
2eb34082e525b880b99807c37cb937af
|
|
| BLAKE2b-256 |
87bc10d95521e132a59ff5d63624048bae8c819d3a53c6445a91b004b211999a
|
Provenance
The following attestation bundles were made for ecz_id_agents-0.1.1-py3-none-any.whl:
Publisher:
publish-ecz-id-agents.yml on Ecocitizenz/ecz-id-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ecz_id_agents-0.1.1-py3-none-any.whl -
Subject digest:
c5851dd86c953bb9f5089a16a639088e4719b3f5c071cc738bec624ef5d890e8 - Sigstore transparency entry: 2085181370
- Sigstore integration time:
-
Permalink:
Ecocitizenz/ecz-id-python@6f3dee174371df77e454bc7321b263cc5c04c0a6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Ecocitizenz
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-ecz-id-agents.yml@6f3dee174371df77e454bc7321b263cc5c04c0a6 -
Trigger Event:
workflow_dispatch
-
Statement type: