A production-ready collection of AI agent templates with unified API access and Kubernetes deployment support. Built with ❤️ by the Noveum team.
This repository provides a comprehensive library of AI agents that can be deployed as microservices or used as templates for custom implementations. Each agent includes complete configuration, testing, and deployment manifests with built-in Noveum observability.
- Agent Templates: Ready-to-use AI agents organized by category
- Unified API: REST API for invoking any agent via HTTP endpoints
- Kubernetes Native: Production-ready deployment with auto-scaling
- Multi-Provider Support: OpenAI, Anthropic, Azure, AWS, and GCP
- Observability: Built-in tracing with Noveum integration
- Testing: Comprehensive test suite with CI/CD support
agents-library/
├── src/ # Source code
│ ├── agents/ # Agent implementations
│ │ ├── basic/ # Simple foundational agents
│ │ ├── business/ # Business domain agents
│ │ ├── technical/ # Technical and development agents
│ │ ├── creative/ # Creative and content agents
│ │ └── specialized/ # Domain-specific agents
│ ├── api/ # FastAPI application
│ │ ├── main.py # API server
│ │ ├── agent_registry.py # Agent discovery
│ │ └── client.py # Python clients
│ ├── shared/ # Shared components
│ │ ├── llm_client.py # Multi-provider LLM client
│ │ ├── memory.py # Memory management
│ │ └── noveum_tracer.py # Tracing integration
│ └── tests/ # Test suite
├── k8s/ # Kubernetes manifests
├── docs/ # Documentation
├── examples/ # Usage examples
└── scripts/ # Utility scripts
- Description: A foundational conversational AI agent with memory management
- Use Cases: Customer service, general Q&A, interactive chatbots
- Features: Multi-provider LLM support, conversation memory, configurable personality
- Endpoints:
chat
,process
- Documentation: README
- Configuration: agent_info.yaml
- Description: Specialized customer support agent with ticket management and escalation workflows
- Use Cases: Automated customer service, support ticket handling, FAQ responses
- Features: Ticket classification, escalation detection, knowledge base integration
- Endpoints:
chat
,support
,process
- Documentation: README
- Configuration: agent_info.yaml
Ready for expansion - contribute your technical agents here!
- Code Assistant: Code generation, debugging, and review
- DevOps Helper: Infrastructure automation and monitoring
- Data Analyst: Data processing and visualization
- API Documentation: Automatic API documentation generation
Ready for expansion - contribute your creative agents here!
- Content Writer: Blog posts, articles, and marketing copy
- Social Media Manager: Post generation and engagement strategies
- Design Assistant: Creative briefs and design recommendations
- Copywriter: Marketing copy and advertising content
Ready for expansion - contribute your domain-specific agents here!
- Finance Advisor: Financial analysis and investment advice
- Healthcare Assistant: Medical information and health guidance
- Legal Advisor: Legal research and compliance assistance
- Education Tutor: Personalized learning and tutoring
# Clone repository
git clone https://github.com/Noveum/agents-library.git
cd agents-library
# Install dependencies
pip install -r src/api/requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your API keys (see Configuration section below)
# Start API server
python -m src.api.main
Access the API at http://localhost:8000
and documentation at http://localhost:8000/docs
.
# Development
docker-compose --profile dev up
# Production
docker-compose up --build
# Quick deployment
./k8s/deploy.sh
# Manual deployment
kubectl apply -f k8s/
Variable | Description | Required | Default | Get API Key |
---|---|---|---|---|
OPENAI_API_KEY |
OpenAI API key | Yes* | - | OpenAI Platform |
ANTHROPIC_API_KEY |
Anthropic API key | Yes* | - | Anthropic Console |
NOVEUM_API_KEY |
Noveum tracing key | No | - | Noveum Dashboard |
LLM_PROVIDER |
LLM provider | No | openai |
- |
LLM_MODEL |
Model name | No | gpt-3.5-turbo |
- |
NOVEUM_ENABLED |
Enable tracing | No | true |
- |
*At least one LLM provider API key is required.
This library comes with built-in Noveum integration for comprehensive observability:
- Automatic Tracing: All agent interactions are automatically traced
- Performance Monitoring: Track response times, token usage, and costs
- Error Tracking: Detailed error logging and debugging information
- Analytics Dashboard: Visualize agent usage patterns and performance
- Sign up: Create a free account at noveum.ai
- Get API Key: Generate your API key in the Noveum Dashboard
- Configure: Add
NOVEUM_API_KEY=your-key-here
to your.env
file - Monitor: View real-time analytics in your Noveum Dashboard
- 📊 Real-time Analytics: Monitor agent performance and usage
- 🔍 Detailed Tracing: Track every LLM call and agent interaction
- 💰 Cost Tracking: Monitor API costs across all providers
- 🚨 Error Monitoring: Get alerts for failures and performance issues
- 📈 Usage Insights: Understand user behavior and agent effectiveness
Learn more at noveum.ai or check the documentation.
Each agent includes an agent_info.yaml
file with metadata:
agent_id: category.agent_name
name: Human Readable Name
category: basic|business|technical|creative|specialized
description: Agent description
endpoints: [chat, process, support]
configuration:
required_env_vars: [OPENAI_API_KEY]
optional_env_vars: [LLM_MODEL, TEMPERATURE]
curl http://localhost:8000/agents
curl -X POST http://localhost:8000/agents/basic.simple_chat_agent/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Hello, how can you help me?",
"user_id": "user123"
}'
curl -X POST http://localhost:8000/agents/business.helpdesk_agent/support \
-H "Content-Type: application/json" \
-d '{
"message": "I need help with my account login",
"user_id": "customer456"
}'
from src.api.client import AgentsAPIClient
with AgentsAPIClient("http://localhost:8000") as client:
# List agents
agents = client.list_agents()
print(f"Available agents: {[agent.name for agent in agents.agents]}")
# Chat with basic agent
response = client.chat(
"basic.simple_chat_agent",
"What can you do?",
user_id="user123"
)
print(f"Agent: {response.response}")
# Submit support request
support_response = client.support_request(
"business.helpdesk_agent",
"I need help with billing",
user_id="customer789"
)
print(f"Support: {support_response.response}")
-
Choose Category: Select appropriate category in
src/agents/
-
Create Directory: Follow the established structure
src/agents/category/agent-name/ ├── main.py # Agent implementation ├── config.py # Configuration classes ├── requirements.txt # Dependencies ├── agent_info.yaml # Metadata ├── README.md # Documentation └── tests/ # Test files
-
Implement Agent: Follow the pattern from existing agents
class MyAgent: async def chat(self, message: str, user_id: str) -> str: # Implementation pass
-
Add Documentation: Create comprehensive README and examples
-
Test: Add unit tests and integration tests
-
Submit: Agent will be automatically discovered and available via API
Each agent follows this consistent structure:
- main.py: Core agent implementation
- config.py: Configuration classes and validation
- agent_info.yaml: Agent metadata and capabilities
- README.md: Usage documentation and examples
- requirements.txt: Python dependencies
- .env.example: Environment configuration template
- tests/: Unit tests and test utilities
# Run all tests
pytest
# Run specific categories
pytest -m unit
pytest -m integration
pytest -m api
# With coverage
pytest --cov=src --cov-report=html
# Format code
black src/
# Lint code
flake8 src/
# Type checking
mypy src/
The repository includes production-ready Kubernetes manifests in k8s/
:
- Namespace: Isolated environment
- ConfigMap: Application configuration
- Secret: API keys and sensitive data
- Deployment: Application pods with health checks
- Service: Internal load balancing
- Ingress: External access with SSL/TLS
- HPA: Horizontal pod autoscaling
- API keys stored as Kubernetes secrets
- Non-root container execution
- Network policies for pod isolation
- RBAC for service account permissions
- Input validation and rate limiting
- Health check endpoints for all agents
- Prometheus metrics collection
- Structured JSON logging
- Distributed tracing with Noveum
- Grafana dashboards for visualization
Method | Endpoint | Description | Example |
---|---|---|---|
GET |
/ |
API information | Try it |
GET |
/agents |
List all agents | Try it |
GET |
/agents/{id} |
Get agent details | Try it |
POST |
/agents/{id}/chat |
Chat with agent | See examples above |
POST |
/agents/{id}/process |
Process message | See examples above |
POST |
/agents/{id}/support |
Support request | See examples above |
GET |
/health |
System health | Try it |
GET |
/health/{id} |
Agent health | Try it |
GET |
/stats |
Registry statistics | Try it |
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- OpenAPI Spec: http://localhost:8000/openapi.json
{
"agent_id": "basic.simple_chat_agent",
"response": "Hello! How can I help you?",
"metadata": {
"user_id": "user123",
"processing_time": 0.234
},
"processing_time": 0.234,
"timestamp": "2024-01-01T12:00:00Z",
"success": true,
"error": null
}
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-new-agent
- Add your agent: Follow the established patterns and structure
- Include tests: Add comprehensive tests for your agent
- Update documentation: Add your agent to this README
- Submit a pull request: We'll review and merge your contribution
- Follow the established directory structure
- Include comprehensive documentation
- Add unit tests and integration tests
- Use type hints throughout your code
- Follow Python best practices (PEP 8)
- Include example usage in your agent's README
See CONTRIBUTING.md for detailed guidelines.
- Simple Chat: Basic conversation with an agent
- Customer Support: Handling support requests
- Batch Processing: Processing multiple requests
- Custom Configuration: Advanced configuration options
- Flask Integration: Using agents in Flask applications
- FastAPI Integration: Building on top of the API
- Webhook Handler: Processing webhooks with agents
- Scheduled Tasks: Running agents on schedules
- Agent Not Found: Check agent directory structure and
agent_info.yaml
- Import Errors: Verify Python path and dependencies
- API Key Issues: Ensure environment variables are set correctly
- Health Check Failures: Check agent dependencies and LLM connectivity
# Run with debug logging
LOG_LEVEL=debug python -m src.api.main
# Enable auto-reload for development
python -m src.api.main --reload
- Documentation: Complete guides in this repository
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Noveum Support: [email protected]
- Enterprise Support: Contact the Noveum team
Apache License 2.0 - see LICENSE for details.
- Built with FastAPI for the API framework
- Powered by OpenAI and Anthropic LLMs
- Observability by Noveum
- Deployed on Kubernetes
Ready to build amazing AI agents? Start with our templates and deploy to production in minutes!
Built with ❤️ by the Noveum team