Skip to Content
Templates

Templates

Ready-to-use veris.yaml configurations for common agent architectures. Copy the one closest to your setup and customize it.

1. Customer Support Agent (HTTP + Salesforce + Email)

A support agent that handles customer inquiries over HTTP, looks up customer data in Salesforce, and sends follow-up emails.

.veris/veris.yaml
services: - name: salesforce dns_aliases: - myorg.my.salesforce.com - login.salesforce.com - name: email - name: postgres actor: channels: - type: http url: http://localhost:8008/chat method: POST headers: Content-Type: application/json request: message_field: message session_field: conversation_id response: type: json message_field: reply session_field: conversation_id config: RESPONSE_INTERVAL: "3" agent: code_path: /agent entry_point: python -m app.main port: 8008 environment: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/SIMULATION_ID SALESFORCE_INSTANCE_URL: https://myorg.my.salesforce.com SALESFORCE_ACCESS_TOKEN: ${SALESFORCE_ACCESS_TOKEN}

2. Calendar Assistant (SSE Streaming + Google Calendar)

A scheduling agent that streams responses via Server-Sent Events and manages Google Calendar.

.veris/veris.yaml
services: - name: calendar dns_aliases: - www.googleapis.com - calendar.google.com - oauth2.googleapis.com actor: channels: - type: http url: http://localhost:8008/chat method: POST request: message_field: message session_field: session_id response: type: sse chunk_event: chunk chunk_field: text done_event: end_turn agent: code_path: /agent entry_point: python -m app.server port: 8008 environment: GOOGLE_APPLICATION_CREDENTIALS: /certs/mock-service-account.json OPENAI_API_KEY: ${OPENAI_API_KEY}

3. E-Commerce Agent (WebSocket + Shopify + Stripe)

A shopping assistant that communicates over WebSocket, queries Shopify for products, and processes payments via Stripe.

.veris/veris.yaml
services: - name: mcp/stripe - name: mcp/shopify-storefront - name: mcp/shopify-customer - name: postgres actor: channels: - type: ws url: ws://localhost:3000/ws request: message_field: content session_field: thread_id response: message_field: content session_field: thread_id agent: code_path: /agent entry_point: node dist/server.js port: 3000 environment: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/SIMULATION_ID STRIPE_API_KEY: ${STRIPE_API_KEY} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}

This example uses a Node.js agent with node dist/server.js as the entry point. Set the port to match your server’s listen port.

4. Email-First Agent (Email + Salesforce + Jira)

An agent that communicates entirely via email, triages support requests, and creates Jira tickets.

.veris/veris.yaml
services: - name: salesforce dns_aliases: - myorg.my.salesforce.com - name: atlassian/jira dns_aliases: - myorg.atlassian.net - name: email actor: channels: - type: email email_address: support@ea.veris.ai config: POLL_INTERVAL: "10" RESPONSE_INTERVAL: "5" agent: entry_point: python -m app.email_handler port: 8008 environment: JIRA_BASE_URL: https://myorg.atlassian.net JIRA_API_TOKEN: ${JIRA_API_TOKEN} AGENTMAIL_API_KEY: ${AGENTMAIL_API_KEY} EMAIL_WEBHOOK_URL: http://localhost:8008/webhook/email

5. Enterprise Agent (Multi-Service + Microsoft + Oracle)

An enterprise procurement agent that uses Microsoft Graph, Azure DevOps, and Oracle Fusion Cloud.

.veris/veris.yaml
services: - name: microsoft/graph dns_aliases: - graph.microsoft.com - name: microsoft/devops dns_aliases: - dev.azure.com - name: microsoft/auth dns_aliases: - login.microsoftonline.com - name: oracle dns_aliases: - myorg.fa.us2.oraclecloud.com - name: postgres actor: channels: - type: http url: http://localhost:8008/api/chat method: POST headers: Content-Type: application/json Authorization: Bearer test-token request: message_field: query session_field: session_id static_fields: department: procurement response: type: json message_field: answer session_field: session_id config: RESPONSE_INTERVAL: "4" REFLECTION_INTERVAL: "2" agent: code_path: /agent entry_point: python -m app.main port: 8008 environment: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/SIMULATION_ID AZURE_CLIENT_ID: ${AZURE_CLIENT_ID} AZURE_CLIENT_SECRET: ${AZURE_CLIENT_SECRET} ORACLE_BASE_URL: https://myorg.fa.us2.oraclecloud.com OPENAI_API_KEY: ${OPENAI_API_KEY}

6. Multi-Channel Agent (HTTP + Email)

An agent that handles both live chat (HTTP) and asynchronous email, with Slack notifications and a knowledge base.

.veris/veris.yaml
services: - name: slack dns_aliases: - slack.com - api.slack.com - name: atlassian/confluence dns_aliases: - myorg.atlassian.net - name: email - name: zendesk-support dns_aliases: - myorg.zendesk.com actor: channels: - type: http url: http://localhost:8008/chat method: POST request: message_field: message session_field: session_id response: type: json message_field: response - type: email email_address: help@ea.veris.ai config: POLL_INTERVAL: "10" RESPONSE_INTERVAL: "3" agent: entry_point: python -m app.server port: 8008 environment: SLACK_BOT_TOKEN: ${SLACK_BOT_TOKEN} ZENDESK_API_TOKEN: ${ZENDESK_API_TOKEN} CONFLUENCE_API_TOKEN: ${CONFLUENCE_API_TOKEN} OPENAI_API_KEY: ${OPENAI_API_KEY}

Key Reference

Services

See Services for the full list of available simulated services.

Actor Channel Types

TypeUse When
httpAgent exposes a chat REST API (JSON or SSE streaming responses)
emailAgent communicates asynchronously via email
voiceAgent handles phone/voice interactions
browser-useAgent has a web UI that users interact with via browser
wsAgent communicates over WebSocket

Actor Config Variables

VariableDefaultDescription
RESPONSE_INTERVAL2Seconds between actor turns
POLL_INTERVAL15Email polling interval (seconds)
REFLECTION_INTERVAL3Turns between actor self-reflection

Agent Entry Points

StackExample Entry Point
Python (module)python -m app.main
Python (uvicorn)uvicorn app.main:app --host 0.0.0.0 --port 8008
Python (shorthand)app.main:app (auto-expanded to uvicorn)
Node.jsnode dist/server.js
Node.js (npm)npm start

Environment Variable Expansion

agent: environment: API_KEY: ${API_KEY} # From container env (set via veris env set) DB_NAME: myapp_SIMULATION_ID # Replaced per-simulation