Metadata-Version: 2.3
Name: llm-workers
Version: 1.0.0
Summary: Core library for experimenting with LLMs - provides configuration, workers, tools, and LLM integrations
Author: Dmitry Mikhaylov
Author-email: mikhailov.dmitry@gmail.com
Requires-Python: >=3.12,<3.15
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: html
Requires-Dist: PyYAML (>=6.0.2,<6.1.0)
Requires-Dist: RestrictedPython (>=8.0,<9.0.0)
Requires-Dist: beautifulsoup4 (>=4.12.3,<4.13.0) ; extra == "html"
Requires-Dist: html-text (>=0.7.0,<0.8.0) ; extra == "html"
Requires-Dist: html2text (>=2025.4.15) ; extra == "html"
Requires-Dist: langchain (>=1.0.0,<2.0.0)
Requires-Dist: langchain-core (>=1.0.0,<2.0.0)
Requires-Dist: langchain-mcp-adapters (>=0.2.0,<0.3.0)
Requires-Dist: mcp (>=1.23.0,<2.0.0)
Requires-Dist: pydantic (>=2.10.5,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.1,<1.1.0)
Project-URL: Homepage, https://mrbagheera.github.io/llm-workers/
Project-URL: Issues, https://github.com/MrBagheera/llm-workers/issues
Description-Content-Type: text/markdown

# llm-workers

Core library for experimenting with Large Language Models (LLMs).

## Overview

`llm-workers` is the core package providing:

- **Worker System**: Central orchestrator for LLM interactions and tool execution
- **Configuration**: YAML-based configuration system for LLM scripts
- **Tools**: Built-in tools for file operations, web scraping, nested LLM calls, and custom tool building
- **Expression System**: Dynamic value evaluation with Starlark-like expressions
- **LLM Integrations**: Support for OpenAI, Anthropic, Google, and other providers via LangChain
- **MCP Server Support**: Integration with Model Context Protocol servers

## Installation

```bash
pip install llm-workers
```

For console/chat interface, also install:

```bash
pip install llm-workers-console llm-workers-tools
```

## Usage

### Programmatic Usage

```python
from llm_workers.user_context import StandardUserContext
from llm_workers.workers_context import StandardWorkersContext
from llm_workers.cli_lib import run_llm_script

# Run a script programmatically
user_context = StandardUserContext()
context = StandardWorkersContext.create("my-script.yaml", user_context=user_context)
```

### Command-Line Usage

For command-line tools, install `llm-workers-tools`:

```bash
llm-workers-cli my-script.yaml "prompt here"
llm-workers-chat my-script.yaml
```

## Documentation

Full documentation: https://mrbagheera.github.io/llm-workers/

## License

See main repository for license information.

