Skip to main content

CLI and API for 10xscale AgentFlow

Project description

AgentFlow CLI

A professional Python API framework for building agent-based applications with FastAPI, state graph orchestration, and comprehensive CLI tools.

๐Ÿ“š Documentation

Quick Start

Installation

pip install 10xscale-agentflow-cli

Initialize a New Project

# Create project structure
agentflow init

# Or with production config
agentflow init --prod

Start Development Server

agentflow api

Generate Docker Files

agentflow build --docker-compose

Key Features

  • โœ… CLI Tools - Professional command-line interface for scaffolding and deployment
  • โœ… State Graph Orchestration - Build complex agent workflows with LangGraph
  • โœ… FastAPI Backend - High-performance async web framework
  • โœ… Authentication - Built-in JWT auth and custom authentication support
  • โœ… ID Generation - Distributed Snowflake ID generation
  • โœ… Thread Management - Intelligent thread naming and conversation management
  • โœ… Docker Ready - Generate production-ready Docker files
  • โœ… Dependency Injection - InjectQ for clean dependency management
  • โœ… Development Tools - Hot-reload, pre-commit hooks, testing

CLI Commands

For detailed command documentation, see the CLI Guide.

agentflow init

Initialize a new project with configuration and sample graph.

# Basic initialization
agentflow init

# With production config (pyproject.toml, pre-commit hooks)
agentflow init --prod

# Custom directory
agentflow init --path ./my-project

# Force overwrite existing files
agentflow init --force

agentflow api

Start the development API server.

# Start with defaults (localhost:8000)
agentflow api

# Custom host and port
agentflow api --host 127.0.0.1 --port 9000

# Custom config file
agentflow api --config production.json

# Disable auto-reload
agentflow api --no-reload

# Verbose logging
agentflow api --verbose

agentflow build

Generate production Docker files.

# Generate Dockerfile
agentflow build

# Generate Dockerfile and docker-compose.yml
agentflow build --docker-compose

# Custom Python version and port
agentflow build --python-version 3.12 --port 9000

# Force overwrite
agentflow build --force

agentflow version

Display version information.

agentflow version

Configuration

The configuration file (agentflow.json) defines your agent, authentication, and infrastructure settings:

{
  "agent": "graph.react:app",
  "env": ".env",
  "auth": null,
  "checkpointer": null,
  "injectq": null,
  "store": null,
  "redis": null,
  "thread_name_generator": null
}

Configuration Options

Field Type Description
agent string Path to your compiled agent graph (required)
env string Path to environment variables file
auth null|"jwt"|object Authentication configuration
checkpointer string|null Path to custom checkpointer
injectq string|null Path to InjectQ container
store string|null Path to data store
redis string|null Redis connection URL
thread_name_generator string|null Path to custom thread name generator

See the Configuration Guide for complete details.

Authentication

AgentFlow supports multiple authentication strategies. See the Authentication Guide for complete details.

No Authentication

{
  "auth": null
}

JWT Authentication

agentflow.json:

{
  "auth": "jwt"
}

.env:

JWT_SECRET_KEY=your-super-secret-key
JWT_ALGORITHM=HS256

Custom Authentication

agentflow.json:

{
  "auth": {
    "method": "custom",
    "path": "auth.custom:MyAuthBackend"
  }
}

auth/custom.py:

from agentflow_cli import BaseAuth
from fastapi import Response, HTTPException
from fastapi.security import HTTPAuthorizationCredentials

class MyAuthBackend(BaseAuth):
    def authenticate(
        self,
        res: Response,
        credential: HTTPAuthorizationCredentials
    ) -> dict[str, any] | None:
        # Your authentication logic
        token = credential.credentials
        user = verify_token(token)

        if not user:
            raise HTTPException(401, "Invalid token")

        return {
            "user_id": user.id,
            "username": user.username,
            "email": user.email
        }

ID Generation

AgentFlow includes Snowflake ID generation for distributed, time-sortable unique IDs.

pip install "10xscale-agentflow-cli[snowflakekit]"

Usage:

from agentflow_cli import SnowFlakeIdGenerator

# Initialize
generator = SnowFlakeIdGenerator(
    snowflake_epoch=1704067200000,  # Jan 1, 2024
    snowflake_node_id=1,
    snowflake_worker_id=1
)

# Generate ID
id = await generator.generate()
print(f"Generated ID: {id}")

