Ecosystem
Integrations
Connect EvalGuard to your existing tools for notifications, issue tracking, CI/CD, and AI framework instrumentation.
Notifications & Alerting
Slack
Get notified in Slack when evals pass/fail, security scans complete, or monitoring alerts fire.
{
"type": "slack",
"webhookUrl": "https://hooks.slack.com/services/T00.../B00.../xxx",
"channel": "#ai-evals",
"events": ["eval.completed", "scan.completed", "monitoring.alert"]
}Discord
Send eval and scan results to a Discord channel via webhook.
{
"type": "discord",
"webhookUrl": "https://discord.com/api/webhooks/...",
"events": ["eval.completed", "scan.completed"]
}Microsoft Teams
Post results to a Teams channel via an incoming webhook connector.
{
"type": "teams",
"webhookUrl": "https://outlook.office.com/webhook/...",
"events": ["eval.completed", "scan.failed"]
}PagerDuty
Trigger PagerDuty incidents when security scans fail or monitoring thresholds are breached.
{
"type": "pagerduty",
"routingKey": "your-pagerduty-integration-key",
"severity": "critical",
"events": ["scan.failed", "monitoring.critical"]
}Issue Tracking
Jira
Automatically create Jira issues for failed eval cases or security findings.
{
"type": "jira",
"baseUrl": "https://your-org.atlassian.net",
"email": "you@company.com",
"apiToken": "your-jira-api-token",
"projectKey": "AI",
"issueType": "Bug",
"events": ["eval.failed", "scan.finding"]
}Linear
Create Linear issues from eval failures and security findings.
{
"type": "linear",
"apiKey": "lin_api_...",
"teamId": "your-team-id",
"events": ["eval.failed", "scan.finding"]
}AI Framework Integrations
LangChain
Instrument LangChain chains and agents to send traces to EvalGuard.
from evalguard.langchain import EvalGuardCallback
handler = EvalGuardCallback(
api_key="eg_live_...",
project_id="proj_abc123",
)
# Add to any LangChain chain or agent
chain = LLMChain(llm=llm, prompt=prompt, callbacks=[handler])
result = chain.run("What is AI?")LlamaIndex
from evalguard.guardrails import GuardrailClient
guard = GuardrailClient(api_key="eg_live_...", project_id="proj_abc123")
# Guard a query before it hits your LlamaIndex engine
check = guard.check_input(user_query)
if not check["allowed"]:
raise ValueError(f"Blocked by EvalGuard: {check['violations']}")
response = query_engine.query(user_query)CrewAI
from evalguard.crewai import guard_agent
# Wrap each agent so its inputs/outputs are guarded + traced
agent1 = guard_agent(agent1, api_key="eg_live_...", project_id="proj_abc123")
agent2 = guard_agent(agent2, api_key="eg_live_...", project_id="proj_abc123")
crew = Crew(agents=[agent1, agent2], tasks=[task1, task2])AutoGen
from evalguard.guardrails import GuardrailClient
guard = GuardrailClient(api_key="eg_live_...", project_id="proj_abc123")
# Guard each message before it enters the AutoGen group chat
check = guard.check_input(message)
if not check["allowed"]:
raise ValueError(f"Blocked by EvalGuard: {check['violations']}")Haystack
from evalguard.guardrails import GuardrailClient
guard = GuardrailClient(api_key="eg_live_...", project_id="proj_abc123")
# Guard a query before it enters your Haystack pipeline
check = guard.check_input(query)
if not check["allowed"]:
raise ValueError(f"Blocked by EvalGuard: {check['violations']}")Other Frameworks
EvalGuard also provides integrations for DSPy, Instructor, Marvin, Guidance, Semantic Kernel, PromptFlow, Flowise, n8n, OpenAI SDK, and Vercel AI SDK, all shipped in the @evalguard/core package. Browse each adapter's reference page for setup details.
CI/CD Integrations
GitHub Actions
name: EvalGuard CI
on:
pull_request:
branches: [main]
jobs:
eval:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install EvalGuard CLI
run: npm install -g @evalguard/cli
- name: Run Evals
run: evalguard eval:local evals/regression.json --output json
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: Run Security Scan
run: evalguard scan:local scans/security.json --verbose
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: Validate Configs
run: |
evalguard validate evals/regression.json
evalguard validate scans/security.jsonGitLab CI
evalguard:
image: node:20
stage: test
script:
- npm install -g @evalguard/cli
- evalguard eval:local evals/regression.json --output json
- evalguard scan:local scans/security.json --verbose
variables:
OPENAI_API_KEY: $OPENAI_API_KEYJenkins
pipeline {
agent { docker { image 'node:20' } }
environment {
OPENAI_API_KEY = credentials('openai-api-key')
}
stages {
stage('Install') {
steps {
sh 'npm install -g @evalguard/cli'
}
}
stage('Eval') {
steps {
sh 'evalguard eval:local evals/regression.json --output json'
}
}
stage('Security Scan') {
steps {
sh 'evalguard scan:local scans/security.json --verbose'
}
}
}
}Azure Pipelines
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '20.x'
- script: npm install -g @evalguard/cli
displayName: 'Install EvalGuard CLI'
- script: evalguard eval:local evals/regression.json --output json
displayName: 'Run Evals'
env:
OPENAI_API_KEY: $(OPENAI_API_KEY)