# Declarative Agents: Profile-Driven LLM Agent Runtime in Go

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/nokia-bell-labs-declarative-agents
Generated for open source discovery and AI-assisted research.

Declarative Agents by Nokia Bell Labs offers a profile-driven runtime and design patterns for building tool-augmented LLM agents. It allows defining agents, their tools, states, and transitions via YAML profiles, eliminating the need for code changes for workflow alterations. This Go-based framework promotes flexible and dependable agent development.

GitHub: https://github.com/Nokia-Bell-Labs/declarative-agents
OSRepos URL: https://osrepos.com/repo/nokia-bell-labs-declarative-agents

## Summary

Declarative Agents by Nokia Bell Labs offers a profile-driven runtime and design patterns for building tool-augmented LLM agents. It allows defining agents, their tools, states, and transitions via YAML profiles, eliminating the need for code changes for workflow alterations. This Go-based framework promotes flexible and dependable agent development.

## Topics

- Go
- LLM Agents
- Declarative Programming
- AI
- Agent Framework
- YAML
- Nokia Bell Labs

## Repository Information

Last analyzed by OSRepos: Sun Sep 13 2026 17:41:00 GMT+0100 (Western European Summer Time)
Detail views: 1
GitHub clicks: 0

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## Introduction

Declarative Agents is a project from Nokia Bell Labs providing a profile-driven runtime and design patterns for declarative, tool-augmented LLM agents. At its core, an agent is defined by a YAML profile, which is then interpreted and executed by a single Go runtime. This approach aims to simplify the development and modification of complex agent workflows.

## Why Use It and Key Benefits

Traditional agent frameworks often couple workflow logic tightly with code, meaning any change to an agent's loop or behavior necessitates a binary rebuild. Declarative Agents addresses this by externalizing the agent's definition into a YAML profile. This profile specifies the agent's tools, states, transitions, signals, and budgets.

The primary benefit is flexibility: altering an agent's workflow becomes a simple configuration edit, and creating a new agent does not require compiling new binaries. This significantly speeds up iteration and deployment. The project also includes a companion white paper, *Design Patterns for Declarative Agents*, which outlines eleven patterns for building reliable agents using this declarative methodology. The modular structure, with components like `agent-core` for the runtime engine and `applications/catalog` for reusable blocks, further enhances its utility.

## Installation

To get started quickly, you'll need Go and Mage installed. Navigate to one of the packaged applications and run it:

bash
cd applications/agent-architecture
mage run


This command starts the canonical documentation-curator and serves its UI.

## Examples

You can validate and run an agent directly from its YAML profile. First, build the core binaries and set the catalog root:

bash
cd agent-core
mage build      # compiles cmd/ binaries into bin/
export AGENT_CATALOG_ROOT=../applications/catalog
bin/agent --profile "$AGENT_CATALOG_ROOT/agents/executor/profile.yaml" --validate-config
bin/agent --profile "$AGENT_CATALOG_ROOT/agents/executor/profile.yaml" --core-root .


The `--validate-config` flag reads the profile, machine, and tool definitions, then exits, performing a quick boot smoke test. You can swap `executor` for any other profile found under `applications/catalog/agents/`.

## Links

*   **GitHub Repository:** [Nokia-Bell-Labs/declarative-agents](https://github.com/Nokia-Bell-Labs/declarative-agents){:target="_blank"}
*   **Contact:** [Petar Djukic](https://github.com/petar-djukic){:target="_blank"}