Skip to main content

Dhenara Agent DSL (DAD) Framework SDK

Project description

Dhenara Agent DSL (DAD)

Overview

Dhenara Agent DSL (DAD) is an open-source framework built on top of the dhenara-ai Python package. It provides a powerful, expressive, and type-safe domain-specific language (DSL) for defining and executing AI agent workflows. DAD makes it easier to create, compose, and orchestrate AI agents with sophisticated behaviors, while maintaining robust observability and reproducibility.

For full documentation, visit docs.dhenara.com.

What is Dhenara Agent DSL?

Dhenara Agent DSL or DAD (available as a Python package named dhenara-agent) is an AI agent framework with a strong focus on:

  1. Expressive Agent Definition: Create complex agent workflows using a straightforward, programming language-like approach
  2. Component-Based Architecture: Compose reusable components to build sophisticated agent systems
  3. Out-of-the-box Support for Multiple LLMs: Switch between different LLM models on the fly
  4. Comprehensive Observability: Built-in logging, tracing, and metrics collection for all agent activities using OpenTelemetry and open-source exporters like Zipkin and Jaeger
  5. Reproducible Execution: Track and replay agent execution through a run context system, reducing costs by rerunning failed flows without additional AI Model API calls
  6. Extensible Node System: Easily create custom node types to extend functionality
  7. Resource Management: Flexible management of AI model resources and credentials

Installation

You can install the Dhenara Agent DSL framework using pip:

pip install dhenara-agent

Core Concepts

Basic Elements

DAD uses a hierarchical component model that allows for composition and reuse. It is built around three primary types of components:

  • Execution Nodes: Atomic execution units that perform specific functions (e.g., making an LLM API call, analyzing a folder, performing file operations like creating/updating files)
  • Execution Flows: Collections of nodes or sub-flows with execution logic, supporting sequential execution, conditionals, and loops
  • Agents: Higher-level abstractions that can contain flows and other agents, representing complete functional units

Event-Driven Architecture

An event system enables loose coupling between components, allowing agents to react to events, request inputs, and communicate with each other without tight coupling.

Powerful Template Engine

A powerful template engine supports variable substitution, expressions, and hierarchical references, making it easy to build dynamic prompts and process responses.

Execution Model

The execution follows a hierarchical structure:

  1. Components (Agents or Flows) define the overall structure
  2. Nodes within components perform specific tasks
  3. A RunContext manages the execution environment
  4. Tracing, logging, and metrics provide visibility into execution

Resource Management

DAD provides a flexible system for managing AI model resources and API credentials, making it easier to work with different LLM providers and models.

Usage Examples

Basic Example

Here's a simple example of defining a flow using DAD:

from dhenara.agent.dsl import (
    AIModelNode,
    AIModelNodeSettings,
    FlowDefinition,
    ResourceConfigItem,
)
from dhenara.ai.types import Prompt

# Define a flow
my_flow = FlowDefinition()

# Add an AI model node to the flow
my_flow.node(
    "question_answerer",
    AIModelNode(
        resources=ResourceConfigItem.with_model("claude-3-5-haiku"),
        settings=AIModelNodeSettings(
            system_instructions=["You are a helpful assistant."],
            prompt=Prompt.with_dad_text("Answer the following question: $var{question}"),
        ),
    ),
)

Documentation

For comprehensive documentation including tutorials, API reference, and advanced usage examples, visit docs.dhenara.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dhenara_agent-0.1.0.tar.gz (160.3 kB view details)

Uploaded Source

Built Distribution

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

dhenara_agent-0.1.0-py3-none-any.whl (212.4 kB view details)

Uploaded Python 3

File details

Details for the file dhenara_agent-0.1.0.tar.gz.

File metadata

  • Download URL: dhenara_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 160.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for dhenara_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 05dc280bfe36b71297a049502762e5b409d79abff13c5ad434f77ded76d4c639
MD5 0369078ac48f614b30a6b77931b9ef18
BLAKE2b-256 b4268838e1c8a31305fad9019d580d16f74449245e9e7f18111c8329ec149759

See more details on using hashes here.

File details

Details for the file dhenara_agent-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dhenara_agent-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 212.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for dhenara_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 891ded1afd3fbe5534e81ce044b4c15589525eadf14a9d5ff4ddd6675e8b19ee
MD5 23880146a420d06d0ef912b15ee0077e
BLAKE2b-256 b5afa0d78e6e3815e10195be0b5229e5002000f1ec528156347dd82f4cd38fc9

See more details on using hashes here.

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