Skip to content

Latest commit

 

History

History
227 lines (171 loc) · 7.2 KB

File metadata and controls

227 lines (171 loc) · 7.2 KB

Configuration Guide

Overview

Athena is highly configurable through the config.yaml file. This guide provides a comprehensive overview of the available configuration options and their usage.

For a complete example of configuration options, please refer to the Configuration Template File.

Global Configuration

states_file: configs/states.yaml
log_file: configs/athena-core.log
workdir: /path/to/your/workdir
quiet: false
  • states_file: The file to store and load Athena's state. If set, Athena will save its state to this file when shutting down and load it when starting to resume context and states.
  • log_file: The file to store Athena's logs.
  • workdir: Athena's working directory.
  • quiet: Whether to run Athena in quiet mode. If set to true, Athena will not print logs to the console.

Plugins Configuration

Plugins are the core components of Athena. Each plugin has its own configuration options. To load a plugin, simply include the plugin's name in the plugins section with its specific configuration options.

Browser

The browser plugin allows Athena to control a web browser via Playwright.

  browser:
    headless: true
  • headless: Whether to run the browser in headless mode. If set to true, the browser will not be visible.

Cerebrum

The cerebrum plugin is the main plugin for Athena. It handles event receiving, decision making, and tool calling.

Here is a configuration example for the cerebrum plugin using GPT-4o:

  cerebrum:
    base_url: https://api.openai.com/v1
    api_key: sk-proj-your-openai-api-key
    model: gpt-4o
    temperature: 0.5
    image_supported: true
    max_prompts: 50
    max_event_strlen: 65536
    max_tokens: 16384

However, Athena performs best with DeepSeek V3 (not 0324). The web app version of Athena uses DeepSeek V3 as its cerebrum model. Here is an example configuration for DeepSeek V3:

  cerebrum:
    base_url: https://openrouter.ai/api/v1
    api_key: sk-your-openrouter-api-key
    model: deepseek/deepseek-chat
    temperature: 0.5
    image_supported: false
    max_prompts: 50
    max_event_strlen: 65536
    max_tokens: 16384

Although more expensive, Athena can perform even better with Claude 3.7 Sonnet. Here is an example configuration:

  cerebrum:
    base_url: https://api.anthropic.com/v1
    api_key: sk-ant-api03-your-anthropic-api-key
    model: claude-3-7-sonnet-latest
    temperature: 0.5
    image_supported: false
    max_prompts: 50
    max_event_strlen: 65536
    max_tokens: 16384
  • base_url: The base URL of the API endpoint.
  • api_key: The API key for the endpoint.
  • model: The model to use.
  • temperature: The temperature setting.
  • image_supported: Whether the model supports images. Currently, only set to true for GPT-4o.
  • max_prompts: The maximum number of prompts kept in the context sent to the model.
  • max_event_strlen: The maximum allowed length of any string in events or tool results sent to the model.
  • max_tokens: The maximum number of tokens in the response for each model call.

CLI UI

Enable cli-ui to interact with Athena via the command line. If not needed, you can remove it from the plugins section.

  cli-ui:

Clock

The clock plugin provides time awareness and scheduling. When enabled, Athena can get the current date and time, and manage timers and alarms.

  clock:

Discord

Enable discord for Athena to send and receive messages from Discord.

  discord:
    bot_token: your-discord-bot-token
    allowed_channel_ids:
      - "1234567890"
      - "9876543210"
    admin_channel_ids: []
    log_channel_ids: []
  • bot_token: The Discord bot token.
  • allowed_channel_ids: IDs of channels Athena is allowed to interact with. Values must be a list of strings.
  • admin_channel_ids: If set, Athena will send debug logs to these channels. Values must be a list of strings.
  • log_channel_ids: If set, Athena will send thinking and tool calling logs to these channels. Values must be a list of strings.

File System

Enable file-system to allow Athena to access your local file system. Athena will be able to read and write files.

  file-system:

HTTP

Enable http for Athena to send HTTP requests, search the web via Jina Search, and download files from the Internet.

  http:
    jina:
      base_url: https://s.jina.ai
      api_key: your-jina-api-key
  • jina: Configuration for Jina Search. (Optional)
    • base_url: The base URL of the Jina Search API endpoint.
    • api_key: The API key for the Jina Search API endpoint.

LLM

Enable llm for Athena to chat with other language models and generate images.

Since only a single OpenAI endpoint can be configured currently, it's recommended to use a service like LiteLLM proxy to route requests to different language models. OpenRouter is another option, though it doesn't support image generation.

  llm:
    base_url: https://openrouter.ai/api/v1
    api_key: sk-or-v1-your-openrouter-api-key
    models:
      chat:
        - name: openai/gpt-4o
          desc: GPT-4o is good at general purpose tasks. Supports image input. Whenever you receive an image and need to understand it, pass it to this model using the image arg.
        - name: openai/o3-mini
          desc: O3 Mini is good at deep thinking and planning. Whenever you need to plan something complicated or solve complex math problems, use this model.
        - name: anthropic/claude-3.7-sonnet
          desc: Claude 3.7 Sonnet is good at writing code. Whenever you need to write code, use this model.
        - name: perplexity/sonar
          desc: Perplexity can access the Internet. Whenever you need to search the Internet, use this model.
      image:
        - name: openai/dall-e-3 # OpenRouter doesn't support image generation
          desc: DALL-E 3 is good at generating images. Whenever you are requested to generate images, use this model.
  • base_url: The base URL of the API endpoint.
  • api_key: The API key for the endpoint.
  • models: The models available for use.
    • chat: The chat models available.
      • name: The name of the model.
      • desc: The description of the model.
    • image: The image generation models available.
      • name: The name of the model.
      • desc: The description of the model.

Python

Enable python for Athena to run inline Python code or Python scripts. This also enables Athena to install pip packages.

  python:

Shell

Enable shell for Athena to run shell commands.

  shell:

Short-Term Memory

Enable short-term-memory for Athena to manage a basic task list.

  short-term-memory:

Telegram

Enable telegram for Athena to send and receive messages from Telegram.

  telegram:
    bot_token: your-telegram-bot-token
    allowed_chat_ids:
      - 1234567890
      - 9876543210
    admin_chat_ids: []
    log_chat_ids: []
  • bot_token: The Telegram bot token.
  • allowed_chat_ids: IDs of chats Athena is allowed to interact with.
  • admin_chat_ids: If set, Athena will send debug logs to these chats.
  • log_chat_ids: If set, Athena will send thinking and tool calling logs to these chats.