-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpraxis.config.example
More file actions
145 lines (125 loc) · 7.29 KB
/
Copy pathpraxis.config.example
File metadata and controls
145 lines (125 loc) · 7.29 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# praxis.config.example · praxisd 配置样例(YAML)
#
# 复制为 praxis.config 后按需修改。定位优先级:
# --config <path> > $PRAXIS_CONFIG > ./praxis.config > ~/.praxis/praxis.config
# 全部段均可省略;省略时使用下方注释标注的内置默认值。
# 机密只允许以 %vault:<key>% 占位符引用(I-5):配置校验会拒载明文机密,
# 任何日志 / /statusz 输出只会看到占位符本身。
daemon:
# 健康/状态端点监听地址。默认仅允许 loopback;
# 监听非 loopback 地址必须同时设置 allow_remote: true。
listen: "127.0.0.1:7420" # 默认 127.0.0.1:7420
# allow_remote: false # 默认 false
# 优雅停止预算:超时未完成则强制退出(非零退出码)。
shutdown_timeout: "10s" # 默认 10s
log:
format: "text" # text | json,默认 text
level: "info" # debug | info | warn | error,默认 info
# ── cognition:外部 Agent 驱动(Cognition Port outbound)配置(蓝图 10 §6)──
#
# 整段可完全省略:无任何 Agent/LLM 配置时 praxisd 照常启动(I-6),
# 0 Token 确定性回放/批量不受影响;L2/L3 认知需求经 fallback 升级人工。
cognition:
# 在场 Agent 发起的 Run 触发认知需求时,优先回给发起的那个 Agent。
attached_prefer_caller: true # 默认 true
# detached(批量/cron/Webhook)模式下自愈类请求
# (relocate / repair_subflow / validate)的默认驱动。
default_healer:
adapter: codex-mcp # 必须是下方 adapters 中已定义的名称
model: fable-5 # 子 Agent 模型,默认 fable-5
budget_tokens_per_step: 4000 # 单步认知请求的 token 预算上限
# detached 模式下探索类请求
# (plan / decide_step / assist_crystallize)的默认驱动。
default_explorer:
adapter: claude-api
model: fable-5 # 默认 fable-5
budget_tokens_per_run: 200000 # 单次探索 Run 的 token 预算上限
# 命名适配器表:适配器是配置项而非代码依赖。
# type 合法取值:mcp-server-inbound | mcp-client | openai-compatible | cli
# 除 type / sandbox 外的字段作为适配器连接参数(只接受标量值)。
adapters:
# inbound 对称形态:Agent 经 MCP 主动连入 praxisd(工具面属 M5)。
cursor-mcp:
type: mcp-server-inbound
# 以 MCP client 拉起/连接外部 Agent 进程。
codex-mcp:
type: mcp-client
command: codex
args: mcp-server
# OpenAI 兼容 HTTP API。机密只能写 %vault:...% 占位,明文启动即拒载。
claude-api:
type: openai-compatible
base_url: https://api.anthropic.com/v1
api_key: "%vault:llm.claude%"
# CLI/守护类 Agent(openclaw 系)。安全约束(design 决策 5):
# type: cli 未声明 sandbox: isolated 时不得担任 detached 默认驱动。
openclaw:
type: cli
endpoint: http://127.0.0.1:9800
sandbox: isolated # 当前唯一合法非空取值:isolated
# 未配置驱动 / 路由失败时的兜底路径。当前契约唯一取值:human
# (升级人工,零 LLM 调用)。
fallback: human # 默认 human
# ── runtime:浏览器运行时(会话池 / 护栏 / 代理出口)配置(蓝图 04 §2/§3)──
#
# 整段可省略:省略时使用下方标注的内置默认值。会话池管理浏览器的暖复用与
# 空闲回收,护栏按域限制并发/速率,代理出口默认关闭(本地直连最一致,03 §7)。
runtime:
# 会话池:暖复用 + LRU + TTL(session-pool)。
pool:
max_idle: 8 # Parked 池容量上限,触及即 LRU 淘汰,默认 8
ttl: "5m" # 单个 Parked 会话的 TTL,达到即回收关闭,默认 5m
warm_reuse: true # 是否启用暖复用;false 则一律冷启动,默认 true
idle_timeout: "2m" # Ready 会话空闲多久进入 Draining,默认 2m
# 崩溃恢复:从检查点续跑的重建重试上限(browser-lifecycle)。
recovery:
max_retries: 3 # 重建重试上限,超限转 Failed,默认 3
# 按域并发/速率护栏(session-pool)。未在 domains 列出的域用 default_*。
guardrail:
default_concurrency: 4 # 每域默认并发会话上限,默认 4
default_rate: 0 # 每域默认速率上限(次/秒),0 表示不限速,默认 0
domains:
example.com:
concurrency: 2 # 覆盖该域并发上限
rate: 1 # 覆盖该域速率上限(次/秒)
# 可选代理出口:默认关闭;仅策略要求或声誉风险时启用(本地优先,03 §7)。
proxy:
enabled: false # 默认 false
# ── driver:真实 BrowserNode 驱动装配(browser-transport-runtime-wiring)──
#
# 整段可省略。默认 enabled: false = 无驱动空池(I-6):daemon 照常启动、
# 全部组件保持 running,但 open_session/explore_task/run_skill 会返回结构化
# "未装配驱动"错误(诚实失败),与未接入驱动前行为逐字一致。
#
# 启用真实驱动的前置条件(缺任一项则监督器启动期探活失败并结构化报错):
# 1. 在 drivers/driver-cdp 下备好 venv:`make driver-cdp-venv`
# (python3 -m venv .venv && .venv/bin/pip install -r requirements.txt);
# 2. 本机安装 channel=chrome 的真实 Chrome,并把路径填入 chrome_path。
# 驱动进程只继承安全最小环境 allowlist;daemon 的 PRAXIS_VAULT_*、Vault
# master key、云凭据、DSN/token/key/secret 与代理变量不会被隐式传入。
# 回滚 = 删除本段或置 enabled: false(装配回到空池,逐字等价引入前)。
# driver:
# enabled: false # 默认 false(无驱动空池,I-6)
# kind: cdp # 驱动种类,默认 cdp(首档 T2 driver-cdp)
# # 定位驱动子进程:venv_python 与 command 二选一(启用时至少给一个)。
# venv_python: "drivers/driver-cdp/.venv/bin/python" # 经 `python -m driver_cdp --uds <path>` 拉起
# # command: "/usr/local/bin/driver-cdp" # 备选:直接给出可执行文件
# # args: [] # 附加参数(监督器会在其后追加 --uds <path>)
# # 透传给驱动作为 PRAXIS_CHROME_PATH,指向本机真实 Chrome。
# chrome_path: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# # tier_map: # 当前只接受等价声明 T2: cdp;其余档位启动期拒绝
# # T2: cdp
# ── adapters:本地 inbound 能力 ──
adapters:
# Web Management API 与 /healthz、/statusz 共用 daemon listener。
# 默认启用且仅允许 loopback/same-origin;写操作还需要 CSRF token。
web:
enabled: true # 默认 true;false 时不挂载 /api/v1
json_body_limit: 1048576 # JSON body 上限,默认 1 MiB
upload_limit: 33554432 # batch 单文件上传上限,默认 32 MiB
# MCP inbound 配置由 mcp-agent-interface 定义;整段可按需关闭。
mcp:
enabled: true
# vault:机密库配置,属后续变更。机密值只能以 %vault:<key>% 形式被其他段引用。
# vault:
# backend: "file"