test3 / AGENTS.md
DesertWolf's picture
Upload folder using huggingface_hub
447ebeb verified

INSTRUCTIONS FOR LITELLM

This document provides comprehensive instructions for AI agents working in the LiteLLM repository.

OVERVIEW

LiteLLM is a unified interface for 100+ LLMs that:

  • Translates inputs to provider-specific completion, embedding, and image generation endpoints
  • Provides consistent OpenAI-format output across all providers
  • Includes retry/fallback logic across multiple deployments (Router)
  • Offers a proxy server (LLM Gateway) with budgets, rate limits, and authentication
  • Supports advanced features like function calling, streaming, caching, and observability

REPOSITORY STRUCTURE

Core Components

  • litellm/ - Main library code
    • llms/ - Provider-specific implementations (OpenAI, Anthropic, Azure, etc.)
    • proxy/ - Proxy server implementation (LLM Gateway)
    • router_utils/ - Load balancing and fallback logic
    • types/ - Type definitions and schemas
    • integrations/ - Third-party integrations (observability, caching, etc.)

Key Directories

  • tests/ - Comprehensive test suites
  • docs/my-website/ - Documentation website
  • ui/litellm-dashboard/ - Admin dashboard UI
  • enterprise/ - Enterprise-specific features

DEVELOPMENT GUIDELINES

MAKING CODE CHANGES

  1. Provider Implementations: When adding/modifying LLM providers:

    • Follow existing patterns in litellm/llms/{provider}/
    • Implement proper transformation classes that inherit from BaseConfig
    • Support both sync and async operations
    • Handle streaming responses appropriately
    • Include proper error handling with provider-specific exceptions
  2. Type Safety:

    • Use proper type hints throughout
    • Update type definitions in litellm/types/
    • Ensure compatibility with both Pydantic v1 and v2
  3. Testing:

    • Add tests in appropriate tests/ subdirectories
    • Include both unit tests and integration tests
    • Test provider-specific functionality thoroughly
    • Consider adding load tests for performance-critical changes

IMPORTANT PATTERNS

  1. Function/Tool Calling:

    • LiteLLM standardizes tool calling across providers
    • OpenAI format is the standard, with transformations for other providers
    • See litellm/llms/anthropic/chat/transformation.py for complex tool handling
  2. Streaming:

    • All providers should support streaming where possible
    • Use consistent chunk formatting across providers
    • Handle both sync and async streaming
  3. Error Handling:

    • Use provider-specific exception classes
    • Maintain consistent error formats across providers
    • Include proper retry logic and fallback mechanisms
  4. Configuration:

    • Support both environment variables and programmatic configuration
    • Use BaseConfig classes for provider configurations
    • Allow dynamic parameter passing

PROXY SERVER (LLM GATEWAY)

The proxy server is a critical component that provides:

  • Authentication and authorization
  • Rate limiting and budget management
  • Load balancing across multiple models/deployments
  • Observability and logging
  • Admin dashboard UI
  • Enterprise features

Key files:

  • litellm/proxy/proxy_server.py - Main server implementation
  • litellm/proxy/auth/ - Authentication logic
  • litellm/proxy/management_endpoints/ - Admin API endpoints

MCP (MODEL CONTEXT PROTOCOL) SUPPORT

LiteLLM supports MCP for agent workflows:

  • MCP server integration for tool calling
  • Transformation between OpenAI and MCP tool formats
  • Support for external MCP servers (Zapier, Jira, Linear, etc.)
  • See litellm/experimental_mcp_client/ and litellm/proxy/_experimental/mcp_server/

TESTING CONSIDERATIONS

  1. Provider Tests: Test against real provider APIs when possible
  2. Proxy Tests: Include authentication, rate limiting, and routing tests
  3. Performance Tests: Load testing for high-throughput scenarios
  4. Integration Tests: End-to-end workflows including tool calling

DOCUMENTATION

  • Keep documentation in sync with code changes
  • Update provider documentation when adding new providers
  • Include code examples for new features
  • Update changelog and release notes

SECURITY CONSIDERATIONS

  • Handle API keys securely
  • Validate all inputs, especially for proxy endpoints
  • Consider rate limiting and abuse prevention
  • Follow security best practices for authentication

ENTERPRISE FEATURES

  • Some features are enterprise-only
  • Check enterprise/ directory for enterprise-specific code
  • Maintain compatibility between open-source and enterprise versions

COMMON PITFALLS TO AVOID

  1. Breaking Changes: LiteLLM has many users - avoid breaking existing APIs
  2. Provider Specifics: Each provider has unique quirks - handle them properly
  3. Rate Limits: Respect provider rate limits in tests
  4. Memory Usage: Be mindful of memory usage in streaming scenarios
  5. Dependencies: Keep dependencies minimal and well-justified

HELPFUL RESOURCES

  • Main documentation: https://docs.litellm.ai/
  • Provider-specific docs in docs/my-website/docs/providers/
  • Admin UI for testing proxy features

WHEN IN DOUBT

  • Follow existing patterns in the codebase
  • Check similar provider implementations
  • Ensure comprehensive test coverage
  • Update documentation appropriately
  • Consider backward compatibility impact