LlamaAgents
Orchestrate and deploy document-centric applications with asynchronous, event-driven Python workflows.
- Source repo
- run-llama/llama-agents
- Stars
- ★ 464
- Last updated
- 6d ago
- License
- MIT
- Primary language
- Python
- FA score
- 66/100 · Some gaps
At a glance
- How it runs
- Works with
- Portable with changes
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A document-processing team needs to coordinate OCR, extraction, classification, custom validation, and human review in one Python workflow.
- Not a fit if
- Teams wanting built-in document parsing: OCR and extraction require plugging in external services like LlamaParse
- Users wanting a ready-made chat bot or GUI: this is a Python library and CLI for developers
- Source review
- 66/100 · Some gaps
What does this agent do, and when should you use it?
LlamaAgents is an open-source Python framework for building and shipping document-centric agent applications. Its Agent Workflows core models execution as asynchronous steps that consume and emit events, with support for branching, loops, parallelism, persisted state, and failure recovery. A workflow can run inside a script or notebook, live within a FastAPI or Starlette application, or be exposed through llama-agents-server as a REST API with streaming, persistence, and human-in-the-loop support. llama-agents-client supplies the matching asynchronous client, while llamactl covers project initialization, local development, and deployment. Applications can be delivered to LlamaParse, AWS Bedrock AgentCore, or private infrastructure as headless workflow services, MCP servers, or full-stack applications.
Developers subclass Workflow and mark asynchronous Python functions with @step; each step consumes an event such as StartEvent and returns or emits another event such as StopEvent. Application code can connect OCR, model calls, structured extraction, classification, image analysis, custom validation, and human review, although those processing functions must come from user code or integrated services. The runtime coordinates branches, loops, parallel work, persisted execution state, and recovery from failures, then exposes outputs through values such as StopEvent.result. Workflows can execute in-process through await workflow.run(...), or be registered with WorkflowServer for REST access, streaming responses, persistence, and calls from llama-agents-client. The llamactl CLI initializes projects, runs local development with hot reload, and creates deployments targeting LlamaParse, AWS Bedrock AgentCore, or an organization's own infrastructure.
- A document-processing team needs to coordinate OCR, extraction, classification, custom validation, and human review in one Python workflow.
- A Python developer is proving a contract-processing flow in a notebook and wants the same workflow code to move into production later.
- An enterprise processes high invoice volumes and must execute the application behind a customer's firewall or in another restricted environment.
- A backend team wants to mount an asynchronous workflow in an existing FastAPI or Starlette application and expose it as a REST service.
- An engineering team frequently revises extraction logic and needs persisted state and recovery to avoid restarting long-running document jobs.
- An application team wants a CLI path from a starter project and local hot reload to deployment on LlamaParse, AWS Bedrock AgentCore, or private infrastructure.
How do you install or deploy this agent?
Install the core library mode with:
pip install llama-index-workflowsThe supplied material identifies Python as the runtime but does not state a minimum Python version, virtual-environment procedure, or complete dependency matrix. No credentials are documented for a basic in-process workflow. Accounts, credentials, and configuration for LlamaParse, AWS Bedrock AgentCore, or other external services are not specified. To use the deployment CLI, install llamactl with:
uv tool install llamactlHow do you use this agent?
Define a minimal workflow:
from workflows import Workflow, step
from workflows.events import StartEvent, StopEvent
class HelloWorkflow(Workflow):
@step
async def greet(self, ev: StartEvent) -> StopEvent:
return StopEvent(result=f"Hello, {ev.name}")The documented in-process interface is await workflow.run(...), but the source does not supply a complete executable entry point or the exact event arguments for this example. To register the workflow with a server:
from llama_agents.server import WorkflowServer
server = WorkflowServer()
server.add_workflow("greet", HelloWorkflow())The supplied material does not include the server launch command, port configuration, or a client request example. The documented llamactl flow is:
llamactl init
llamactl serve
llamactl deployments createllamactl serve is described as supporting local development with hot reload; authentication and target-specific deployment configuration are not provided.
What are this agent's strengths and limitations?
- Steps are ordinary asynchronous Python functions connected by events, so workflows do not require a separate orchestration DSL.
- The same workflow code can progress from a script or notebook to a REST service, a locked-down customer environment, or a replicated deployment.
- Branching, loops, parallel execution, state persistence, and failure recovery directly address slow, heavy document pipelines.
- The project covers several delivery boundaries through an embeddable library, WorkflowServer, an asynchronous client, and the llamactl deployment CLI.
- It can combine LlamaParse document primitives with application-owned orchestration, business logic, and review steps.
- The supplied material does not specify supported Python versions, a production dependency matrix, server startup parameters, or complete configuration steps.
- OCR, model inference, extraction, and image analysis are not automatically supplied by the orchestration core; adopters must implement steps or integrate services such as LlamaParse.
- Persistence may use a file or database, but supported databases, connection settings, recovery semantics, and operational examples are not documented here.
- Deploying to LlamaParse or AWS Bedrock AgentCore introduces platform accounts, networking, and configuration requirements that are not detailed.
- No native integration with ChatGPT, Codex, Claude, the OpenAI API, or the Anthropic API is explicitly documented, so provider-specific use may require adaptation.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| LlamaAgents This agent | 66 · Some gaps | Library / SDKFree + model costs | ★ 464 | 6d ago | Python | — |
| Omnara Managed Agent Platform | 65 · Some gaps | Hosted serviceFreemium | ★ 3.4k | 1d ago | Go | Codex · Claude Code · Claude.ai · OpenAI API · Claude API |
| AgentField AI Backend | 45 · Major gaps | CLIFree + model costs | ★ 2.6k | 2d ago | Go | Codex · Claude Code |
| Deuz SDK | 69 · Some gaps | Library / SDKFree + model costs | ★ 508 | 20d ago | TypeScript | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
The evidence shows Helm tests separating application and release namespaces, using Roles rather than ClusterRoles, and checking a NetworkPolicy, which supports reasonable permission scoping. Object-storage credentials can come from user-managed, dedicated, or encryption Secrets, with explicit precedence and validation. Dependency controls include a hash-qualified pnpm version, constrained versions, and automated upgrade pull requests. Deductions apply because the complete RBAC templates and an exhaustive data-flow inventory are absent, while inline S3 credentials can still be rendered into a merely base64-encoded Kubernetes Secret. Deployment, networking, object storage, and cloud integrations can create external effects without a demonstrated uniform confirmation gate. Persistence, recovery, human review, and backup paths are mentioned, but no complete undo or deployment-rollback procedure is shown. Repository, package, and copyright attribution are present, although publisher identity is unverified and badge targets mix workflows, llama-agents, and llama-index-workflows names.
The README, workspace configuration, Helm validation workflow, and tests broadly agree on a product comprising asynchronous workflows, server and client packages, and deployment tooling. CI checks Helm linting, generated documentation, server-side dry runs, and multiple configuration branches. Dependency constraints and the documented boto3 compatibility override show active resolution management, while template tests assert concrete messages for missing buckets and incomplete credentials. Deductions apply because the supplied evidence omits core runtime implementations and their unit tests, README badge repository names are inconsistent, top-level pytest defaults only to dev_cli tests, and most dependency evidence uses ranges rather than demonstrating a complete immutable lock.
The materials explicitly address notebooks, scripts, FastAPI or Starlette applications, locked-down customer environments, standalone deployment, Kubernetes, LlamaParse, AWS Bedrock AgentCore, and self-managed infrastructure. They also describe a progression from an invoked function through serving, durable coordination, and replication, earning full credit for audience coverage and environment fit. Typed events, steps, workflow boundaries, and headless, MCP, or full-stack forms provide a reasonable capability and triggering model. Deductions apply because input validation, ambiguous routing, resource limits, and detailed integration boundaries are not shown, while some scale and no-rewrite portability claims remain README assertions.
The README organizes entry points by library, server, client, CLI, and cloud integration and supplies pip, uv, Python, and deployment examples. Workspace membership and type-checking environments identify the principal packages. The complete MIT text agrees with both project manifests, fully supporting the license score. Changesets scripts and the automated dependency-bump workflow establish an update path. Deductions apply for the lack of an explicit FAQ, centralized known limitations, and a supplied changelog. LlamaAgents, Agent Workflows, llama-index-workflows, llama-agents, and older link targets coexist, weakening naming stability. Organizational ownership, copyright, and automation suggest maintenance responsibility, but contributor ownership and security contact details are absent.
The examples provide usable starting points for a Python workflow, REST service, and CLI deployment. Persistence, recovery, branching, parallel execution, human review, and pluggable backends offer plausible value over hand-built orchestration, while library, embedded-server, and deployment modes provide graduated adoption costs. Deductions apply because the supplied files contain no statically verifiable measurements of performance, resource use, migration effort, operational burden, or comparisons with alternatives. Claims concerning million-document workloads and reliable production operation are not thoroughly substantiated by the included evidence.
Many concrete claims trace to pyproject, package.json, CI, and Helm tests, including supported Python versions, package structure, S3 settings, Secret precedence, namespaces, and failure messages. Package declarations and chart tests partially corroborate the README's deployment structure. Deductions apply because core implementation files, release history, and linked documentation pages are not included, preventing direct verification of persistence, replication, human-in-the-loop, and scale claims. The README also does not consistently distinguish demonstrated behavior, design intent, and promotional inference.
- This is a static review of only the supplied files; no code, tests, containers, Helm charts, or deployments were executed.
- Before production use, inspect the complete RBAC and NetworkPolicy templates, all outbound data flows, cloud integrations, and default permissions.
- Avoid supplying durable S3 credentials through inline values; prefer managed Secrets and verify backup encryption and credential-rotation procedures.
- Independently validate the README claims about persistence, recovery, replication, human review, and high-volume processing.
- Confirm that the installed packages, documentation, and badge targets correspond to the reviewed revision, particularly because several historical names coexist.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Patch Changes - 9bf7f4a: Release the chart whenever the operator, appserver, or control plane image it ships is bumped.View on GitHub ↗ -
Release notes excerpt
Patch Changes - 64fbd6c: Builds link the UI output at /opt/app/.llama-ui so nginx serves the UI for pushed deployments. - 3ac8112: Keep UI directory redirects on the public host when serving built files behind a proxy.View on GitHub ↗ -
Release notes excerpt
Patch Changes - 64fbd6c: Builds link the UI output at /opt/app/.llama-ui so nginx serves the UI for pushed deployments.View on GitHub ↗