Skip to content

FastADK v0.2.0: Enterprise-Ready Agent Development Kit

Latest

Choose a tag to compare

@Mathews-Tom Mathews-Tom released this 09 Jul 19:52
· 29 commits to main since this release
27f735c

FastADK v0.2.0: Enterprise-Ready Agent Development Kit

Release Highlights

FastADK 0.2.0 is a major release that transforms the framework into an enterprise-ready agent development toolkit. This version introduces comprehensive token & cost tracking, advanced memory management, performance optimizations, extended integrations, improved developer experience, and robust observability features.

FastADK Banner

FastADK Poster

🚀 Major Features

💰 Token and Cost Management

  • Complete token usage tracking across all providers
  • Cost estimation based on provider-specific pricing
  • Configurable budgets with alerts and automatic cutoffs
  • Detailed metrics for token usage optimization

🧠 Advanced Context and Memory

  • Sliding window memory with automatic summarization
  • Vector store integration for semantic memory capabilities
  • Persistent storage backends (Redis, SQL) for production use
  • Customizable context policies for fine-grained control

⚡ Performance Optimizations

  • True async execution for all model and tool calls
  • Parallel workflow execution for complex operations
  • Intelligent caching to reduce redundant LLM calls
  • Lazy tool execution for improved efficiency
  • Batch processing utilities for high-throughput scenarios

🔌 Extensibility and Integrations

  • Pluggable model provider interface for custom backends
  • Dynamic plugin system for third-party extensions
  • Slack and Discord adapters for easy deployment
  • Multi-agent orchestration for complex scenarios
  • Fine-tuning helpers for specialized models

🛠️ Developer Experience

  • Interactive REPL mode for rapid prototyping
  • Enhanced CLI tools for project scaffolding and management
  • Comprehensive testing utilities with mocks and scenarios
  • VSCode integration with snippets and settings
  • Configuration validation and hot reload capabilities

📊 Observability and Monitoring

  • Structured logging for all agent events
  • OpenTelemetry integration for distributed tracing
  • Prometheus metrics for real-time monitoring
  • Sensitive data redaction for privacy compliance

📚 Documentation and Examples

  • Expanded cookbook with practical recipes
  • New example agents for real-world use cases
  • Streamlit UI example for web interfaces
  • Comprehensive API reference and conceptual guides

📋 Detailed Changelog

Added

Token and Cost Tracking

  • Added TokenUsage data class to record prompt, completion, and total tokens
  • Extended each provider client to capture usage from responses
  • Created CostCalculator utility for estimating costs based on token usage
  • Added TokenBudget component with configurable budgets and alerts
  • Added structured logging for token usage and costs
  • Added Prometheus metrics for token usage and cost estimation

Context Management and Memory Improvements

  • Added ContextPolicy abstract class with built-in policies (MostRecent, SummarizeOlder, HybridVectorRetrieval)
  • Implemented SummarizationService for LLM-based conversation summarization
  • Added vector store backend integration with VectorMemoryBackend
  • Implemented persistent memory backends for Redis and SQL
  • Added configuration options for memory policies

Scalability and Performance Optimizations

  • Improved async execution for all model and tool calls
  • Enhanced Workflow class to support concurrent sub-tasks
  • Implemented CacheManager with in-memory LRU and Redis options
  • Added lazy tool execution logic to improve efficiency
  • Created BatchUtils for common bulk operations

Extensibility and Integration

  • Defined ModelProviderABC interface for custom providers
  • Implemented PluginManager for discovering and loading custom modules
  • Added Slack and Discord adapters for integration
  • Added multi-agent orchestration API
  • Included fine-tuning helper module

Developer Experience and Tooling

  • Extended CLI with repl, init, and config validate commands
  • Added verbose debugging with chain-of-thought capture
  • Created MockLLM and MockTool classes for testing
  • Added test scenario decorators for structured testing
  • Added VSCode snippets and configuration support
  • Implemented config reload endpoint

Observability and Monitoring

  • Added structured JSON logging for all agent events
  • Integrated OpenTelemetry for traces and spans
  • Added Prometheus metrics endpoint
  • Implemented redaction filter for sensitive data

UI/UX and Documentation

  • Added cookbook, plugin guide, and performance tuning documentation
  • Expanded examples folder with new agent templates
  • Implemented project scaffolding with fastadk init
  • Added Streamlit chat UI example
  • Added community feedback links

Changed

  • Improved async performance and error handling
  • Enhanced memory management for long conversations
  • Optimized token usage and cost calculations
  • Upgraded provider integrations with the latest APIs

Fixed

  • Various bug fixes and stability improvements
  • Fixed memory leaks in long-running conversations
  • Addressed race conditions in async workflows
  • Improved error reporting and exception handling

🔧 Installation

pip install fastadk==0.2.0

Or using uv:

uv add fastadk==0.2.0

📖 Documentation

For comprehensive documentation, visit:
https://fastadk.dev

🎯 Example Usage

from fastadk.core import Agent, BaseAgent, tool

@Agent(
    model="gemini-1.5-pro",
    memory_backend="redis",
    cache_enabled=True
)
class WeatherAgent(BaseAgent):
    @tool
    def get_weather(self, location: str) -> str:
        """Get weather for a location."""
        # Implementation...
        return f"Weather for {location}: Sunny, 75°F"
    
    @tool
    def get_forecast(self, location: str, days: int = 5) -> list:
        """Get forecast for a location."""
        # Implementation...
        return [{"day": i, "forecast": "Sunny"} for i in range(1, days+1)]

# Create and run the agent
agent = WeatherAgent()
result = await agent.run("What's the weather in New York?")

❤️ Acknowledgements

Thank you to all contributors who helped make this release possible! Special thanks to our early adopters who provided valuable feedback and use cases.

🔜 What's Next

We're already planning the next release with:

  • Enhanced RAG capabilities
  • More third-party integrations
  • Function calling improvements
  • Multi-modal support

Stay tuned and join our community!