Skip to main content

Agent framework with learning capabilities

Project description

llm-gent

Agent framework with trait-based architecture and learning capabilities.

Overview

llm-gent provides a composable framework for building LLM-powered agents. Agents are composed of traits that provide specific capabilities (LLM access, storage, learning, etc.) and can be run standalone or as services via the included HTTP runtime.

Key features:

  • Trait-based composition - Mix and match capabilities via traits (LLM, Storage, Rating, Learn)
  • Multi-backend LLM support - OpenAI-compatible, Anthropic, and custom backends via llm-infer
  • Built-in learning - Collect training data (SFT/DPO) and fine-tune via llm-kelt
  • Structured output - Pydantic schema validation with automatic JSON cleanup for small models
  • Production ready - HTTP server, PostgreSQL storage, schema migrations

Installation

pip install llm-gent

For HTTP server support:

pip install llm-gent[http]

Quick Start

from appinfra import DotDict
from appinfra.log import LogConfig, LoggerFactory

from llm_gent import Agent, Config, Identity, LLMTrait, DirectiveTrait

# Setup logging
log_config = LogConfig.from_params(level="info", handlers={"console": {"type": "console"}})
lg = LoggerFactory.create_root(log_config)

# Configure LLM backend
llm_config = DotDict({
    "default": "local",
    "backends": {
        "local": {
            "type": "openai_compatible",
            "base_url": "http://localhost:8000/v1",
            "model": "default",
        }
    },
})

# Create agent with traits
identity = Identity(domain=None, workspace="demo", name="my-agent")
config = Config(identity=identity)
agent = Agent(lg, config)

# Add capabilities via traits
agent.add_trait(DirectiveTrait(agent, directive="You are a helpful assistant."))
agent.add_trait(LLMTrait(agent, llm_config))

# Start and use agent
agent.start()
llm = agent.require_trait(LLMTrait)
result = llm.complete([{"role": "user", "content": "Hello!"}])
print(result.content)
agent.stop()

Core Concepts

Agents

An Agent is a container for traits with lifecycle management. Agents have an identity (domain/workspace/name) and can be started, stopped, and run in cycles.

Traits

Traits provide specific capabilities to agents:

Trait Purpose
LLMTrait LLM completions with multi-backend routing
DirectiveTrait System prompts and agent instructions
StorageTrait PostgreSQL persistence with migrations
RatingTrait Automated LLM-based content evaluation
LearnTrait Training data collection (SFT/DPO)
ToolsTrait Tool/function calling support

Tools

Built-in tools for agentic workflows:

  • ShellTool - Execute shell commands
  • FileReadTool / FileWriteTool - File operations
  • HTTPFetchTool - HTTP requests
  • RecallTool / RememberTool - Memory operations

Running as a Service

# Start agent server
llm-gent serve

# Or with specific config
llm-gent -c etc/llm-gent.yaml serve

Related Projects

  • llm-infer - LLM inference server and client
  • llm-kelt - Training infrastructure (SFT/DPO)
  • appinfra - Application infrastructure utilities

License

Apache-2.0

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

llm_gent-0.3.0.tar.gz (242.3 kB view details)

Uploaded Source

Built Distribution

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

llm_gent-0.3.0-py3-none-any.whl (202.9 kB view details)

Uploaded Python 3

File details

Details for the file llm_gent-0.3.0.tar.gz.

File metadata

  • Download URL: llm_gent-0.3.0.tar.gz
  • Upload date:
  • Size: 242.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llm_gent-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b29aff5993defc269da8515bef4891ec9b427e5da7ce7c79e00b56bd7e9fc4e7
MD5 2ebd7580444dfc288750e8899b66f468
BLAKE2b-256 92abb034074feb9b8c332b2aff5f32dccd5ba43a98336568027f1dca1c0a88eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_gent-0.3.0.tar.gz:

Publisher: release.yml on llm-works/llm-gent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_gent-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: llm_gent-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 202.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llm_gent-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6e9355cb04fe60070b2ba36e339465ed77152a71ef472ab7a3a17f32240366d
MD5 349b07ffaad2afe8e252ca8e4fce5dab
BLAKE2b-256 17f5560c95340fea4ce8a24ec5a933828e8ab27d180341f03c001d45d6082746

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_gent-0.3.0-py3-none-any.whl:

Publisher: release.yml on llm-works/llm-gent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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