Skip to main content

perceivo

Python SDK for building AI orchestration components: create, validate and run orchestrations locally, then publish them to Perceivo Cloud.

PyPI Python versions CI License

Installation

pip install perceivo

Optional extras add service clients, for example Redis:

pip install "perceivo[redis]"

The extras are redis, milvus, elasticsearch, database and fastapi. Python 3.11, 3.12 and 3.13 are supported.

Quick start

These commands create a project with a starter orchestration, validate it and run it locally. They need no account.

perceivo init
perceivo new orchestration my-first-orch
perceivo validate component ./my-first-orch/agent.py ./my-first-orch/agent.yaml
perceivo validate orchestration ./my-first-orch/
perceivo run orchestration ./my-first-orch/ --input '{"query": "test"}'
# expect: RESULT: PASS

Write your own component

Replace my-first-orch/agent.py with:

import perceivo

@perceivo.agent
async def my_agent(input: perceivo.primitives.AgentInput) -> perceivo.primitives.AgentOutput:
    api_key = await perceivo.secrets.get("ANTHROPIC_API_KEY")
    perceivo.log.info("Processing request")

    # Your logic here
    answer = "Hello from perceivo!"

    return perceivo.primitives.AgentOutput(
        artifact=perceivo.primitives.Artifact(
            type=perceivo.primitives.ArtifactType.JSON,
            data={"answer": answer},
        ),
        response_data={"answer": answer, "result": answer},
    )

Then run the two validate commands and the run command again.

Component Types

Type Decorator Purpose
Start @perceivo.start Entry point — receives initial input
Agent @perceivo.agent Main processor — calls LLMs, makes decisions
Tool @perceivo.tool Utility — API calls, data transforms
End @perceivo.end Exit point — formats final output
FSM @perceivo.fsm State machine — manages state transitions
Policy @perceivo.policy Decision maker — controls FSM transitions
Adapter @perceivo.adapter Schema transformer — maps between formats
Review @perceivo.review Human review — the run waits for a person's decision

SDK Modules

The first group is what a component body normally reaches for; the second is the authoring and local-run side, used by the CLI and by scripts around a project.

Module Purpose
perceivo.primitives Component base classes and their input and output types
perceivo.types Shared types: errors, Page, enums and records
perceivo.params Input parameters declared in the component manifest
perceivo.secrets Secret values declared in the manifest's required_secrets
perceivo.files Organization file storage; .working and .platform are the other two scopes
perceivo.log Structured logging, and log queries by LogType with query
perceivo.flow Port invocation (call connected components)
perceivo.stream Conversation streaming — tokens, messages, history
perceivo.alerts Custom alerts by key; the platform resolves the audience to subscribed org members
perceivo.cost Cost recording and model pricing
perceivo.cluster Redis, Milvus, Elasticsearch, and MCP handles (await ….connect())
perceivo.managed_service Managed AI models and managed databases
perceivo.intelligence Predictions and the feature store of a trained intelligence
perceivo.capabilities Capabilities in the organization and their execution graphs
perceivo.capability Scoring and evaluator components for a capability's runs
perceivo.reviews Completed human-review results
perceivo.component Create, validate, import/export, and list components
perceivo.orchestration Create, load, validate, run, and publish orchestrations
perceivo.validator Validation checks and reports
perceivo.templates The component and orchestration template catalog
perceivo.runner Local execution and run history
perceivo.bootstrap Session lifecycle for a run
perceivo.local Local mode, per-service mock modes, and the call trace
perceivo.config perceivo.yaml loading

For HTTP requests to external APIs (LLMs, etc.), use httpx or the provider's Python SDK directly. Retrieve API keys with perceivo.secrets.get().

Configuration

Create a perceivo.yaml in your project:

version: 1

files:
  working_dir: ./working_files
  org_dir: ./org_files

secrets:
  source: dotenv
  dotenv_path: .env

redis:
  enabled: false
  url: redis://localhost:6379

logging:
  level: INFO
  format: console

Secrets are read from .env in local mode. In Perceivo Cloud, they are resolved from the configured managed secret service.

Local vs Cloud

Local runs exercise the same component interface through local adapters and configured mocks. Cloud runs use managed services and distributed execution, so credentials, service availability, networking, and performance differ even when the component code stays the same. See the documentation for adapter and mocking guidance.

Feature Local Cloud
Secrets .env file Azure Key Vault
Files Local filesystem Azure Blob Storage
Logging Console Loki
HTTP Direct requests Egress broker
Redis Local/in-memory Azure Redis
Execution Single process Managed distributed runtime

Documentation

The complete documentation is at perceivo.ai/docs. The examples directory holds three complete orchestrations, each exactly as it downloads from the website: an import file, one folder per component and a notebook that runs it on your machine.

Support and security

License

Apache 2.0 — see LICENSE.

Metadata

Release files for perceivo 1.0.0

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

Source distribution (sdist)

Source distribution for perceivo 1.0.0
File Size Uploaded
perceivo-1.0.0.tar.gz 529.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for perceivo 1.0.0
File Interpreter ABI Platform
perceivo-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / perceivo-1.0.0.tar.gz

Download URL perceivo-1.0.0.tar.gz
Size 529.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5d2ba904c169569dc1cf867eaa106db1b180c687cb5c2ad4d81898a442246d16
BLAKE2b-256 checksum
How to use checksums
4ccb702dc1e79719970aa8c69164a3c259544c6eb355ff71cf884b0eba4a516f
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 14, 2026.

Transparency log

Release files / perceivo-1.0.0-py3-none-any.whl

Download URL perceivo-1.0.0-py3-none-any.whl
Size 683.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59e044462ea713999d93f13536093e49f4ec331e04a76bb9d05cbfdbaf03d643
BLAKE2b-256 checksum
How to use checksums
ae0289d2f590a5bb7c6db32586d339bd42bf79071a52dc47a606d30ed30dd689
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 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.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