配置说明

ℹ️INFO

配置的每个字段都是可选的,需要什么就补什么,不需要则忽视

基础配置

alemon.config.yaml
# === 服务器配置 ===
port: 17117 # CBP服务器端口 (可选,仅需要外部交互时设置),快捷参数 --port 17117
serverPort: 18110 # 应用服务器端口(可选,仅需要启动http服务时设置),快捷参数 --serverPort 17117

# === 应用配置 ===
input: 'lib/index.js' #(可选) 应用入口文件路径,快捷参数 --input
login: 'discord' # (可选)登录平台标识,快捷参数 --login
url: 'ws://127.0.0.1:17117' # (可选)CBP服务器连接地址,快捷参数 --url
is_full_receive: false # (可选)是否全量接收消息(用于分流处理)

权限管理

alemon.config.yaml
# === 主人权限设置 ===
master_id:
  '1715713638': true # 通过用户ID设置主人权限
master_key:
  '123456': true # 通过用户Key设置主人权限

# === 机器人标识设置 ===
bot_id:
  '1715713638': true # 将指定用户ID标识为机器人
bot_key:
  '123456': true # 将指定用户Key标识为机器人

消息过滤与控制

alemon.config.yaml
# === 禁用控制 ===
disabled_text_regular: '/闭关' # 文本正则匹配,若匹配则禁用所有功能
disabled_selects: # 禁用特定事件类型
  'private.message.create': true # 禁用私聊消息
  'message.create': true # 禁用群组消息
  'interaction.create': true # 禁用交互事件
disabled_user_id: # 禁用特定用户ID
  '1715713638': true
disabled_user_key: # 禁用特定用户Key
  '123456': true

# === 文本重定向 ===
redirect_text_regular: '^#' # 文本前缀匹配正则
redirect_text_target: '/' # 将匹配的前缀替换为指定内容

# === 文本映射规则 ===
mapping_text:
  - regular: '/开始游戏' # 匹配的文本
    target: '/踏入仙途' # 替换成的文本
  - regular: '/帮助'
    target: '/help'

消息处理器配置

alemon.config.yaml
processor:
  repeated_event_time: 60000 # 过滤重复MessageId的时间窗口(毫秒)
  repeated_user_time: 1000 # 过滤同一用户连续消息的时间窗口(毫秒)

模块管理

alemon.config.yaml
# === 子模块配置 ===
apps:
  'alemonjs-openai': true # 启用OpenAI模块
  'alemonjs-xianyu': true # 启用咸鱼模块
  # 也支持数组格式
  # - 'alemonjs-openai'
  # - 'alemonjs-xianyu'

# === 模块特定配置 ===
# 模块配置的键名应与模块名一致
alemonjs-openai:
  baseURL: 'https://api.deepseek.com'
  apiKey: 'your-api-key-here'
  model: 'deepseek-chat'

快捷参数

启动时可使用的快捷参数:

# === 基础参数 ===
# 指定CBP服务器端口
node index.js --port 8080

# 指定应用服务器端口
node index.js --serverPort 3000

# 指定入口文件
node index.js --input ./lib/index.js

# 指定登录平台
node index.js --login discord

# 指定CBP服务器连接地址
node index.js --url ws://localhost:8080

# 启用全量接收模式
node index.js --is_full_receive true

# === 组合使用示例 ===
# 启动Discord平台,端口8080
node index.js --login discord --port 8080

基础环境变量

platform:string - 平台标识,支持的平台类型包括:

  • discord - Discord平台
  • qq - QQ平台
  • telegram - Telegram平台
  • 或其他自定义平台包名(如:@alemonjs/xxx

login:string - 登录标识,通常与平台名称相同或为平台的特定实例名

url:string - CBP服务器连接地址,默认为 ws://127.0.0.1:17117

port:string | number - CBP服务器端口,默认为 17117

serverPort:string | number - 应用服务器端口(可选,仅在需要启动Web服务时设置)

is_full_receive:string - 是否全量接收消息,可选值:'true' | '1' | 'false' | '0'

文件路径相关

LOG_PATH:string - 日志文件存储路径

PKG_PATH:string - package.json 文件路径,默认为当前工作目录下的 package.json

CFG_PATH:string - 配置文件路径,默认为当前工作目录下的 alemon.config.yaml

运行环境

NODE_ENV:development | production - 环境判断,用于区分开发环境和生产环境

CBP

ChatBot Protocol

ALemonJS的核心通信协议,负责客户端与平台之间的消息传输。

CBP连接配置

alemon.config.yaml
# CBP服务器配置
cbp:
  # 连接超时时间(毫秒)
  timeout: 180000 # 3分钟

  # 重连间隔(毫秒)
  reconnectInterval: 6000 # 6秒

  # 心跳间隔(毫秒)
  heartbeatInterval: 18000 # 18秒

  # 健康检查间隔(毫秒)
  healthCheckInterval: 30000 # 30秒

  # 连接认证头配置
  headers:
    user-agent: 'platform' # 平台标识
    x-device-id: 'auto-generated' # 设备ID(自动生成)
    x-full-receive: '0' # 是否全量接收:'1' 开启,'0' 关闭