Metadata-Version: 2.2
Name: agent-flow-project
Version: 0.1.2
Summary: A flexible and extensible framework for building and managing AI agents and workflows
Home-page: https://github.com/chenxingqiang/agent-flow-project
Author: Xingqiang Chen
Author-email: chen.xingqiang@iechor.com
Project-URL: Bug Reports, https://github.com/chenxingqiang/agent-flow-project/issues
Project-URL: Source, https://github.com/chenxingqiang/agent-flow-project
Project-URL: Documentation, https://github.com/chenxingqiang/agent-flow-project/docs
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.19.0
Requires-Dist: pandas>=1.2.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: scikit-learn>=0.24.0
Requires-Dist: ray>=2.0.0
Requires-Dist: requests>=2.25.0
Requires-Dist: jsonschema>=3.2.0
Requires-Dist: pytest>=6.0.0
Requires-Dist: pytest-asyncio>=0.14.0
Requires-Dist: pytest-cov>=2.10.0
Requires-Dist: aiohttp>=3.7.0
Requires-Dist: fastapi>=0.65.0
Requires-Dist: uvicorn>=0.13.0
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-asyncio; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# AgentFlow

AgentFlow is a flexible and extensible framework for building and managing AI agents and workflows. It provides a modular architecture for creating, configuring, and orchestrating AI agents with advanced features for workflow management and testing.

## Latest Version

Current version: v0.1.1
- Fixed workflow transform functions to handle step and context parameters
- Added feature engineering and outlier removal transforms
- Improved test suite and type hints
- Enhanced error handling and validation

## Project Structure

```
agentflow/
├── agents/             # Agent implementations
│   ├── agent.py       # Base agent implementation
│   └── agent_types.py # Agent type definitions
├── core/              # Core framework components
│   ├── base_types.py  # Base type definitions
│   ├── config.py      # Configuration management
│   ├── workflow.py    # Workflow engine
│   └── workflow_executor.py # Workflow execution
├── ell2a/             # ELL2A integration
│   └── types/         # Message and content types
├── transformations/   # Data transformation tools
│   └── text.py       # Text processing utilities
└── tests/            # Comprehensive test suite
    ├── unit/         # Unit tests
    ├── core/         # Core component tests
    └── performance/  # Performance tests
```

## Features

- **Flexible Agent Architecture**
  - Configurable agent types and behaviors
  - Support for research and data science agents
  - Extensible agent factory system

- **Advanced Workflow Management**
  - Step-based workflow execution
  - Dependency management
  - Error handling and retry policies
  - Performance monitoring

- **Robust Testing Framework**
  - Unit and integration tests
  - Performance testing
  - Test-driven development support

- **Data Transformation Tools**
  - Feature engineering
  - Outlier removal
  - Text processing utilities

- **Type Safety**
  - Comprehensive type hints
  - Pydantic model validation
  - Runtime type checking

## Installation

```bash
pip install agentflow
```

## Quick Start

```python
from agentflow import Agent, AgentConfig, WorkflowConfig, WorkflowStep, WorkflowStepType

# Create workflow configuration
workflow_config = WorkflowConfig(
    id="test-workflow",
    name="test_workflow",
    steps=[
        WorkflowStep(
            id="step-1",
            name="transform_step",
            type=WorkflowStepType.TRANSFORM,
            description="Data transformation step",
            config={
                "strategy": "standard",
                "params": {
                    "method": "standard",
                    "with_mean": True,
                    "with_std": True
                }
            }
        )
    ]
)

# Create agent configuration
agent_config = AgentConfig(
    name="test_agent",
    type="data_science",
    workflow=workflow_config
)

# Create and initialize agent
agent = Agent(config=agent_config)
await agent.initialize()

# Process data
result = await agent.execute({"data": your_data})
```

## Configuration

Agents and workflows can be configured using Python dictionaries or YAML files:

```yaml
AGENT:
  name: data_science_agent
  type: data_science
  version: 1.0.0
  mode: sequential

MODEL:
  provider: openai
  name: gpt-4
  temperature: 0.7
  max_tokens: 4096

WORKFLOW:
  id: transform-workflow
  name: Data Transformation Workflow
  max_iterations: 5
  timeout: 30
  steps:
    - id: step-1
      name: feature_engineering
      type: transform
      description: Feature engineering step
      config:
        strategy: standard
        params:
          method: standard
          with_mean: true
          with_std: true
```

## Testing

Run the test suite:

```bash
# Run all tests
pytest

# Run specific test categories
pytest tests/unit/
pytest tests/core/
pytest tests/performance/
```

## Contributing

1. Fork the repository
2. Create a feature branch
3. Write tests for your changes
4. Implement your changes
5. Run the test suite
6. Create a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.
