tygent


Nametygent JSON
Version 0.4.0 PyPI version JSON
download
home_pagehttps://tygent.ai
SummaryTransform LLM Agents into High-Performance Engines with DAG optimization
upload_time2025-07-11 20:57:52
maintainerNone
docs_urlNone
authorTygent Team
requires_python>=3.7
licenseCC BY-NC 4.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Tygent Python - Speed & Efficiency Layer for AI Agents

[![CI](https://github.com/tygent-ai/tygent-py/workflows/CI/badge.svg)](https://github.com/tygent-ai/tygent-py/actions)
[![PyPI version](https://badge.fury.io/py/tygent.svg)](https://badge.fury.io/py/tygent)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)

Transform your existing AI agents into high-performance engines with intelligent parallel execution and optimized scheduling. Tygent aims to speed up workflows and reduce costs with **no code changes required**.

## Quick Start

### Installation

```bash
pip install tygent
```

### Basic Usage - Accelerate Any Function

```python
from tygent import accelerate


# Your existing code
def research_topic(topic):
    # Your existing research logic
    return {"summary": f"Research on {topic}"}

# Wrap the function to run via Tygent's scheduler
accelerated_research = accelerate(research_topic)
result = accelerated_research("AI trends")
```

### Zero-Lift Framework Patching

```python
import asyncio

import tygent

# Apply patches for any installed integrations
tygent.install()

from google.generativeai import GenerativeModel

model = GenerativeModel("gemini-pro")
result = asyncio.run(model.generate_content("Hello"))
```

### Multi-Agent System

```python
import asyncio

from tygent import MultiAgentManager

# Create manager
manager = MultiAgentManager("customer_support")

# Add agents to the system
class AnalyzerAgent:
    def analyze(self, question):
        return {"intent": "password_reset", "keywords": ["reset", "password"]}

class ResearchAgent:
    def search(self, keywords):
        return {"help_docs": ["Reset guide", "Account recovery"]}

manager.add_agent("analyzer", AnalyzerAgent())
manager.add_agent("researcher", ResearchAgent())

# Execute with optimized communication
result = asyncio.run(
    manager.execute({"question": "How do I reset my password?"})
)
```

## Key Features

- **πŸš€ Speed Improvement**: Intelligent parallel execution of independent operations
- **πŸ’° Cost Reduction**: Optimized token usage and API call batching
- **πŸ”§ Zero Code Changes**: Drop-in acceleration for existing functions and agents
- **🧠 Smart DAG Optimization**: Automatic dependency analysis and parallel scheduling
- **πŸ”„ Dynamic Adaptation**: Runtime DAG modification based on conditions and failures
- **🎯 Multi-Framework Support**: Works with CrewAI, HuggingFace, Google AI, and custom agents
- **πŸ“„ Plan Parsing**: Build DAGs directly from framework plans or dictionaries
- **πŸ“‹ Auditing & Tracing**: Inspect plans, hook into node execution, and record results

## Architecture

Tygent uses Directed Acyclic Graphs (DAGs) to model and optimize your agent workflows:

```
Your Sequential Code:        Tygent Optimized:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Step 1        β”‚         β”‚   Step 1        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                           β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Step 2        β”‚   β†’     β”‚ Step 2  β”‚Step 3 β”‚ (Parallel)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                           β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Step 3        β”‚         β”‚   Step 4        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## Advanced Usage

### Dynamic DAG Modification

```python
from tygent import accelerate
from tygent.adaptive_executor import AdaptiveExecutor


# Workflow that adapts to failures and conditions
@accelerate
async def travel_planning_workflow(destination):
    # Tygent automatically handles:
    # - API failures with fallback services
    # - Conditional branching based on weather
    # - Resource-aware execution adaptation
    
    weather = await get_weather(destination)  # Primary API
    # Auto-fallback to backup_weather_service if primary fails
    
    if weather["condition"] == "rain":
        # Dynamically adds indoor alternatives node
        recommendations = await get_indoor_alternatives(destination)
    else:
        recommendations = await get_outdoor_activities(destination)
    
    return recommendations
```

### Integration Examples

#### Example: Accelerating a LangChain Agent
```python
from tygent import accelerate


# Your existing LangChain agent
class MockLangChainAgent:
    def run(self, query):
        return f"LangChain response to: {query}"

agent = MockLangChainAgent()

# Accelerate it
accelerated_agent = accelerate(agent)
result = accelerated_agent.run("Analyze market trends")
```

#### Custom Multi-Agent System
```python
import asyncio

from tygent import DAG, LLMNode, MultiAgentManager, ToolNode

# Create a DAG for manual workflow control
dag = DAG("content_generation")

def research_function(inputs):
    return {"research_data": f"Data about {inputs.get('topic', 'general')}"}

class SimpleLLMNode(LLMNode):
    async def execute(self, inputs):
        # Normally this would call an LLM; here we just format text
        return {"outline": f"Outline for {inputs.get('research_data', '')}"}

dag.add_node(ToolNode("research", research_function))
dag.add_node(SimpleLLMNode("outline"))
dag.add_edge("research", "outline")

result = asyncio.run(dag.execute({"topic": "AI trends"}))
```

### Parsing Plans

Tygent can convert structured plans into executable DAGs with `parse_plan`.

```python
from tygent import Scheduler, accelerate, parse_plan

plan = {
    "name": "math",
    "steps": [
        {"name": "add", "func": add_fn, "critical": True},
        {"name": "mult", "func": mult_fn, "dependencies": ["add"]},
    ],
}

# Build a DAG manually
dag, critical = parse_plan(plan)
scheduler = Scheduler(dag)
scheduler.priority_nodes = critical

# Or accelerate the plan directly (works with frameworks exposing `get_plan`)
run_plan = accelerate(plan)
```

If you have multiple plans (e.g. produced by different LLMs) you can
combine them into a single DAG:

```python
from tygent import parse_plans, Scheduler

dag, critical = parse_plans([plan_a, plan_b])
scheduler = Scheduler(dag)
scheduler.priority_nodes = critical
```

## Testing

### Running Tests

Make sure to install the package in editable mode before executing the tests.

```bash
# Install test dependencies
pip install pytest pytest-asyncio

# Install package in development mode
pip install -e .

# Run core tests (always pass)
pytest tests/test_dag.py tests/test_multi_agent.py -v

# Run all tests
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=tygent --cov-report=html
```

### Test Coverage

Our test suite covers:
- **Core DAG functionality**: Node management, topological sorting, parallel execution
- **Multi-agent communication**: Message passing, agent orchestration, conversation history
- **Async operations**: Proper async/await handling, concurrent execution
- **Error handling**: Graceful failure recovery, fallback mechanisms

**Current Status**: 14/14 core tests passing βœ…

#### Recent Test Fixes (v1.1)
- Fixed Message interface to match TypedDict implementation
- Corrected async timestamp handling using `asyncio.get_event_loop().time()`
- Added pytest.ini configuration for proper async test support
- Updated MultiAgentManager constructor calls with required name parameter
- Removed dependencies on non-existent classes (AgentRole, OptimizationSettings)

### CI/CD

GitHub Actions workflow automatically runs:
- **Multi-version testing**: Python 3.8, 3.9, 3.10, 3.11
- **Multi-platform**: Ubuntu, macOS, Windows  
- **Code quality**: flake8 linting, black formatting, mypy type checking
- **Package building**: Automated wheel and source distribution creation
- **PyPI publishing**: Automatic publishing on main branch pushes
- **Coverage reporting**: HTML and LCOV coverage reports

Triggers: Every push and pull request to main/develop branches

## Framework Integrations

### Supported Frameworks
- **CrewAI**: Multi-agent coordination
- **Microsoft Semantic Kernel**: Plugin optimization
- **LangSmith**: Experiment tracking integration
- **LangFlow**: Visual workflow authoring
- **Custom Agents**: Universal function acceleration

### External Service Integrations
- **OpenAI**: GPT-4, GPT-3.5-turbo optimization
- **Google AI**: Gemini model integration
- **Microsoft Azure**: Azure OpenAI service
- **Salesforce**: Einstein AI and CRM operations
- **HuggingFace**: Transformer models

## Performance Benchmarks

Benchmark tests live under `tests/benchmarks/` and compare sequential
execution with Tygent's scheduler. Typical results on a small DAG of four
dependent tasks:

| Scenario                 | Time (s) |
|--------------------------|---------:|
| Sequential execution     | ~0.70    |
| Scheduler (1 worker)     | ~0.72    |
| Scheduler (2 workers)    | ~0.52    |

Run the benchmarks using:

```bash
pip install -e .
pytest tests/benchmarks/ -v
```

## Development

### Project Structure
```
tygent-py/
β”œβ”€β”€ tygent/
β”‚   β”œβ”€β”€ __init__.py          # Main exports
β”‚   β”œβ”€β”€ accelerate.py        # Core acceleration wrapper
β”‚   β”œβ”€β”€ dag.py              # DAG implementation
β”‚   β”œβ”€β”€ nodes.py            # Node types (Tool, LLM, etc.)
β”‚   β”œβ”€β”€ scheduler.py        # Execution scheduler
β”‚   β”œβ”€β”€ multi_agent.py      # Multi-agent system
β”‚   β”œβ”€β”€ adaptive_executor.py # Dynamic DAG modification
β”‚   └── integrations/       # Framework integrations
β”œβ”€β”€ tests/                  # Test suite
β”œβ”€β”€ examples/              # Usage examples
└── docs/                  # Documentation
```

### Contributing

1. Fork the repository
2. Create a feature branch: `git checkout -b feature-name`
3. Install development dependencies: `pip install -e ".[dev]"`
4. Run tests: `pytest tests/ -v`
5. Commit changes: `git commit -am 'Add feature'`
6. Push to branch: `git push origin feature-name`
7. Submit a pull request

### Code Quality

- **Type hints**: Full type annotation coverage
- **Testing**: Comprehensive test suite with >90% coverage
- **Linting**: Black formatting, flake8 compliance
- **Documentation**: Detailed docstrings and examples

## License

Creative Commons Attribution-NonCommercial 4.0 International License.

See [LICENSE](LICENSE) for details.

## Support

- **Documentation**: [https://tygent.ai/docs](https://tygent.ai/docs)
- **Issues**: [GitHub Issues](https://github.com/tygent-ai/tygent-py/issues)
- **Discussions**: [GitHub Discussions](https://github.com/tygent-ai/tygent-py/discussions)
- **Email**: support@tygent.ai

---

**Transform your agents. Accelerate your AI.**

            

Raw data

            {
    "_id": null,
    "home_page": "https://tygent.ai",
    "name": "tygent",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "Tygent Team",
    "author_email": "Tygent AI <info@tygent.ai>",
    "download_url": "https://files.pythonhosted.org/packages/ca/e8/22ac99b6f363b713fd690f018c05b54689c58f3ea2cf242a3d4c1eae9606/tygent-0.4.0.tar.gz",
    "platform": null,
    "description": "# Tygent Python - Speed & Efficiency Layer for AI Agents\n\n[![CI](https://github.com/tygent-ai/tygent-py/workflows/CI/badge.svg)](https://github.com/tygent-ai/tygent-py/actions)\n[![PyPI version](https://badge.fury.io/py/tygent.svg)](https://badge.fury.io/py/tygent)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)\n\nTransform your existing AI agents into high-performance engines with intelligent parallel execution and optimized scheduling. Tygent aims to speed up workflows and reduce costs with **no code changes required**.\n\n## Quick Start\n\n### Installation\n\n```bash\npip install tygent\n```\n\n### Basic Usage - Accelerate Any Function\n\n```python\nfrom tygent import accelerate\n\n\n# Your existing code\ndef research_topic(topic):\n    # Your existing research logic\n    return {\"summary\": f\"Research on {topic}\"}\n\n# Wrap the function to run via Tygent's scheduler\naccelerated_research = accelerate(research_topic)\nresult = accelerated_research(\"AI trends\")\n```\n\n### Zero-Lift Framework Patching\n\n```python\nimport asyncio\n\nimport tygent\n\n# Apply patches for any installed integrations\ntygent.install()\n\nfrom google.generativeai import GenerativeModel\n\nmodel = GenerativeModel(\"gemini-pro\")\nresult = asyncio.run(model.generate_content(\"Hello\"))\n```\n\n### Multi-Agent System\n\n```python\nimport asyncio\n\nfrom tygent import MultiAgentManager\n\n# Create manager\nmanager = MultiAgentManager(\"customer_support\")\n\n# Add agents to the system\nclass AnalyzerAgent:\n    def analyze(self, question):\n        return {\"intent\": \"password_reset\", \"keywords\": [\"reset\", \"password\"]}\n\nclass ResearchAgent:\n    def search(self, keywords):\n        return {\"help_docs\": [\"Reset guide\", \"Account recovery\"]}\n\nmanager.add_agent(\"analyzer\", AnalyzerAgent())\nmanager.add_agent(\"researcher\", ResearchAgent())\n\n# Execute with optimized communication\nresult = asyncio.run(\n    manager.execute({\"question\": \"How do I reset my password?\"})\n)\n```\n\n## Key Features\n\n- **\ud83d\ude80 Speed Improvement**: Intelligent parallel execution of independent operations\n- **\ud83d\udcb0 Cost Reduction**: Optimized token usage and API call batching\n- **\ud83d\udd27 Zero Code Changes**: Drop-in acceleration for existing functions and agents\n- **\ud83e\udde0 Smart DAG Optimization**: Automatic dependency analysis and parallel scheduling\n- **\ud83d\udd04 Dynamic Adaptation**: Runtime DAG modification based on conditions and failures\n- **\ud83c\udfaf Multi-Framework Support**: Works with CrewAI, HuggingFace, Google AI, and custom agents\n- **\ud83d\udcc4 Plan Parsing**: Build DAGs directly from framework plans or dictionaries\n- **\ud83d\udccb Auditing & Tracing**: Inspect plans, hook into node execution, and record results\n\n## Architecture\n\nTygent uses Directed Acyclic Graphs (DAGs) to model and optimize your agent workflows:\n\n```\nYour Sequential Code:        Tygent Optimized:\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   Step 1        \u2502         \u2502   Step 1        \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n         \u2502                           \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   Step 2        \u2502   \u2192     \u2502 Step 2  \u2502Step 3 \u2502 (Parallel)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n         \u2502                           \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   Step 3        \u2502         \u2502   Step 4        \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n## Advanced Usage\n\n### Dynamic DAG Modification\n\n```python\nfrom tygent import accelerate\nfrom tygent.adaptive_executor import AdaptiveExecutor\n\n\n# Workflow that adapts to failures and conditions\n@accelerate\nasync def travel_planning_workflow(destination):\n    # Tygent automatically handles:\n    # - API failures with fallback services\n    # - Conditional branching based on weather\n    # - Resource-aware execution adaptation\n    \n    weather = await get_weather(destination)  # Primary API\n    # Auto-fallback to backup_weather_service if primary fails\n    \n    if weather[\"condition\"] == \"rain\":\n        # Dynamically adds indoor alternatives node\n        recommendations = await get_indoor_alternatives(destination)\n    else:\n        recommendations = await get_outdoor_activities(destination)\n    \n    return recommendations\n```\n\n### Integration Examples\n\n#### Example: Accelerating a LangChain Agent\n```python\nfrom tygent import accelerate\n\n\n# Your existing LangChain agent\nclass MockLangChainAgent:\n    def run(self, query):\n        return f\"LangChain response to: {query}\"\n\nagent = MockLangChainAgent()\n\n# Accelerate it\naccelerated_agent = accelerate(agent)\nresult = accelerated_agent.run(\"Analyze market trends\")\n```\n\n#### Custom Multi-Agent System\n```python\nimport asyncio\n\nfrom tygent import DAG, LLMNode, MultiAgentManager, ToolNode\n\n# Create a DAG for manual workflow control\ndag = DAG(\"content_generation\")\n\ndef research_function(inputs):\n    return {\"research_data\": f\"Data about {inputs.get('topic', 'general')}\"}\n\nclass SimpleLLMNode(LLMNode):\n    async def execute(self, inputs):\n        # Normally this would call an LLM; here we just format text\n        return {\"outline\": f\"Outline for {inputs.get('research_data', '')}\"}\n\ndag.add_node(ToolNode(\"research\", research_function))\ndag.add_node(SimpleLLMNode(\"outline\"))\ndag.add_edge(\"research\", \"outline\")\n\nresult = asyncio.run(dag.execute({\"topic\": \"AI trends\"}))\n```\n\n### Parsing Plans\n\nTygent can convert structured plans into executable DAGs with `parse_plan`.\n\n```python\nfrom tygent import Scheduler, accelerate, parse_plan\n\nplan = {\n    \"name\": \"math\",\n    \"steps\": [\n        {\"name\": \"add\", \"func\": add_fn, \"critical\": True},\n        {\"name\": \"mult\", \"func\": mult_fn, \"dependencies\": [\"add\"]},\n    ],\n}\n\n# Build a DAG manually\ndag, critical = parse_plan(plan)\nscheduler = Scheduler(dag)\nscheduler.priority_nodes = critical\n\n# Or accelerate the plan directly (works with frameworks exposing `get_plan`)\nrun_plan = accelerate(plan)\n```\n\nIf you have multiple plans (e.g. produced by different LLMs) you can\ncombine them into a single DAG:\n\n```python\nfrom tygent import parse_plans, Scheduler\n\ndag, critical = parse_plans([plan_a, plan_b])\nscheduler = Scheduler(dag)\nscheduler.priority_nodes = critical\n```\n\n## Testing\n\n### Running Tests\n\nMake sure to install the package in editable mode before executing the tests.\n\n```bash\n# Install test dependencies\npip install pytest pytest-asyncio\n\n# Install package in development mode\npip install -e .\n\n# Run core tests (always pass)\npytest tests/test_dag.py tests/test_multi_agent.py -v\n\n# Run all tests\npytest tests/ -v\n\n# Run with coverage\npytest tests/ --cov=tygent --cov-report=html\n```\n\n### Test Coverage\n\nOur test suite covers:\n- **Core DAG functionality**: Node management, topological sorting, parallel execution\n- **Multi-agent communication**: Message passing, agent orchestration, conversation history\n- **Async operations**: Proper async/await handling, concurrent execution\n- **Error handling**: Graceful failure recovery, fallback mechanisms\n\n**Current Status**: 14/14 core tests passing \u2705\n\n#### Recent Test Fixes (v1.1)\n- Fixed Message interface to match TypedDict implementation\n- Corrected async timestamp handling using `asyncio.get_event_loop().time()`\n- Added pytest.ini configuration for proper async test support\n- Updated MultiAgentManager constructor calls with required name parameter\n- Removed dependencies on non-existent classes (AgentRole, OptimizationSettings)\n\n### CI/CD\n\nGitHub Actions workflow automatically runs:\n- **Multi-version testing**: Python 3.8, 3.9, 3.10, 3.11\n- **Multi-platform**: Ubuntu, macOS, Windows  \n- **Code quality**: flake8 linting, black formatting, mypy type checking\n- **Package building**: Automated wheel and source distribution creation\n- **PyPI publishing**: Automatic publishing on main branch pushes\n- **Coverage reporting**: HTML and LCOV coverage reports\n\nTriggers: Every push and pull request to main/develop branches\n\n## Framework Integrations\n\n### Supported Frameworks\n- **CrewAI**: Multi-agent coordination\n- **Microsoft Semantic Kernel**: Plugin optimization\n- **LangSmith**: Experiment tracking integration\n- **LangFlow**: Visual workflow authoring\n- **Custom Agents**: Universal function acceleration\n\n### External Service Integrations\n- **OpenAI**: GPT-4, GPT-3.5-turbo optimization\n- **Google AI**: Gemini model integration\n- **Microsoft Azure**: Azure OpenAI service\n- **Salesforce**: Einstein AI and CRM operations\n- **HuggingFace**: Transformer models\n\n## Performance Benchmarks\n\nBenchmark tests live under `tests/benchmarks/` and compare sequential\nexecution with Tygent's scheduler. Typical results on a small DAG of four\ndependent tasks:\n\n| Scenario                 | Time (s) |\n|--------------------------|---------:|\n| Sequential execution     | ~0.70    |\n| Scheduler (1 worker)     | ~0.72    |\n| Scheduler (2 workers)    | ~0.52    |\n\nRun the benchmarks using:\n\n```bash\npip install -e .\npytest tests/benchmarks/ -v\n```\n\n## Development\n\n### Project Structure\n```\ntygent-py/\n\u251c\u2500\u2500 tygent/\n\u2502   \u251c\u2500\u2500 __init__.py          # Main exports\n\u2502   \u251c\u2500\u2500 accelerate.py        # Core acceleration wrapper\n\u2502   \u251c\u2500\u2500 dag.py              # DAG implementation\n\u2502   \u251c\u2500\u2500 nodes.py            # Node types (Tool, LLM, etc.)\n\u2502   \u251c\u2500\u2500 scheduler.py        # Execution scheduler\n\u2502   \u251c\u2500\u2500 multi_agent.py      # Multi-agent system\n\u2502   \u251c\u2500\u2500 adaptive_executor.py # Dynamic DAG modification\n\u2502   \u2514\u2500\u2500 integrations/       # Framework integrations\n\u251c\u2500\u2500 tests/                  # Test suite\n\u251c\u2500\u2500 examples/              # Usage examples\n\u2514\u2500\u2500 docs/                  # Documentation\n```\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Install development dependencies: `pip install -e \".[dev]\"`\n4. Run tests: `pytest tests/ -v`\n5. Commit changes: `git commit -am 'Add feature'`\n6. Push to branch: `git push origin feature-name`\n7. Submit a pull request\n\n### Code Quality\n\n- **Type hints**: Full type annotation coverage\n- **Testing**: Comprehensive test suite with >90% coverage\n- **Linting**: Black formatting, flake8 compliance\n- **Documentation**: Detailed docstrings and examples\n\n## License\n\nCreative Commons Attribution-NonCommercial 4.0 International License.\n\nSee [LICENSE](LICENSE) for details.\n\n## Support\n\n- **Documentation**: [https://tygent.ai/docs](https://tygent.ai/docs)\n- **Issues**: [GitHub Issues](https://github.com/tygent-ai/tygent-py/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/tygent-ai/tygent-py/discussions)\n- **Email**: support@tygent.ai\n\n---\n\n**Transform your agents. Accelerate your AI.**\n",
    "bugtrack_url": null,
    "license": "CC BY-NC 4.0",
    "summary": "Transform LLM Agents into High-Performance Engines with DAG optimization",
    "version": "0.4.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/tygent-ai/tygent-py/issues",
        "Documentation": "https://tygent.ai/docs",
        "Homepage": "https://github.com/tygent-ai/tygent-py"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0f4842c147d834315d322a7b3004c9e32547ecf75683056727ef3911be9b837f",
                "md5": "11d9f140bd9f99bc509af4e802cd1067",
                "sha256": "20bcba772052ac9d388a5be11b4826735853d6ab36ff377098381dad32428a1d"
            },
            "downloads": -1,
            "filename": "tygent-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "11d9f140bd9f99bc509af4e802cd1067",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 41951,
            "upload_time": "2025-07-11T20:57:50",
            "upload_time_iso_8601": "2025-07-11T20:57:50.926975Z",
            "url": "https://files.pythonhosted.org/packages/0f/48/42c147d834315d322a7b3004c9e32547ecf75683056727ef3911be9b837f/tygent-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cae822ac99b6f363b713fd690f018c05b54689c58f3ea2cf242a3d4c1eae9606",
                "md5": "20d73d7a2a3731af82f242faa9d283e4",
                "sha256": "0dfefaa1ac3466fd162784860e19de8c085742b709180c6bef996753856766dd"
            },
            "downloads": -1,
            "filename": "tygent-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "20d73d7a2a3731af82f242faa9d283e4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 40589,
            "upload_time": "2025-07-11T20:57:52",
            "upload_time_iso_8601": "2025-07-11T20:57:52.466871Z",
            "url": "https://files.pythonhosted.org/packages/ca/e8/22ac99b6f363b713fd690f018c05b54689c58f3ea2cf242a3d4c1eae9606/tygent-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-11 20:57:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tygent-ai",
    "github_project": "tygent-py",
    "github_not_found": true,
    "lcname": "tygent"
}
        
Elapsed time: 1.71262s