File size: 4,927 Bytes
1e84411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Anuma2api 配置。复制为 config.toml 并填值(config.toml 已 gitignore,本文件传 git)。
# 账号凭据不在此处,放 account/<name>.json(见 account/main.json.example 或运行注册机)。

# ===== 网关(主程序读)=====
[gateway]
host = "0.0.0.0"
port = 8088
api_key = ""                 # 客户端访问 /v1 的 key(Authorization: Bearer <key>);留空 = 无认证

# ===== 代理(主程序 + 注册机)=====
[proxy]
# 默认代理:网关访问上游时使用;留空 = 直连
# 例:http://127.0.0.1:7890  或  socks5://127.0.0.1:1080
url = ""
# 注册机代理:CLI / 自动补号 / captcha 浏览器;留空 = 回退到 url;两者都空 = 直连
registrar_url = ""

# ===== 日志(主程序)=====
[logging]
enabled = true               # 是否写入日志文件;false = 仅控制台,不落盘
dir = "logs"                 # 日志目录(gitignore)
filename = "gateway.log"     # 主日志文件名;轮转后为 gateway.log.1 …
level = "INFO"               # DEBUG / INFO / WARNING / ERROR
max_bytes = 10485760         # 单文件最大字节(默认 10 MiB),超出后轮转
backup_count = 5             # 轮转保留份数(gateway.log.1 … .N)
log_request_body = true      # 是否记录请求 body(Authorization 等已脱敏)
log_response_body = true     # 是否记录响应 body(含流式聚合后的内容,已脱敏/截断)
max_body_chars = 4000        # body 日志最大字符数

# ===== 上游:目标网站行为(主程序 + 注册机共享)=====
[upstream]
# 通用行为参数(与具体网站无关)
request_timeout = 120.0      # 单次请求总超时(秒)
# 2026-08-08 用户定案:生图不设短窗口掐流(gpt-image-2 生图实测 108-161s,25s 掐会误杀
# 正常生图)。完整读完流,超时交给 request_timeout,fence 判定看流结束后有无 media URL。
image_success_cooldown = 300.0  # 生图成功后该账号主动冷却秒数(防同一号连击触发 fence;0=关闭)
poll_interval = 1.2          # 轮询式上游的轮询间隔(秒)
token_refresh_margin = 300   # 凭据到期前多少秒主动刷新
tool_call_retries = 3        # prompt 模式被拒绝时换变体重试次数(0 = 不重试;仅 refusal_detect=true 时生效)
tool_call_dup_limit = 2      # native 模式:同一工具连续调用 N 轮后注入"停止重复、立即干活"纠正(0 = 关闭)
tool_forge_limit = 8         # native 模式:某工具历史空刷 ≥N 次且从无真实推进 -> 本轮从 tools 列表物理剔除它(0 = 关闭)
tool_read_cap = 30          # native 模式:read 累计 ≥N 次且远超其它动作(贪读不收口) -> 注入"读够了立即给结论"软纠正(0 = 关闭)
# 可选对抗策略(默认关;copy_skeleton --with-soften-system / --with-refusal-detect 初始化时写 true)
soften_system = false        # true:客户端 system 走柔和背景包装(不改实质指令)
refusal_detect = false       # true:拒绝/识破检测 + tool 指令变体重试 + 解析跳过拒绝文
strategy = "native"          # tool 策略:prompt(注入解析,默认)/ native(上游原生 function-calling 直通)
# 目标网站专属端点(按抓包结果填)
chat_url = ""                # 上游「发送对话」端点

# 可恢复失效(额度耗尽 / 人机验证)的冷却配置
# "disable" 仅对 QUOTA_EXHAUSTED 生效:直接标记 disabled(适合月额度/永不过期额度)
quota_exhausted_action = "cooldown"
cooldown_seconds = 600.0               # 默认冷却时长(秒)
# cooldown_seconds_quota = 3600.0      # QUOTA_EXHAUSTED 覆盖值(可选)
# cooldown_seconds_cf = 300.0          # CF_CHALLENGE 覆盖值(可选)

# 注册机可透传 [upstream] 段自定义字段,在 registrar/pipeline.py 读取
# supabase_url = "https://<project>.supabase.co"
# supabase_anon_key = "<anon/public key from JS bundle>"

# ===== 账号目录(主程序 + 注册机读)=====
[registry]
account_dir = "account"           # 账号凭据目录(account/<name>.json,已 gitignore)
pool_watch_interval = 30.0        # 账号池热加载扫描间隔(秒);新写入的账号自动进池,网关不用重启(0=关闭)

# ===== 管理后台(主程序读)=====
[admin]
auth_key = "anuma-admin-dev-key"   # /admin/* 鉴权(Authorization: Bearer <key> 或 ?auth_key=<key>);留空 = 关闭 admin(404)

# ===== 注册机:临时邮箱(注册机读)=====
[email]
base_url = "https://mailboxtemp.com"
poll_timeout = 180              # 等待验证码邮件的最大秒数

# ===== 注册机:人机验证(注册机读)=====
[captcha]
method = "cdp"                  # cdp(连 debug chrome 指纹自动过)/ semi(有头手动点)/ api(打码)
headless = false
proxy_url = ""
cdp_endpoint = "http://localhost:9222"
api_provider = "capsolver"
api_key = ""