Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

配置参考

配置文件为 TOML。生产约定路径:

文件权限建议内容
/etc/alphabound/alphabound.toml0640 root:alphabound非密钥运行参数
/etc/alphabound/secrets.env0600 root:rootOKX / LLM 密钥(systemd EnvironmentFile
/etc/alphabound/prompts/0640版本化系统 Prompt

密钥绝不写入 TOML,也绝不进入 Agent Context。

仓库示例:config/alphabound.toml


完整示例

[app]
environment = "production"       # development | production
instance_id = "azure-btc-01"     # 写入事件,便于多实例区分

[exchange]
provider = "okx"
instrument = "BTC-USDT"
mode = "shadow"                  # shadow | demo | live
# rest_url = "https://www.okx.com"
poll_interval_ms = 5000

[risk]
max_drawdown = 0.10              # 不可热加载;Agent 不可修改
valuation = "conservative_liquidation"
allow_runtime_override = false
taker_fee_rate = 0.001
slippage_rate = 0.0005
initial_capital = 100.0          # shadow 模拟起始资金 (USDT)

[agent]
provider = "configured-adapter"
model = "configured-model"
decision_timeout_ms = 30000
prompt_dir = "/etc/alphabound/prompts"

[storage]
path = "/var/lib/alphabound/trading.db"
wal = true

[web]
bind = "127.0.0.1:8080"
static_dir = "/opt/alphabound/ui/current"   # 预留;当前 Dashboard 已嵌入二进制

分段说明

[app]

类型默认说明
environmentstring环境标签,进日志/事件
instance_idstring实例标识

[exchange]

类型默认说明
providerstringokx交易所适配器
instrumentstringBTC-USDT交易标的
modestringshadow运行模式
rest_urlstringhttps://www.okx.comREST 根地址
poll_interval_msu322000shadow 轮询间隔;下限 200ms(防打爆公共 API)

[risk] — 硬边界区

类型默认说明
max_drawdowndecimal0.10HWM 相对最大回撤。启动时加载,禁止热改
valuationstringconservative_liquidation净值口径
allow_runtime_overrideboolfalse必须为 false;解析保留字段
taker_fee_ratedecimal0.001保守估值 taker 费率
slippage_ratedecimal0.0005退出滑点缓冲
initial_capitaldecimal100shadow 模拟账户起始 USDT;须 > 0

max_drawdown / 费率类参数 = 版本发布 + 人工确认,不是运行中调参。

[agent]

详见专章 Agent 配置(OpenAI)

类型默认说明
providerstringopenai适配器名(当前仅 openai 兼容)
modelstringgpt-4o-mini可被 LLM_MODEL 覆盖
base_urlstringhttps://api.openai.com/v1可被 LLM_API_URL 覆盖
decision_timeout_msu3230000请求超时预算(规划)
decision_interval_msu32600000慢环基础间隔(活跃时段);0 表示不按间隔调度
decision_interval_quiet_msu320静默时段间隔;0 = 同基础间隔
decision_min_interval_msu32120000任意两次决策的硬性冷却下限(事件触发也受限)
active_hours_utcstring""UTC 活跃时段 "start-end"(end 不含,可跨 0 点如 "22-4");空 = 全天基础间隔
event_price_movedecimal0.005距上次决策价格偏离 ≥ 该比例提前触发;0 关闭
event_drawdown_stepdecimal0.01回撤较上次决策加深 ≥ 该比例提前触发;0 关闭
prompt_dirpathpromptsPrompt 目录
enabledbooltruefalse 时永不调 LLM
llm_reflectionbooltrue有效提案后跑 LLM 结构化反思;失败回退确定性
llm_reflection_on_holdboolfalseHOLD 提案是否也跑 LLM 反思;false 时 HOLD 只用确定性反思

慢环调度是多因素的:活跃/静默时段各有基础节奏,价格突变、回撤加深、 风险模式切换会提前触发一次决策,且所有触发都受 decision_min_interval_ms 冷却下限约束。风险内核不受此影响——它始终在快环独立执行。 每次触发在事件流记录 AGENT_TRIGGER(含 reason),便于审计调用频率。

[storage]

类型默认说明
pathpathSQLite 文件路径;父目录须可写
walbooltrue强制 WAL 语义(单 writer)

不要把 DB 放在网络文件系统上。

[web]

类型默认说明
bindstring127.0.0.1:8080127.0.0.1:port 或容器 0.0.0.0:port;宿主机发布仍应绑 loopback
static_dirpath预留静态目录;当前 Overview 页面 @embedFile 进二进制

密钥环境变量(secrets.env

密钥经环境变量注入(systemd EnvironmentFile=、shell source、或 macOS 钥匙串导出)。禁止写入 TOML。

# secrets.env  (chmod 0600) — 见 secrets.env.example
OKX_API_KEY=...
OKX_API_SECRET=...
OKX_API_PASSPHRASE=...
# OKX_SIMULATED=1          # 仅演示盘密钥
LLM_API_KEY=
LLM_API_URL=https://api.openai.com/v1
LLM_MODEL=gpt-4o-mini

macOS 本地:

./scripts/load-okx-keychain.sh ./secrets.env   # Keychain → 0600 文件(值已 shell-quote)
set -a && source ./secrets.env && set +a

进程只记录 key_len / secret_len / pass_len,从不打印密钥。有密钥时 shadow 会 只读 调用 GET /api/v5/account/balance;引擎现金仍用 initial_capital 模拟,不下单

私有探测结果 token含义
(成功)余额可用;日志打印 usdt/btc 数量
ip_whitelistOKX 50110:把本机公网 IP 加入 API Key 白名单
invalid_sign / invalid_key / invalid_passphrase密钥或签名问题
http_failed网络/TLS

日志与事件经 observability/redaction.zig 脱敏;不要secrets.env 贴进 issue 或聊天。


校验与哈希

  • --self-check:解析 TOML、打开 DB、migration、bind;若有 OKX_* 则做私有只读探测。
  • 每次启动计算 config_hash(SHA-256),写入事件信封。
  • mode=live 在 Gate 4 前启动即失败;mode=demo 无密钥失败。

热加载边界

可热加载(规划)不可热加载(必须发版)
Prompt 文本(SIGHUP,hash 变更进事件)max_drawdown、费率、滑点、mode→live 切换
日志级别(若后续支持)web bind、DB 路径、instrument

Agent 没有写配置的代码路径——这是能力缺失,不是 prompt 约定。