Skip to main content

JEP-Agent SDK 2.1 — JEP Core 0.7

Record signed statements about agent calls and inspect their evidence. The current source implements JEP Core 0.7; historical 2.0.x releases implement the earlier JEP-04/JAC-01 format. See migration before upgrading.

JEP is an individual IETF Internet-Draft, not an IETF-endorsed standard. Valid signatures do not establish factual truth, authorization, legality, successful external execution, or payment readiness.

Install

pip install jep-agent-sdk
# Optional framework dependencies:
pip install 'jep-agent-sdk[langchain,openai]'

For source development, clone this repository and use pip install -e '.[dev]'. Imports use jep_agent; the command is jep-agent, independent of jep-sdk-py and jep-cli.

Signed trace

from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
from jep_agent import AuditChain, record

key = Ed25519PrivateKey.generate()
chain = AuditChain("agent:example", private_key=key)

@record(issuer=chain.issuer, chain=chain)
def task(value):
    return value * 2

assert task(21) == 42
assert chain.verify_chain(key.public_key())
chain.save("events.jsonl")

Recording without a key is allowed for local traces, but produces unsigned, unverified records. Use a securely persisted key in a real deployment; this example generates a temporary key.

Core and companion boundaries

Concern Behavior
Event Identity Stable (who, id)
Signing payload RFC 8785 canonical unsigned event
Baseline signature Detached JWS, alg: Ed25519, protected kid
Event Hash SHA-256 of the complete signed artifact, including sig
Validation Independent syntax, cryptographic, extension and requested profile checks
Retry Same identity and unsigned content returns already_accepted
Conflict Same identity with different unsigned content is rejected
Freshness / audience Checked only when requested
Unknown critical extension Rejected before acceptance
Audit-chain linkage ext['jep-agent.chain']; separate from Core ref
Task linkage Local ext['jep-agent.jac'] companion; no formal JAC conformance claim

The in-memory JEPVerifier acceptance store is for a single process. It is not a durable distributed acceptance service. An independently trusted public key must be supplied; kid alone does not prove actor identity. Reference resolution, actor binding, domain policy and external effects remain unchecked unless provided by a separate profile or application.

A function failure/cancellation produces a result statement, not a Core Termination event. Async tracing records completion only after the call finishes.

Inspect and verify

jep-agent verify events.jsonl --public-key public-key.pem
jep-agent export events.jsonl --output report.html
jep-agent web --port 8080

The CLI checks Core signatures and any local audit-chain links. It does not resolve arbitrary external references. The viewer and HTML export show recorded relationships and Signed (unverified) status; visual links do not establish causality or legal responsibility.

Framework adapters are experimental: the OpenAI adapter targets synchronous Chat Completions, and the LangChain auto patch targets historical AgentExecutor APIs. New signed integrations use the callable recording path. The separate Agents SDK middleware is a retired unsigned observation experiment; it is not the maintained Core integration path.

Development

pip install '.[dev,langchain,openai]' build
make lint
python -m pytest -q
python validate.py
python -m build --wheel
python scripts/check_coexistence.py dist/*.whl

CI uses fixed Core 0.7 J/D/T/V vectors and a commit-pinned independent Core validator. It also installs the built wheel beside the Python SDK and CLI in both orders and checks independent uninstalls.

BSD-3-Clause. Author: Yuqiang Wang, HJS Foundation, signal@humanjudgment.org.

Metadata

Release files for jep-agent-sdk 2.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jep-agent-sdk 2.1.4
File Size Uploaded
jep_agent_sdk-2.1.4.tar.gz 49.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jep-agent-sdk 2.1.4
File Interpreter ABI Platform
jep_agent_sdk-2.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 81.0 kB

Release files / jep_agent_sdk-2.1.4.tar.gz

Download URL jep_agent_sdk-2.1.4.tar.gz
Size 49.0 kB
Tags Source
SHA-256 checksum
How to use checksums
27a759e652b0d17130176163932163813eb2f01e91410abf0c83996baa15a01c
BLAKE2b-256 checksum
How to use checksums
0ab86699fc6bde15d0e743d1bea74ef9a21954031085c5b8e6289af867845cd5
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 Sep 27, 2026.

Transparency log

Release files / jep_agent_sdk-2.1.4-py3-none-any.whl

Download URL jep_agent_sdk-2.1.4-py3-none-any.whl
Size 32.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6d611cb07545520cdc2fd995bc1baa8ed1f58efca832380ca5e5d85bfabd2fc
BLAKE2b-256 checksum
How to use checksums
5bb873a94fa8c9eb8ab478df46b0ddeafb24b6e134b3aee7249b79e3aaef173a
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 Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

This release

2.1.4 This release

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.0.0

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page