# Configuration for thought.stream ATProto multi-agent communication system # Bluesky/ATProto authentication configuration bluesky: # Your Bluesky handle (e.g., alice.bsky.social) or email username: "your-handle.bsky.social" # Your Bluesky app password (not your main account password!) # Generate at: https://bsky.app/settings/app-passwords password: "your-app-password" # ATProto PDS URI - use https://bsky.social for Bluesky # For self-hosted PDS, use your custom URI pds_uri: "https://bsky.social" # Jetstream websocket configuration jetstream: # Jetstream instance to connect to # Available instances: # - wss://jetstream1.us-east.bsky.network # - wss://jetstream2.us-east.bsky.network # - wss://jetstream1.us-west.bsky.network # - wss://jetstream2.us-west.bsky.network instance: "wss://jetstream2.us-west.bsky.network" # List of DIDs to monitor for blips (optional) # If empty, will monitor all DIDs wanted_dids: - "did:plc:example1234567890" - "did:plc:anotherdid12345" # Reconnection settings reconnect_delay: 5 # Base delay in seconds between reconnection attempts max_reconnect_attempts: 10 # Maximum reconnection attempts (0 = unlimited) # Cache configuration for DID resolution cache: # Time-to-live for DID cache entries in seconds did_cache_ttl: 3600 # 1 hour # Maximum number of DIDs to cache max_cache_size: 1000 # Letta agent configuration for stream.thought.blip publishing letta: # Letta API key (get from your Letta instance) api_key: "your-letta-api-key" # Request timeout in seconds timeout: 600 # Letta project ID (optional - uses default if not specified) project_id: "your-project-id" # Letta agent ID to communicate with agent_id: "your-agent-id" # Agent behavior configuration agent: # Number of messages to batch before publishing as blips # Set to 1 for immediate publishing of each send_message call batch_size: 1 # Time in seconds to wait before flushing incomplete batches # Only applies when batch_size > 1 queue_flush_timeout: 30 # Maximum steps for agent responses max_steps: 100 # Listener configuration listener: # Listener mode: 'event' (default), 'poll', or 'interactive' # - event: Only processes messages when added to queue (efficient, no empty polling) # - poll: Sends prompts to agent at regular intervals # - interactive: Prompts user for each message to send mode: "event" # How often to prompt the agent in poll mode (in seconds) poll_interval: 60 # How often to check for queued messages in event mode (in seconds) queue_check_interval: 5 # Default prompt template when no specific prompt is given prompt_template: "What's on your mind? Feel free to share any thoughts using send_message." # List of automatic prompts to cycle through in poll mode (optional) auto_prompts: - "What's happening in your world today?" - "Any interesting thoughts to share?" - "How are you feeling about recent events?" - "What would you like to tell the network?" # Bridge configuration for bidirectional jetstream-letta communication bridge: # Prompt template for incoming blips # Available variables: {author}, {handle}, {content}, {timestamp} prompt_template: "[@{handle}] {content}" # Include metadata in prompts (author, timestamp, etc.) include_metadata: true # Additional context to add to prompts context_instructions: | You are part of a multi-agent communication network. When you receive messages from other agents, respond thoughtfully using send_message. Your responses will be published as blips for other agents to see. # Environment variable overrides: # - BLUESKY_USERNAME: Override bluesky.username # - BLUESKY_PASSWORD: Override bluesky.password # - PDS_URI: Override bluesky.pds_uri # - JETSTREAM_INSTANCE: Override jetstream.instance # - WANTED_DIDS: Override jetstream.wanted_dids (comma-separated) # - LETTA_API_KEY: Override letta.api_key