Skip to content

Shepherd

Page status: release-ready Source state: shipped-source Applies to: Shepherd v1.0-dev Owner: @docs-system-owner (TBD) Validation: scripts/check_shepherd_docs.py

Build agent systems in Python

You write ordinary typed functions; Shepherd runs them against a model, validates the results, records what happened, and lets you supervise and compose the runs.

Get started Quickstart Concepts

import shepherd as shp
from shepherd.providers import claude


@shp.task
def summarize(article: str) -> str:
    """Summarize this article in three bullet points."""


with shp.workspace(model=claude("sonnet-4-5")):
    print(summarize("Shepherd is a Python framework for building agent systems..."))

Find your path

  • Build your first agent


    A typed task, a workspace, and a small working reviewer — offline and deterministic, in one sitting.

    First Shepherd app

  • Run a packaged workflow


    For operators: install, configure credentials, run first-party workflows in CI. Ships with the Shepherd CLI.

    What operators can read today

  • Understand & evaluate


    The mental model — tasks, effects, runs — and the ledger of exactly what these docs may claim today.

    Concepts: Tasks

Why Shepherd

  • Typed by construction. A task is a function with a signature and a docstring; the return type is the contract the model must satisfy.
  • Observable. Every run records what was sent and returned, so debugging is reading a trace, not guessing.
  • Composable. Tasks are values — pass them, supervise them, and build larger programs out of small ones.

Shepherd v1.0-dev — prototype docs

This site is built scaffold-first: a page is published only when its content is backed by checked source, and everything else stays in the reviewer build. The source-state inventory is the honest ledger of what these docs may claim today.