Environment Configuration:

SNOWFLAKE_EPOCH=1704067200000
SNOWFLAKE_NODE_ID=1
SNOWFLAKE_WORKER_ID=1
SNOWFLAKE_TIME_BITS=39
SNOWFLAKE_NODE_BITS=5
SNOWFLAKE_WORKER_BITS=8

See the ID Generation Guide for more details.

Thread Name Generation

Generate human-friendly names for conversation threads.

from agentflow_cli.src.app.utils.thread_name_generator import AIThreadNameGenerator

generator = AIThreadNameGenerator()
name = generator.generate_name()
# Output: "thoughtful-dialogue", "exploring-ideas", etc.

See the Thread Name Generator Guide for custom implementations.

Deployment

See the Deployment Guide for complete deployment instructions.

Docker Deployment

# Generate Docker files
agentflow build --docker-compose

# Build and run
docker compose up --build -d

# Check logs
docker compose logs -f

Kubernetes

See Deployment Guide - Kubernetes for complete manifests.

Cloud Platforms

Project Structure

agentflow-cli/
โ”œโ”€โ”€ agentflow_cli/          # Main package
โ”‚   โ”œโ”€โ”€ __init__.py        # Package exports
โ”‚   โ”œโ”€โ”€ cli/               # CLI commands
โ”‚   โ”‚   โ”œโ”€โ”€ main.py       # CLI entry point
โ”‚   โ”‚   โ””โ”€โ”€ commands/     # Command implementations
โ”‚   โ””โ”€โ”€ src/              # Application source
โ”‚       โ””โ”€โ”€ app/          # FastAPI application
โ”‚           โ”œโ”€โ”€ main.py   # App entry point
โ”‚           โ”œโ”€โ”€ core/     # Core functionality
โ”‚           โ”œโ”€โ”€ routers/  # API routes
โ”‚           โ””โ”€โ”€ utils/    # Utilities
โ”œโ”€โ”€ graph/                 # Agent graphs
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ react.py          # Sample React agent
โ”œโ”€โ”€ docs/                  # Documentation
โ”œโ”€โ”€ tests/                 # Test suite
โ”œโ”€โ”€ agentflow.json        # Configuration
โ”œโ”€โ”€ pyproject.toml        # Project metadata
โ””โ”€โ”€ README.md             # This file

Development

Setup

# Clone repository
git clone https://github.com/10xHub/agentflow-cli.git
cd agentflow-cli

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode
pip install -e ".[dev]"

# Install pre-commit hooks
pre-commit install

Testing

# Run all tests
pytest

# With coverage
pytest --cov=agentflow_cli --cov-report=html

# Run specific test file
pytest tests/test_cli.py -v

Code Quality

# Format code
ruff format .

# Lint code
ruff check .

# Fix auto-fixable issues
ruff check --fix .

Using the Makefile

# Show available commands
make help

# Install development dependencies
make dev-install

# Run tests
make test

# Format and lint
make format
make lint

# Build package
make build

# Clean build artifacts
make clean

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

License

MIT License - see LICENSE file for details.

Support

Credits

Developed by 10xScale and maintained by the community.


Made with โค๏ธ for the AI agent development community

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

10xscale_agentflow_cli-0.2.1.tar.gz (65.3 kB view details)

Uploaded Source

Built Distribution

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

10xscale_agentflow_cli-0.2.1-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

Details for the file 10xscale_agentflow_cli-0.2.1.tar.gz.

File metadata

  • Download URL: 10xscale_agentflow_cli-0.2.1.tar.gz
  • Upload date:
  • Size: 65.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for 10xscale_agentflow_cli-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7defb4f86720fb8e64b831c0c673e7109d81a78fb60aeb6e48fad0b16113b949
MD5 5d4dac83d0ae7a5fa5da65d359e40688
BLAKE2b-256 92e41037b3fcc8607b54ff66026f850334718a10b95a98746dab86cfce86384e

See more details on using hashes here.

File details

Details for the file 10xscale_agentflow_cli-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for 10xscale_agentflow_cli-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2bc96d3abb68699d87332fee646c74bf6b68d5039bce6f956b48315f0768ac0c
MD5 6519b0a6d5b5bb35b07109954d388d11
BLAKE2b-256 92e4a1b2a9cb5dab5df3332a82a097e722d453d6b760d46a1e7c34818e459d11

See more details on using hashes here.

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