Agent Configuration
The agent service is configured via environment variables.
Shared
Section titled “Shared”| Variable | Default | Description |
|---|---|---|
NATS_URL | — | NATS JetStream URL (required) |
DATABASE_HOST | — | PostgreSQL host (omit for in-memory sessions) |
DATABASE_PASSWORD | — | PostgreSQL password |
AWS_REGION | us-east-1 | AWS region for Bedrock |
LOG_LEVEL | info | Structured log level |
ENVIRONMENT | — | local or production identifier |
POSTHOG_PROJECT_API_KEY | — | Enables LLM analytics and error tracking |
POSTHOG_PROJECT_ID | — | Enables /debug command trace URLs |
JIRA_BASE_URL | — | Jira instance URL (e.g., https://fetchrewards.atlassian.net) |
JIRA_EMAIL | — | Jira account email for API authentication |
JIRA_API_TOKEN | — | Jira API token (paired with email for basic auth) |
JIRA_PROJECT | — | Default Jira project key for ticket creation |
| Variable | Default | Description |
|---|---|---|
PORT | 8080 | HTTP server port |
SLACK_BOT_TOKEN | — | Slack bot OAuth token (xoxb-...) |
SLACK_SIGNING_SECRET | — | Slack app signing secret for webhook verification |
SLACK_FEED_CHANNEL_ID | — | Channel for post_to_feed tool |
GITHUB_APP_ID | — | GitHub App ID |
GITHUB_APP_INSTALLATION_ID | — | GitHub App installation ID |
GITHUB_APP_PRIVATE_KEY | — | GitHub App private key (PEM format) |
SOURCEGRAPH_TOKEN | — | Sourcegraph API token for code search MCP |
BEDROCK_MODEL_ID | us.anthropic.claude-sonnet-4-20250514-v1:0 | AWS Bedrock model ID |
S3_BUCKET | — | S3 bucket for session state persistence (pause/resume) |
CLOUDFRONT_DOMAIN | — | CloudFront domain for permanent image URLs |
SESSION_POD_IMAGE | — | Container image URI for session pods (enables EKS execution) |
EKS_NAMESPACE | bucky-sessions | Kubernetes namespace for session pods |
SESSION_SERVICE_ACCOUNT | session-runner | Kubernetes ServiceAccount for session pods |
POD_TOKEN_SECRET | — | HMAC secret for signing pod-bound JWTs |
OKTA_ISSUER | — | Okta OIDC issuer URL for dashboard JWT auth |
JIRA_ACCOUNT_ID | — | Jira account ID for ticket assignment |
AGENT_BASE_URL | — | Public URL of the agent service (for callbacks) |
PROMETHEUS_URL | — | Prometheus query endpoint for metrics dashboard |
CELESTIALS_BASE_URL | — | Base URL for celestials service (team/Pack lookups) |
Local development
Section titled “Local development”cd agentcp .env.example .env # fill in valuesmake runFor database sessions locally, start PostgreSQL and NATS with Docker:
cd agentdocker compose up -dWhen DATABASE_HOST is unset, the agent falls back to InMemorySessionService — sessions are lost on restart but no database is needed. NATS is always required (NATS_URL=nats://localhost:4222).
For local Kubernetes (EKS session pods), use k3d:
cd agentmake k8s-setup # bootstrap k3d cluster with namespace and secretsSet KUBECONFIG_PATH to the k3d kubeconfig and SESSION_POD_IMAGE to a locally built image (make docker-build-base).
Deployment
Section titled “Deployment”Buck is deployed to ECS via FSD. The deployment config defines:
- ECR repository:
ad-tools-agent(Buck) - Environment variables: Plain values in
environment_variables - Secrets: Sensitive values from AWS Secrets Manager in
secrets - IAM policy:
bedrock:InvokeModelon Claude models - Dependencies: Aurora PostgreSQL database, S3 buckets, CloudFront distribution, NATS JetStream cluster
Stage/prod-specific values are configured in the variables section of each FSD config.