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.17.tar.gz (26.1 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.17-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: naylence_agent_sdk-0.3.17.tar.gz
  • Upload date:
  • Size: 26.1 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.17.tar.gz
Algorithm Hash digest
SHA256 8eba62443ddeaa82ce9ab42b01cf3ecff6321bfa1c3256b1ac1d2696f60a216d
MD5 33a79210666a31043322d15e91547698
BLAKE2b-256 e764306aedce789c1088538d951fe006ef649d37247d6a8e3389e7f109d3cfe8

See more details on using hashes here.

Provenance

The following attestation bundles were made for naylence_agent_sdk-0.3.17.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.17-py3-none-any.whl.

File metadata

File hashes

Hashes for naylence_agent_sdk-0.3.17-py3-none-any.whl
Algorithm Hash digest
SHA256 90f933ad9924d7a344b74b1a7603be4df8c065ca6dcdfd730e23b44e281625ed
MD5 df15bcb4c31a9e5480870a863f265a49
BLAKE2b-256 7088dbadc6f79a0a64f9ad66a2a95ddedeec121137e7391a583903ed21177cec

See more details on using hashes here.

Provenance

The following attestation bundles were made for naylence_agent_sdk-0.3.17-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