Workspace 集成与钱包充值监听
Workspace 集成与钱包充值监听
OpenClaw workspace 集成
agent 读写位于 ~/.minara/workspace/ 的 workspace 目录 (经 --workspace 覆盖),其中含仿照 OpenClaw 的 AGENTS.default schema 的 markdown 文件:SOUL.md(身份)、 AGENTS.md(规则)、IDENTITY.md、USER.md、MEMORY.md(精选长期)、 HEARTBEAT.md(会话间备忘)、BOOTSTRAP.md(仅首次运行), 以及 memory/YYYY-MM-DD-*.md(每日日志)。 模板随 src/workspace/templates/ 发布。minara setup 在首次运行时播种它们。播种是幂等的,绝不 覆盖用户已编辑过的文件。
WORKSPACE_HEARTBEAT_ENABLED
每轮写入 HEARTBEAT.md 状态的写入器。
- 作用: 开启时,agent 在每轮结束后写入
<workspace>/HEARTBEAT.md,包含last_seen、session_id、surface、turn_count、last_user_query,以及从回复中启发式提取的open_loops。写入器在多次写入间原样保留用户编辑过的## Schedule小节。 - When to disable: 只读的 workspace 挂载、CI 运行,或不希望在磁盘上留下会话备忘的隐私敏感场景。
- 未设置时: 开启。
- 格式:
0/false/no/off表示禁用;其他任何值(默认)保持启用。 - 设置归属: 设置 → 偏好(schema 键)
WORKSPACE_DAILY_LOG_ENABLED
追加按会话的每日日志。
- 作用: 开启时,每个周期会在持久化的 SQLite 水位之后,把所有尚未记账的
chat_turns行刷写到<workspace>/memory/YYYY-MM-DD-<session>.md。这些行保留其真实的 session id、surface 与 runtime 来源;correlation id 绝不会被用作 session id。按会话分文件可避免多进程追加竞争。 - When to enable: 长期运行的部署,希望 agent 积累工作记忆,供你之后提升到 MEMORY.md。
- 未设置时: 关闭(在显式开启前,workspace 保持精简)。
- 格式:
1/true/yes/on表示启用。 - 设置归属: 设置 → 偏好(schema 键)
WORKSPACE_DAILY_LOG_INTERVAL
每日日志追加之间的轮数。
- 作用: 刷写上述
chat_turns积压的节奏。每次到期刷写都会写入水位之后的所有行,因此增大间隔只会延迟持久化,而不会对中间的轮次进行抽样或丢弃。 - 未设置时: 5 轮。
- 格式: 正整数。
- 设置归属: 非用户设置项
WORKSPACE_DREAM_ENABLED
WORKSPACE_DREAM_ENABLED:定期生成个人记忆摘要。
- 作用: 刷新共享的个人记忆流程,将最多 20 条选出的活跃事实写入 MEMORY.md 的生成区块。区块上限为 12 KB,过滤疑似密钥和钱包地址,并反映更正与删除。保留区块外的手写内容,替换旧版生成段落前先归档。无需启用或读取每日日志。
- When to enable: 需要可读的工作区记忆摘要时启用。有符合条件的新对话时,刷新会运行正常的提取与审核流程;文件生成本身不调用模型。
- 未设置时: 关闭。
- 格式:
1/true/yes/on表示启用。 - 设置归属: 设置 → 偏好(schema 键)
WORKSPACE_DREAM_INTERVAL_HOURS
dream 归并的节奏。
- 作用: 两次 dreaming 运行之间的小时数。当上一次运行仍在进行时,调度器会跳过该 tick,因此缓慢的 LLM 调用不会堆积。当
WORKSPACE_DREAM_ENABLED关闭时无效。 - 未设置时: 24(每天一次归并)。
- 格式: 正数(小时,可为小数)。
- 设置归属: 非用户设置项
WORKSPACE_DREAM_LOCK_TTL_MS
dream 锁文件的 TTL。
- 作用: 一个
<workspace>/.dreaming.lock文件在被视为过期、可被其他进程回收之前会被尊重多久。应反映单次 dream pass(LLM 调用 + IO)的最长合理时长,而非两次运行之间的间隔。该锁可防止 REPL 与 HTTP gateway 在各自的 tick 窗口重叠时,同时更新 MEMORY.md 的生成区块。不支持 NFS workspace(底层O_EXCL语义无法保证在所有 NFS 客户端上都是原子的)——请让 dreaming 保持在单台主机上。当WORKSPACE_DREAM_ENABLED关闭时无效。 - 未设置时: 1800000(30 分钟)。
- 格式: 正整数(毫秒)。
- 设置归属: 非用户设置项
REPORT_BUNDLE_CHART_PNGS
在 deep-research 的 HTML / PDF 报告中回退到 PNG 打包的图表,而非交互式 ECharts。
- 作用: 当设置时,gateway 的 deep-research 分支向
renderDeepResearchReport传入["html", "pdf", "charts"],于是bundleChartPngs运行,HTML 将每个chart://<id>内嵌为静态的<img src="charts/<id>.png">标签(通过无头 playwright 在服务端渲染)。未设置时(v7 起的默认),gateway 只传入["html", "pdf"],每个 chart:// 链接展开为标准的 ECharts 内嵌形式(<div class="echart-host">+ 从 echarts CDN 注水的内联<script>)。默认产生带缩放 + tooltip + saveAsImage PNG 下载的交互式图表。 - 由哪个 skill / tool 消费:deep-research 流水线(
src/gateway/api.ts的handleChatStreamdeep-research 分支)。 - When to set it: 需要导出报告用于离线分发(echarts CDN 不可达)的运维,或无法容忍打开时拉取约 120 KB CDN 脚本的运维。权衡:PNG 打包的图表是静态的——无缩放、无 tooltip、无 PNG 下载按钮。必须安装无头 playwright(已是项目依赖)才能运行图表物化。
- 未设置时: 交互式 ECharts(CDN 注水)。在有网络访问的浏览器中打开 HTML 即可看到图表;离线时图表会按内嵌脚本的 try/catch 降级为一个小小的「chart unavailable」占位。
- 格式: 1 / true(启用)——其他任何值或未设置都表示禁用。
- 设置归属: 设置 → 偏好(schema 键)
钱包充值监听
实时充值检测 SSE 端点 (POST /v1/wallet/deposits/watch)。为 perps USDC/Arbitrum 地址 的 Portfolio DepositModal 中的绿色翻转提供动力。 两种链传输方式;agent 在启动时选择: 1. Alchemy(首选)——设置 ALCHEMY_API_KEY。使用 alchemy_getAssetTransfers(专为传入转账构建的 查询)+ alchemy_pendingTransactions WS 订阅以 实时观测 mempool。免费层:每月 300M CU。 2. 公共 RPC 回退——无 ALCHEMY_API_KEY 时。每 5s 轮询 eth_getLogs,过滤到充值地址的 USDC Transfer 事件。无 mempool 可见性(此模式下不发出 pending 事件)。 它控制什么:WALLET_DEPOSIT_WATCH_ENABLED——该 SSE 端点的 总开关。开发环境默认 ON,让该特性开箱 即用;设为 false / 0 干净地禁用。关闭时, web-ui 的 DepositStatus pill 显示 "Live updates unavailable", 用户仍可正常复制地址。 哪个 skill / 工具消费它:apps/agent/src/wallet-watch/* 和 api.ts 的 handleWalletDepositsWatch 处理器。
WALLET_DEPOSIT_WATCH_ENABLED
WALLET_DEPOSIT_WATCH_ENABLED=true
- 设置归属: 设置 → 偏好(schema 键)
ALCHEMY_API_KEY
Alchemy 的 Arbitrum API key。一个 key 可用于所有 Alchemy 链。可选—— 不配置时 watcher 回退到公共 Arbitrum RPC(无 mempool 检测)。 ALCHEMY_API_KEY=abc123...
- 设置归属: 设置 → API 密钥
ALCHEMY_NETWORK
Alchemy 网络枚举字符串。arb-mainnet 是目前我们唯一关心的(perps 钱包 充值 = Arbitrum 上的 USDC)。仅当你把 ALCHEMY_API_KEY 指向测试网做端到端 QA 时才覆盖。 ALCHEMY_NETWORK=arb-mainnet
- 设置归属: 非用户设置项
ARBITRUM_RPC_URL
公共 Arbitrum RPC URL——在 ALCHEMY_API_KEY 未设置时使用。
- 默认值: https://arb1.arbitrum.io/rpc(Arbitrum Foundation)。
- 运维可以换用付费的 HTTPS 端点,而无需启用
- Alchemy——如果只需要确认后检测。
- ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc
- 设置归属: 非用户设置项
SOLANA_RPC_URL
公共 Solana RPC URL——由现货充值 watcher 用于 Solana 链。非 EVM,因此不会 自动接入 Alchemy;会先尝试此 URL,再依次尝试 foundation 级别的公共列表 (api.mainnet-beta.solana.com、solana-rpc.publicnode.com、…)。该 transport 每 5 秒轮询一次用户 USDC token 账户上的 getSignaturesForAddress,并在 confirmed 确认级别翻转为 credited。
- 默认值: https://api.mainnet-beta.solana.com(Solana Foundation)。
- 使用托管 RPC(Helius、QuickNode、Triton、Alchemy
- Solana)的运维可以在此换用,以获得更高的速率限制。
- SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
- 设置归属: 非用户设置项
DEPOSIT_WATCH_TIMEOUT_MS
一个 watch 会话在自动关闭前会存续多久(ms)。默认 20 分钟——足以应对缓慢 的链上确认,同时限制忘记关闭的弹窗对资源的占用。 DEPOSIT_WATCH_TIMEOUT_MS=1200000
- 设置归属: 非用户设置项