Files
lettabot/lettabot.example.yaml
github-actions[bot] a3c944bd13 feat: expose memfs (memory filesystem) option in lettabot config and SDK session (#336)
Adds features.memfs config key that controls whether the Letta Code CLI
receives --memfs or --no-memfs when creating/resuming SDK sessions. This
enables lettabot users to opt into git-backed memory filesystem (context
repositories) for persistent local memory sync.

- Config types: memfs?: boolean on AgentConfig.features, LettaBotConfig.features, BotConfig
- Bot wiring: baseSessionOptions() and createAgent() pass memfs to SDK when defined
- Main wiring: YAML config takes precedence, LETTABOT_MEMFS env var as fallback
- Legacy fix: conversations passthrough in single-agent normalization
- Tests: 3 memfs wiring tests (true/false/undefined), 2 conversations passthrough tests
- Docs: configuration.md section with known limitations, example YAML

Fixes #335

Written by Cameron and Letta Code

"The best way to predict the future is to implement it." -- David Heinemeier Hansson
2026-02-22 05:37:01 +01:00

82 lines
2.8 KiB
YAML

# LettaBot Configuration
# Copy this to lettabot.yaml and fill in your values.
#
# Server modes:
# - 'api': Use Letta API (api.letta.com) with API key
# - 'docker': Use a Docker/custom Letta server
# Legacy aliases still accepted: 'cloud', 'selfhosted'
server:
mode: api
# For api mode, set your API key (get one at https://app.letta.com):
apiKey: sk-let-YOUR-API-KEY
# For docker mode, uncomment and set the base URL:
# mode: docker
# baseUrl: http://localhost:8283
agents:
- name: LettaBot
# displayName: "💜 Signo" # Prefix outbound messages (useful in multi-agent group chats)
# Note: model is configured on the Letta agent server-side.
# Select a model during `lettabot onboard` or change it with `lettabot model set <handle>`.
# Conversation routing (optional)
conversations:
mode: shared # "shared" (default) or "per-channel"
heartbeat: last-active # "dedicated" | "last-active" | "<channel>"
channels:
telegram:
enabled: true
token: YOUR-TELEGRAM-BOT-TOKEN
dmPolicy: pairing # 'pairing', 'allowlist', or 'open'
# groupDebounceSec: 5 # Debounce seconds (default: 5, 0 = immediate)
# instantGroups: ["-100123456"] # Groups that bypass batching (legacy)
# Group access + response mode:
# groups:
# "*": { mode: listen } # Observe all groups; only reply when @mentioned
# "-1001234567890": { mode: open } # This group gets all messages
# "-1009876543210": { mode: mention-only } # Drop unless @mentioned
# mentionPatterns: ["hey bot"] # Additional regex patterns for mention detection
# slack:
# enabled: true
# appToken: xapp-...
# botToken: xoxb-...
# groups:
# "*": { mode: listen }
# "C0123456789": { mode: open }
# discord:
# enabled: true
# token: YOUR-DISCORD-BOT-TOKEN
# groups:
# "*": { mode: listen }
# "1234567890123456789": { mode: open } # Server or channel ID
# whatsapp:
# enabled: true
# selfChat: false
# BYOK Providers (optional, api mode only)
# These will be synced to Letta API on startup
# providers:
# - id: anthropic
# name: lc-anthropic
# type: anthropic
# apiKey: sk-ant-YOUR-ANTHROPIC-KEY
# - id: openai
# name: lc-openai
# type: openai
# apiKey: sk-YOUR-OPENAI-KEY
features:
cron: false
heartbeat:
enabled: false
intervalMin: 30
# skipRecentUserMin: 5 # Skip auto-heartbeats for N minutes after user message (0 disables)
# memfs: true # Enable memory filesystem (git-backed context repository). Syncs memory blocks to local files.
# Attachment handling (defaults to 20MB if omitted)
# attachments:
# maxMB: 20
# maxAgeDays: 14