agentship-service
The AgentShip runtime service — the REST / SSE / WebSocket surface that turns a built agent into an HTTP API, with pluggable authentication adapters and, above all, tenant isolation.
This is the part of the stack a gateway cannot replace. A gateway (agentgateway) routes requests and can authenticate them at the edge; but only the app can guarantee that every stored read and write is scoped to the authenticated tenant. That guarantee lives here.
from agentship.auth import ApiKeyAuthProvider, EnvApiKeyStore
from agentship_service import create_app
app = create_app(auth=ApiKeyAuthProvider(EnvApiKeyStore()))
Integrations (we wire, we don't reinvent)
- Streaming —
/v1 …:streamand A2Amessage/streamframe Server-Sent Events withsse-starlette'sEventSourceResponse, which owns the wire encoding, keepalive comments, and client-disconnect cancellation. We only shape eachStreamEventinto its event/data fields. - Auth —
agentship.authships pluggable providers; the optional OIDC path (JwtAuthProvider) delegates JWKS fetching, key-id resolution, and rotation to PyJWT'sPyJWKClient. Tenant isolation on every read/write is the part that stays here. - A2A — we speak the protocol with our own thin Pydantic wire models rather than pull in the
protobuf-first
a2a-sdk. A drift guard under theagentship-service[a2a]extra (tests/test_a2a_conformance.py) validates every AgentCard / Message / status frame againsta2a-sdk's own schema, so we cannot drift from the spec. Seedocs/decisions/0001-integrate-not-invent.md.
See agentship serve for the one-command server, and the phase-04 spec for the full
endpoint contract.
Metadata
Release files for agentship-service 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentship_service-0.0.4.tar.gz | 84.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentship_service-0.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 158.6 kB
Release files / agentship_service-0.0.4.tar.gz
| Download URL | agentship_service-0.0.4.tar.gz |
|---|---|
| Size | 84.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
38770c531ad2d4b2b907edd54b4ebf800ccf62d1531a5231d9b14600a1e2fe33
|
|
BLAKE2b-256 checksum How to use checksums |
029c54f0e06438e541e7af263ac0ffe85771739d015497de3b82e5b3d3ae342e
|
| 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 11, 2026.
Transparency logRelease files / agentship_service-0.0.4-py3-none-any.whl
| Download URL | agentship_service-0.0.4-py3-none-any.whl |
|---|---|
| Size | 73.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
afede9a3ca9aae90483ae868c92f2f26048b0e03d1f16db056bfd12ddfdfc0ef
|
|
BLAKE2b-256 checksum How to use checksums |
4669be833a4763f567e42e4c9502650d7993451babc008438aa57615bab6c4fc
|
| 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 11, 2026.
Transparency log