A production-ready monorepo for building Agentic AI applications with LangChain and Ollama. Get from zero to running agent in under 5 minutes with built-in scaffolding, shared utilities, and enterprise-grade features.
TL;DR: Production LLM projects with SDK tooling, automatic observability, 75% test coverage, and optional Vault integration. Perfect for teams building multiple AI agents with consistent patterns.
Prerequisites: Python 3.10+, Ollama, Git
# 1. Install uv package manager
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 2. Clone repository
git clone https://github.com/vibhatsrivastava/Agentic_AI_Development_Framework.git
cd Agentic_AI_Development_Framework
# 3. Configure environment
cp .env.example .env
# Edit .env with your OLLAMA_BASE_URL and other settings
# 4. Install CLI globally
uv tool install ./cli
# 5. Create your first project (auto-creates venv and installs dependencies)
ai-agent-builder new-project 02_my_agent --arch langgraph
# 6. Run your agent
cd projects/02_my_agent
.venv\Scripts\Activate.ps1 # Windows
python src/main.pyWhat just happened? The CLI automatically created a .venv, installed all dependencies, generated a complete LangGraph agent with tests, and configured observability. You're ready to code.
Every project created with this framework includes:
- LLM Factory — Unified interface (
get_llm(),get_chat_llm(),get_embeddings()) for Ollama models - HashiCorp Vault Integration — Optional centralized secret management with
.envfallback - Langfuse Observability — Always-on LLM tracing, cost tracking, and performance analytics (can be disabled)
- Rate Limiting — Token bucket algorithm prevents API rate limit issues
- Retry Logic — Exponential backoff for transient failures
- Token Counting — Track LLM usage and estimate costs
- Structured Logging — Configurable logging with
LOG_LEVELsupport - Environment Management — Hierarchical
.envloading (root + project-specific)
- 3 Architecture Templates — LCEL chains, LangGraph agents, or custom minimal projects
- Automatic Setup — Creates
.venv, installs dependencies, generates tests with 75% coverage baseline - Integration Code Generation — Mix-and-match vector stores, caching, and monitoring
- Project Validation — Built-in checks for structure and configuration correctness
- CI/CD Pipeline — GitHub Actions with automated testing, CODEOWNERS approval, staging/production deployment
- GitHub Copilot Integration — Assign issues to Copilot with
/implement-plancommand - Microsoft Teams Notifications — Rich adaptive cards for PR events and issue updates
- Multi-Repository Support — Manage multiple projects with flexible token management
| Integration | Type | Use Case |
|---|---|---|
| Chroma | Local | Development and prototyping |
| pgvector | PostgreSQL | Production RAG systems |
| FAISS | Local | High-performance CPU-optimized search |
| Integration | Type | Use Case |
|---|---|---|
| Redis | In-memory | Cache expensive LLM calls, session storage |
| In-Memory LRU | Built-in | Simple projects without Redis |
| Integration | Type | Use Case |
|---|---|---|
| Langfuse | Always-on | LLM tracing, cost tracking, evals |
| Integration | Type | Use Case |
|---|---|---|
| Ansible AWX | Orchestration | Scheduled agent execution, credential management |
| GitHub Actions | CI/CD | Automated testing, deployment, Copilot integration |
| Integration | Type | Use Case |
|---|---|---|
| GitHub API | Platform | Issue reporting, analysis, automated recommendations |
| Microsoft Teams | Notifications | Adaptive cards for reports and alerts |
Generate projects with integrations:
# RAG system with pgvector and Langfuse
ai-agent-builder new-project 03_rag_app --arch lcel --integrations pgvector,langfuse
# Cached agent with Redis
ai-agent-builder new-project 04_cached_agent --arch langgraph --integrations redisSee docs/sdk.md for complete integration catalog and usage guide.
Agentic_AI_Development_Framework/
├── cli/ # SDK for project scaffolding (ai-agent-builder)
├── common/ # Shared utilities (imported by all projects)
│ ├── llm_factory.py # get_llm(), get_chat_llm(), get_embeddings()
│ ├── langfuse_tracing.py # Always-on observability callbacks
│ ├── vault.py # Optional Vault integration
│ ├── rate_limiter.py # Token bucket rate limiting
│ ├── retry.py # Exponential backoff retry logic
│ ├── token_counter.py # Usage tracking
│ ├── utils.py # get_logger(), require_env(), load_project_env()
│ └── prompts/ # Shared prompt templates (QA, RAG, ReAct)
├── projects/ # Self-contained AI projects
│ ├── 01_hello_langchain/ # Minimal LCEL chain example
│ ├── 03_weather_reporting_agent/ # LangGraph agent with tools
│ └── 04_github_issue_reporter/ # GitHub API integration, AWX automation
├── docs/ # Comprehensive documentation
├── Quick-Reference/ # Learning resources (concepts, patterns)
├── .env.example # Environment template (copy to .env)
├── requirements-base.txt # Shared dependencies
└── pytest.ini # Test configuration (75% coverage)
Architecture principle: common/ package provides shared infrastructure. Projects import from common/ as an installed package (ai-agent-common), never using path hacks.
| # | Project | Architecture | Integrations | Description |
|---|---|---|---|---|
| 01 | Hello LangChain | LCEL | None | Minimal chain: prompt → LLM → parser |
| 03 | Weather Agent | LangGraph | None | ReAct agent with custom tools |
| 04 | GitHub Issue Reporter | LangGraph | GitHub API, AWX, Teams | Automated issue analysis, Teams notifications |
Create your own:
ai-agent-builder new-project 05_my_project --arch [lcel|langgraph|custom]All projects use common/llm_factory.py for consistent LLM access:
from common.llm_factory import get_llm, get_chat_llm, get_embeddings
# Simple string chains, single-turn prompts
llm = get_llm()
# Agents, memory, tool-calling, JSON mode, LangGraph
chat = get_chat_llm(format="json")
# RAG, vector stores, similarity search
embeddings = get_embeddings()Benefits:
- Automatic
.envconfiguration (readsOLLAMA_BASE_URL,OLLAMA_API_KEY,OLLAMA_MODEL) - Optional Vault integration with automatic fallback
- Always-on Langfuse tracing (can be disabled)
- Easy model swapping via environment variables
See docs/llm_factory.md for detailed guide.
Hierarchical loading strategy:
- Root
.env→ Common variables (OLLAMA_, VAULT_, LANGFUSE_*, LOG_LEVEL) - Project
.env(optional) → Integration-specific variables (GITHUB_, REDIS_, PGVECTOR_*)
Simple projects use only root .env. Integration projects add their own .env for integration variables.
Example root .env (required):
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_API_KEY= # Leave blank for local Ollama
OLLAMA_MODEL=gpt-oss:20b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
LOG_LEVEL=INFO
# Langfuse (always-on by default)
LANGFUSE_ENABLED=true
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_HOST=http://localhost:3000
# Vault (optional, disabled by default)
VAULT_ENABLED=false
VAULT_ADDR=http://vault.example.com:8200
VAULT_TOKEN=hvs.your_vault_tokenExample project .env (integration-specific):
# projects/04_github_issue_reporter/.env
GITHUB_TOKEN=ghp_your_token
GITHUB_REPO_OWNER=your_org
GITHUB_REPO_NAME=your_repo
MS_TEAMS_WEBHOOK_URL=https://...webhook.office.com/...See docs/getting_started.md for complete setup guide.
- Centralized secret storage for teams
- Automatic fallback to
.envif Vault unreachable - Zero code changes — transparent credential retrieval
- See docs/vault.md for setup
- Always-on LLM tracing by default (
LANGFUSE_ENABLED=true) - Automatic cost tracking and performance analytics
- Works with Vault integration for secure key storage
- Graceful degradation if unavailable
- See docs/langfuse.md for dashboard guide
All code must maintain ≥75% test coverage (enforced via pytest.ini).
# Run tests with coverage report
pytest --cov --cov-report=term-missing
# Verify ≥75% coverage (fails if below threshold)
pytest --cov --cov-fail-under=75
# Run only unit tests (fast)
pytest -m unitKey principles:
- All LLM/Ollama calls must be mocked (no real API calls in tests)
- Use shared fixtures from
common/tests/conftest.py - SDK auto-generates test templates with 75% coverage baseline
See docs/testing.md for comprehensive guide and docs/TESTING_STRATEGY.md for philosophy.
Automated workflows powered by GitHub Actions:
- GitHub Copilot Integration — Assign issues to Copilot with
/implement-plancommand - Automated Testing — Run tests on every push with 75% coverage requirement
- CODEOWNERS Approval — Only authorized users can trigger implementation
- Automated Staging — Deploy to staging from
devbranch automatically - Teams Notifications — Rich adaptive cards in Microsoft Teams for PR events
# Trigger GitHub Copilot implementation (issue comment, CODEOWNERS only)
/implement-plan # Uses defaults
/implement-plan branch=feature/auth model=gpt-4.1 # Custom config- GitHub Copilot Integration — Complete workflow guide
- CI/CD Overview — Pipeline architecture, deployment flows
- Teams Notifications — Webhook setup and card format
| Guide | Goal |
|---|---|
| Getting Started | Set up environment, configure Ollama (local or remote), troubleshoot connection issues |
| Prerequisites | Install Python 3.10+, uv, Ollama, and verify system requirements |
| Guide | Goal |
|---|---|
| SDK Documentation | Use CLI to scaffold projects, compose integrations, validate structure |
| LLM Factory | Choose correct LLM builder (get_llm vs get_chat_llm), swap models, debug issues |
| Models Reference | Compare models, understand capabilities, pull and configure alternatives |
| Guide | Goal |
|---|---|
| HashiCorp Vault | Set up centralized secret management, configure team workflows |
| Langfuse Observability | Monitor LLM usage, track costs, analyze performance with dashboards |
| Guide | Goal |
|---|---|
| Testing | Write effective tests, mock LLMs, achieve 75% coverage |
| Contributing | Add new projects, follow naming conventions, maintain standards |
| CI/CD | Understand deployment pipeline, configure automation, approve implementations |
| Resource | Topic |
|---|---|
| What Is Agentic AI | Core concepts, definitions, patterns |
| ReAct Pattern | Reason + Act pattern, implementation guide |
| RAG Pipeline | Vector stores, embeddings, retrieval strategies |
| Ollama Guide | Model management, API reference, optimization |
| GitHub Copilot | Workflow, best practices, interview Q&A |
Goal: Add high-quality projects that demonstrate specific patterns or integrations.
How to contribute:
- Use the SDK (recommended):
ai-agent-builder new-project NN_your_project --arch [lcel|langgraph|custom] - Follow naming convention:
NN_descriptive_name(e.g.,05_pdf_qa_agent) - Include tests: Achieve ≥75% coverage (
pytest --cov --cov-fail-under=75) - Document thoroughly: Write comprehensive README in your project directory
- Update this README: Add your project to the Example Projects table
See docs/contributing.md for complete guidelines.
MIT — Free to use, modify, and distribute.
Built with ❤️ for the LangChain community