aif-normative-agent
PyPI distribution for the Norm-Native Agent SDK (normative_agent).
Thin HTTP client + Runtime tool loop over remote EDA, Normbase, and Schemo APIs. Does not ship Normbase, EDA server, Platform, MCP adapters, or Facilitator code.
Sibling package: aif-mcp (MCP tool surface over the same HTTP APIs).
Install
pip install aif-normative-agent
# optional DuckDuckGo fallback for built-in search_web:
pip install "aif-normative-agent[web]"
Editable install from monorepo (full-stack development):
pip install -e .
# at AIF repository root (aif-normbase)
SDK-only wheel build (this directory):
cd packaging/normative-agent
python sync_sources.py
python -m build --wheel
python verify_wheel.py dist/aif_normative_agent-0.3.8-py3-none-any.whl
python verify_wheel_imports.py dist/aif_normative_agent-0.3.8-py3-none-any.whl
Or from repo root:
pwsh ./scripts/publish/publish_normative_agent.ps1
Verify import
python -c "from normative_agent import NormativeAgent; print('ok')"
Configuration
| Variable | Purpose |
|---|---|
AIF_AGENT_API_KEY |
Agent API key for NormativeAgent.from_api_key |
AIF_PLATFORM_URL |
When set, SDK routes EDA/Normbase/Schemo via Platform integrator (recommended for external apps) |
EDA_BASE_URL |
EDA HTTP API when not using Platform mode (default http://localhost:8002) |
NORMBASE_BASE_URL |
Normbase HTTP API when not using Platform mode (default http://localhost:8001) |
SCHEMO_QUERY_BASE_URL |
Schemo read API when not using Platform mode |
AIF_INTERNAL_SERVICE_TOKEN |
Optional internal Bearer for mixed deployments |
AIF_WEB_SEARCH_ENABLED |
Built-in search_web tool (default true) |
AIF_WEB_SEARCH_API_KEY / TAVILY_API_KEY |
Tavily API key (primary provider for search_web) |
AIF_WEB_SEARCH_MAX_RESULTS |
Default max results for search_web (default 5) |
Monorepo note
Source lives under normative_agent/, plus shared helpers ontology/schemo/client, ontology/schemo/contracts, and security/auth (same shared layer as aif-mcp).
Norm bind build logic stays in eda_agent/norm_projection.py (server). SDK formats EDA bound_norm_projections via normative_agent.situation.projection_format.
Developer guide: devkit/host-app/sdk/developer-guide.md (shipped with devkit; not in the wheel).
Host app docs: devkit/host-app/ — copy host-app/ folder to external projects.
Publish: pwsh ./scripts/publish/publish_normative_agent.ps1
Package scope
Bundled:
normative_agent(Situation + Runtime)ontology.schemo.client/contractssecurity.auth
Not bundled:
eda_agent,normbase,aif_platform,integrations,llm(docs live underdevkit/host-app/sdk/)
Optional LLM semantic governance uses monorepo llm or inject your own ToolCallingModel / SemanticTriggerClassifier.
Metadata
Release files for aif-normative-agent 0.3.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aif_normative_agent-0.3.8-py3-none-any.whl | Python 3 | none | any | Details |
Release files / aif_normative_agent-0.3.8-py3-none-any.whl
| Download URL | aif_normative_agent-0.3.8-py3-none-any.whl |
|---|---|
| Size | 111.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15cacdac62b1125c5b86b3787392f7f2d10c2e020c0b76edffa6cd8184ad52c0
|
|
BLAKE2b-256 checksum How to use checksums |
4c2f841cd582c231fb1a807548eb971dc85f548f8ca3168ef2f39c710cf281e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.14
|
Security for aif-normative-agent 0.3.8
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.