Skip to main content

Naylence Agent SDK

Project description

Join our Discord

Naylence Agent SDK (Python)

The Naylence Agent SDK is the official toolkit for building agents and clients on the Naylence Agentic Fabric. It gives you a clean, typed, async-first API for composing tasks, streaming results, and wiring agents together—locally or across a distributed fabric.

If you're new to Naylence, start here. For lower‑level transport/fabric internals, see naylence‑runtime.


Highlights

  • Ergonomic agent model — subclass BaseAgent (one-shot) or BackgroundTaskAgent (long‑running/streaming) and focus on your logic.
  • Typed messages & tasks — Pydantic models for Task, Message, Artifact, and JSON‑RPC A2A operations.
  • Async all the way — non‑blocking lifecycle with easy scatter‑gather helpers (Agent.broadcast, Agent.run_many).
  • Remote proxies — call agents by address or capabilities via Agent.remote_* helpers.
  • Streaming & cancellation — subscribe to live status/artifacts; cancel in‑flight work.
  • FastAPI integration — drop‐in JSON‑RPC router (create_agent_router) and /agent.json metadata endpoint.
  • Security ready — works with runtime security profiles; strict‑overlay requires the naylence‑advanced‑security add‑on.

Install

pip install naylence-agent-sdk

Python 3.12+ is required.


Quickstart (minimal)

import asyncio
from typing import Any
from naylence.fame.core import FameFabric
from naylence.agent import Agent, BaseAgent

class EchoAgent(BaseAgent):
    async def run_task(self, payload: Any, id: Any) -> Any:
        return payload

async def main():
    async with FameFabric.create() as fabric:
        address = await fabric.serve(EchoAgent())
        echo = Agent.remote_by_address(address)
        print(await echo.run_task("Hello, world!", None))

asyncio.run(main())

For a gentle, runnable tour—from single‑process to distributed orchestration—use the Examples repo: https://github.com/naylence/naylence-examples-python.


Core concepts

Agents & tasks

  • Implement run_task(payload, id) for simple one‑shot work, or override start_task(...)/get_task_status(...) for background jobs.
  • Message.parts carries either text (TextPart) or structured data (DataPart).
  • Long‑running flows stream TaskStatusUpdateEvent and TaskArtifactUpdateEvent until terminal (COMPLETED/FAILED/CANCELED).

Remote proxies

  • Agent.remote_by_address("echo@fame.fabric") to call a known address.
  • Agent.remote_by_capabilities(["agent"]) to call by capability (fabric does resolution).

Streaming & cancel

  • subscribe_to_task_updates(...) yields status/artifacts live.
  • cancel_task(...) requests cooperative cancellation when supported by the agent.

RPC operations

  • A2A JSON‑RPC methods (tasks/send, .../get, .../cancel, etc.) are provided for task lifecycle.
  • Custom functions can be exposed via the RPC mixin in the underlying fabric (e.g., streaming operations).

FastAPI router

  • Use create_agent_router(agent) to expose a JSON‑RPC endpoint (default: /fame/v1/jsonrpc) and GET /agent.json to return an AgentCard.

Choosing an agent base class

  • BaseAgent — great for synchronous/short tasks; the default fallback packages your return value into a Task(COMPLETED).
  • BackgroundTaskAgent — best for long‑running/streaming work. You implement run_background_task(...); the base manages queues, TTLs, and end‑of‑stream.

Both base classes include sensible defaults (poll‑based streaming, simple auth pass‑through). You can override any part of the lifecycle.


Development workflow

  • Add your agents in a project with the SDK.
  • Use FameFabric.create() in tests or local scripts to host agents in‑process.
  • For distributed setups, operate a sentinel/fabric with naylence‑runtime (or your infra) and connect agents remotely.
  • Use the Examples repo (https://github.com/naylence/naylence-examples-python) to learn patterns like scatter‑gather, RPC streaming, cancellation, and security tiers.

Security notes

The SDK runs on the Naylence fabric’s security profiles:

  • direct / gated / overlay modes work out‑of‑the‑box with the open‑source stack.
  • strict‑overlay (sealed overlay encryption + SPIFFE/X.509 identities) is available only with the naylence‑advanced‑security package.

See repo links below for the advanced add‑on and images that bundle it.


Links

Docker images:

  • OSS: naylence/agent-sdk-python
  • Advanced: naylence/agent-sdk-adv-python (includes naylence-advanced-security; BSL-licensed add-on)

License & support

  • License: Apache‑2.0 (SDK).
  • Issues: please use the appropriate GitHub repo (SDK, Runtime, Examples, Advanced Security).

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

naylence_agent_sdk-0.3.8.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

naylence_agent_sdk-0.3.8-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file naylence_agent_sdk-0.3.8.tar.gz.

File metadata

  • Download URL: naylence_agent_sdk-0.3.8.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for naylence_agent_sdk-0.3.8.tar.gz
Algorithm Hash digest
SHA256 c6c1d76c881eff8a9eb3fcab6887809914a9573723b2cea6d430ad36e4aa32e9
MD5 9330183797a64587ff0a6b2b2370facb
BLAKE2b-256 abb900c9145baabc7b05eef8b255b508c8a420877ae81cf938c49f050391b820

See more details on using hashes here.

Provenance

The following attestation bundles were made for naylence_agent_sdk-0.3.8.tar.gz:

Publisher: publish-to-pypi.yml on naylence/naylence-agent-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naylence_agent_sdk-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for naylence_agent_sdk-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8bc684b4001e653361b24a27962e075aa78e8903085268d39dd021ffddbf1d5f
MD5 8e7516c00ca75a19dae769ea587eeade
BLAKE2b-256 63d18ab4c1663dcd3f2ea0e6b4ee7056c48d1faa05b62303448641548487b6ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for naylence_agent_sdk-0.3.8-py3-none-any.whl:

Publisher: publish-to-pypi.yml on naylence/naylence-agent-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page