OmX OpenClaw 集成指南:hook instruction 提示词调优与上下文感知通知实战
导读
本指南讲解 OmX(oh-my-codex)如何通过 notifications.openclaw 配置将 Codex 会话生命周期事件(session-start、session-idle、ask-user-question、stop、session-end)转发到 OpenClaw 网关,并重点深入讲解决定通知质量的核心杠杆——hook instruction 模板的调优方法:从模板修改位置、推荐上下文 token、verbosity 冗长级别策略,到基于 jq 的一键更新命令,再到可选用的三种配置方案与源码级实现原理。读完本文,你将能够为自己的 OpenClaw / clawdbot 工作流配置出高度结构化、可被 Agent 高效解析、可追溯(sessionId + tmuxSession)的通知指令模板。
本文主体对应仓库中的 OpenClaw 集成指南(意大利语本地化版),完整集成上下文(激活门控、三种配置方案、验证与诊断)参考 英文版指南。
一、集成概览:OpenClaw 网关与激活门控
OmX 的 OpenClaw 集成是一条“通知 → 网关唤醒”的流水线:Codex 的 hook 事件被 OmX 捕获后,由 notifications/index.ts 组装上下文并调用 wakeOpenClaw 入口,最终通过 HTTP 或命令网关把事件与插值后的指令投递给 OpenClaw / clawdbot。
流水线是否启动由两个环境变量控制(对应 config.ts 的激活门控逻辑):
# 推荐在 shell 配置文件中导出 token 环境变量,避免把密钥硬编码进 JSON
export HOOKS_TOKEN="your-openclaw-hooks-token"
# OpenClaw 分发流水线必需
export OMX_OPENCLAW=1
# 命令网关(command gateway)额外需要
export OMX_OPENCLAW_COMMAND=1
# 可选:命令网关超时的全局默认值(毫秒)
# 优先级:网关级 timeout > 环境变量覆盖 > 5000 默认值
export OMX_OPENCLAW_COMMAND_TIMEOUT_MS=120000
其中 OMX_OPENCLAW=1 是总开关:源码中 getOpenClawConfig() 在 process.env.OMX_OPENCLAW !== "1" 时直接返回 null,整个分发链路被短路;而命令网关还有一道独立的 opt-in 门控 OMX_OPENCLAW_COMMAND=1(见 dispatcher.ts),未设置时命令网关直接返回失败,防止未授权执行 shell 命令。
配置文件默认位于 ~/.codex/.omx-config.json,可通过 OMX_OPENCLAW_CONFIG 环境变量指向独立文件(用于测试或高级覆盖)。配置读取带有一级缓存,进程生命周期内环境变量变化不会影响已缓存的配置。
二、Prompt 模板修改位置:五个 hook 的 instruction
对于 OpenClaw 集成,最重要的质量杠杆是 hook 的 instruction 模板。每个事件钩子都可以单独配置启用状态、网关与指令文本,模板键路径如下:
notifications.openclaw.hooks["session-start"].instructionnotifications.openclaw.hooks["session-idle"].instructionnotifications.openclaw.hooks["ask-user-question"].instructionnotifications.openclaw.hooks["stop"].instructionnotifications.openclaw.hooks["session-end"].instruction
这五个事件对应 types.ts 中定义的 OpenClawHookEvent。注意:pre-tool-use、post-tool-use、keyword-detector 是 OmX 特有的钩子,Codex CLI 并不支持,因此被有意排除在 OpenClaw 事件集合之外。
每个 hook 映射(OpenClawHookMapping)包含三个字段(见 types.ts):
| 字段 | 含义 | 说明 |
|---|---|---|
gateway |
网关名称 | 引用 gateways 对象中的键,如 local |
instruction |
指令模板 | 支持 {{variable}} 占位符,是提示词调优的核心 |
enabled |
是否启用 | false 时该事件不会触发分发 |
三、推荐上下文 token:跨日志追踪与 tmux 直连
instruction 模板支持 {{变量}} 插值。推荐的 token 使用策略如下:
始终包含(保证可追溯性):
{{sessionId}}—— 跨日志追踪的会话标识{{tmuxSession}}—— 便于直接定位并跟进对应的 tmux 会话
按事件按需包含:
{{projectName}}—— 项目名{{question}}—— 仅ask-user-question事件{{reason}}—— 仅session-end事件
这些 token 由 wakeOpenClaw 的变量构建逻辑 从白名单上下文中生成,实际可用变量远不止这几个——template-engine.ts 的 KNOWN_VARIABLES 列出了完整集合,包括 projectPath、modesUsed、contextSummary、durationMs、reason、question、incompleteTasks、tmuxTail、tmuxPaneId,以及由环境变量 OPENCLAW_REPLY_CHANNEL / OPENCLAW_REPLY_TARGET / OPENCLAW_REPLY_THREAD 填充的回执上下文 replyChannel / replyTarget / replyThread,还有计算变量 duration、time、footer、tmuxTailBlock 等。未解析的变量会被替换为空字符串,因此模板中对缺失字段要有兜底设计。
安全提示:上下文在进入网关前会经过 buildWhitelistedContext 白名单过滤,仅枚举已知字段,防止敏感数据意外泄漏到网关负载中;tmux 尾部输出也会经
sanitizeTmuxAlertText清洗。
四、结构化 instruction 格式:让 Agent 高效解析
生产环境建议采用结构化格式,便于 clawdbot 等 Agent 高效解析:
[event|exec]
project={{projectName}} session={{sessionId}} tmux={{tmuxSession}}
필드1: 값
필드2: 값
关键约定:
[event|exec]前缀:标识这是一个需要 Agent 采取行动的可执行 hook(而非纯消息转发)。- 韩文字段名(요약 摘要、우선순위 优先级、주의사항 注意事项、성과 成果、검증 验证、다음 下一步):为以韩语为主要工作语言的开发团队提供一致的指令结构,便于解析与后续跟进。
五个事件的完整模板示例(exec 风格):
# session-start
[session-start|exec]
project={{projectName}} session={{sessionId}} tmux={{tmuxSession}}
요약: 시작 맥락 1문장
우선순위: 지금 할 일 1~2개
주의사항: 리스크/의존성(없으면 없음)
# session-idle
[session-idle|exec]
session={{sessionId}} tmux={{tmuxSession}}
요약: idle 원인 1문장
복구계획: 즉시 조치 1~2개
의사결정: 사용자 입력 필요 여부
# ask-user-question
[ask-user-question|exec]
session={{sessionId}} tmux={{tmuxSession}} question={{question}}
핵심질문: 필요한 답변 1문장
영향: 미응답 시 영향 1문장
권장응답: 가장 빠른 답변 형태
# stop
[session-stop|exec]
session={{sessionId}} tmux={{tmuxSession}}
요약: 중단 사유
현재상태: 저장/미완료 항목
재개: 첫 액션 1개
# session-end
[session-end|exec]
project={{projectName}} session={{sessionId}} tmux={{tmuxSession}} reason={{reason}}
성과: 완료 결과 1~2문장
검증: 확인/테스트 결과
다음: 후속 액션 1~2개
五、verbosity 冗长级别策略
OmX 提供三档全局冗长级别,控制通知的信息密度:
| 级别 | 适用场景 |
|---|---|
minimal |
极短提醒,高信噪比、低叙事 |
session |
简洁的操作上下文(推荐默认) |
verbose |
更丰富的状态 + 动作 + 风险框架 |
对应配置键为 notifications.verbosity。英文版文档给出了 "executive-summary verbose profile"(verbose 档的完整 JSON 示例),将上述五个 hook 全部以 enabled: true、gateway: "local" 挂到本地网关上,五个 instruction 与上文模板一一对应,是可直接落地的配置底稿,本节不再重复粘贴,详见下文第六节的 jq 等价写法与完整 JSON。
六、jq 一键更新命令(快速上手)
无需手写整个配置文件,直接用 jq 更新模板即可。以下命令把全局 verbosity 设为 verbose,并为五个 hook 一次性写入上述 exec 结构化模板:
CONFIG_FILE="$HOME/.codex/.omx-config.json"
jq '.notifications.verbosity = "verbose" |
.notifications.openclaw.hooks["session-start"].instruction = "[session-start|exec]\nproject={{projectName}} session={{sessionId}} tmux={{tmuxSession}}\n요약: 시작 맥락 1문장\n우선순위: 지금 할 일 1~2개\n주의사항: 리스크/의존성(없으면 없음)" |
.notifications.openclaw.hooks["session-idle"].instruction = "[session-idle|exec]\nsession={{sessionId}} tmux={{tmuxSession}}\n요약: idle 원인 1문장\n복구계획: 즉시 조치 1~2개\n의사결정: 사용자 입력 필요 여부" |
.notifications.openclaw.hooks["ask-user-question"].instruction = "[ask-user-question|exec]\nsession={{sessionId}} tmux={{tmuxSession}} question={{question}}\n핵심질문: 필요한 답변 1문장\n영향: 미응답 시 영향 1문장\n권장응답: 가장 빠른 답변 형태" |
.notifications.openclaw.hooks["stop"].instruction = "[session-stop|exec]\nsession={{sessionId}} tmux={{tmuxSession}}\n요약: 중단 사유\n현재상태: 저장/미완료 항목\n재개: 첫 액션 1개" |
.notifications.openclaw.hooks["session-end"].instruction = "[session-end|exec]\nproject={{projectName}} session={{sessionId}} tmux={{tmuxSession}} reason={{reason}}\n성과: 완료 결과 1~2문장\n검증: 확인/테스트 결과\n다음: 후속 액션 1~2개"' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
命令要点:
- 以
"$CONFIG_FILE.tmp"为中间文件写入再原子替换原文件,避免 jq 输出与输入同文件冲突; - instruction 内使用
\n转义换行(bash 单引号内原样保留给 jq 解析为 JSON 换行); - 韩文字段直接内嵌于模板字符串,无需额外转义。
如果你更希望把指令模板维护在 notifications.hookTemplates 键下(OmX 的通用 hook 模板机制),可参考 hook-config.ts 的读取与级联逻辑:解析优先级为“平台级覆盖 > 事件级模板 > 全局默认模板”,事件开关可被合并进全局通知配置(mergeHookConfigIntoNotificationConfig),且 hook 级 enabled: false 会覆盖全局事件开关。
七、配置优先级契约(canonical precedence)
当显式 OpenClaw 配置与通用别名同时存在时,行为保持确定且向后兼容(对应 config.ts 的解析实现):
notifications.openclaw优先;custom_webhook_command/custom_cli_command别名被忽略;- OmX 会输出一条 warning 提示开发者。
从源码看,normalizeFromCustomAliases 会把别名归一化为内部 OpenClaw 网关映射,但一旦检测到合法的显式配置,立即整体覆盖别名结果并打印警告;同时 inspectOpenClawConfig 的状态机(configured / disabled / missing-config / invalid-config / not-configured)与 warnings 字段可供 CLI 诊断工具直接呈现。
八、三种配置方案
方案 A:显式 notifications.openclaw(原生运行期形态)
{
"notifications": {
"enabled": true,
"openclaw": {
"enabled": true,
"gateways": {
"local": {
"type": "http",
"url": "http://127.0.0.1:18789/hooks/agent",
"headers": {
"Authorization": "Bearer ${HOOKS_TOKEN}"
}
}
},
"hooks": {
"session-end": {
"enabled": true,
"gateway": "local",
"instruction": "OMX task completed for {{projectPath}}"
},
"ask-user-question": {
"enabled": true,
"gateway": "local",
"instruction": "OMX needs input: {{question}}"
}
}
}
}
}
网关类型方面,types.ts 定义了两种:
- HTTP 网关(
type: "http",缺省即 http):字段url、headers、method(POST/PUT,默认 POST)、timeout。URL 校验要求 HTTPS,仅 localhost / 127.0.0.1 / ::1 允许 HTTP 本地调试(validateGatewayUrl)。HTTP 请求默认超时 10 秒。 - 命令网关(
type: "command"):字段command(含{{variable}}占位符,插值前自动 shell 转义)、timeout。
方案 B:通用别名(custom_webhook_command / custom_cli_command)
适合 OpenClaw 之外的通用服务,OMX 会自动归一化为内部 OpenClaw 网关映射:
{
"notifications": {
"enabled": true,
"custom_webhook_command": {
"enabled": true,
"url": "http://127.0.0.1:18789/hooks/agent",
"method": "POST",
"headers": {
"Authorization": "Bearer ${HOOKS_TOKEN}"
},
"events": ["session-end", "ask-user-question"],
"instruction": "OMX event {{event}} for {{projectPath}}"
},
"custom_cli_command": {
"enabled": true,
"command": "~/.local/bin/my-notifier --event {{event}} --text {{instruction}}",
"events": ["session-end"],
"instruction": "OMX event {{event}} for {{projectPath}}"
}
}
}
别名归一化的细节在 normalizeFromCustomAliases 中:events 只接受五个合法事件,空/非法时回退到默认事件集 ["session-end", "ask-user-question"];instruction 缺失时回退到 "OMX event {{event}} for {{projectPath}}";webhook 方法非 PUT 一律视为 POST;多个别名对同一事件的映射会产生覆盖警告。
方案 C:Clawdbot Agent 命令工作流(开发团队推荐)
当希望 OMX hook 事件触发 Agent 回合(agent turns) 而非普通消息/webhook 转发时(例如投递到 #omc-dev 频道),使用命令网关拉起 clawdbot agent:
{
"notifications": {
"enabled": true,
"verbosity": "verbose",
"events": {
"session-start": { "enabled": true },
"session-idle": { "enabled": true },
"ask-user-question": { "enabled": true },
"session-stop": { "enabled": true },
"session-end": { "enabled": true }
},
"openclaw": {
"enabled": true,
"gateways": {
"local": {
"type": "command",
"command": "(clawdbot agent --session-id omx-hooks --message {{instruction}} --thinking minimal --deliver --reply-channel discord --reply-to 'channel:1468539002985644084' --timeout 120 --json >>/tmp/omx-openclaw-agent.jsonl 2>&1 || true)",
"timeout": 120000
}
},
"hooks": {
"session-start": {
"enabled": true,
"gateway": "local",
"instruction": "[session-start|exec]\nproject={{projectName}} session={{sessionId}} tmux={{tmuxSession}}\n요약: 시작 맥락 1문장\n우선순위: 지금 할 일 1~2개\n주의사항: 리스크/의존성(없으면 없음)"
},
"session-idle": {
"enabled": true,
"gateway": "local",
"instruction": "[session-idle|exec]\nsession={{sessionId}} tmux={{tmuxSession}}\n요약: idle 원인 1문장\n복구계획: 즉시 조치 1~2개\n의사결정: 사용자 입력 필요 여부"
},
"ask-user-question": {
"enabled": true,
"gateway": "local",
"instruction": "[ask-user-question|exec]\nsession={{sessionId}} tmux={{tmuxSession}} question={{question}}\n핵심질문: 필요한 답변 1문장\n영향: 미응답 시 영향 1문장\n권장응답: 가장 빠른 답변 형태"
},
"stop": {
"enabled": true,
"gateway": "local",
"instruction": "[session-stop|exec]\nsession={{sessionId}} tmux={{tmuxSession}}\n요약: 중단 사유\n현재상태: 저장/미완료 항목\n재개: 첫 액션 1개"
},
"session-end": {
"enabled": true,
"gateway": "local",
"instruction": "[session-end|exec]\nproject={{projectName}} session={{sessionId}} tmux={{tmuxSession}} reason={{reason}}\n성과: 완료 결과 1~2문장\n검증: 확인/테스트 결과\n다음: 후속 액션 1~2개"
}
}
}
}
}
shell 安全须知:模板变量(如 {{instruction}})会被插值进命令字符串,dispatcher.ts 会先做 shell 转义再插值(单引号包裹 + 内部引号转义),但请保持模板简单,避免用户派生内容携带 shell 元字符。排障时可临时去掉输出重定向,直接观察命令输出。
命令网关超时优先级:gateways.<name>.timeout > OMX_OPENCLAW_COMMAND_TIMEOUT_MS > 5000 默认值。源码 resolveCommandTimeoutMs 还会把结果钳制在安全区间 [100ms, 300000ms](5 分钟上限),防止超长命令进程失控。对 clawdbot agent 工作流,请使用 120000(2 分钟)避免过早超时。
生产最佳实践:
- 命令末尾加
|| true,防止 OMX hook 失败阻塞会话; - 使用
.jsonl扩展名 + 追加(>>)实现结构化日志聚合; - 使用
--reply-to 'channel:CHANNEL_ID'格式投递 Discord(优先于频道别名,别名在 bot 未缓存频道时可能失败)。
执行模型细节:命令插值后若无 shell 元字符,走直接 argv 执行;有元字符才回退 sh -c(dispatcher.ts)。POSIX 命令在进程组中运行,超时或父进程退出时通过 SIGTERM 清理整棵进程树(1 秒宽限期后 SIGKILL),避免僵尸进程。执行结果还会检查输出量上限与进程数上限。
九、开发指南:OpenClaw + Clawdbot Agent(韩语跟进模式)
当 #omc-dev 需要接收 OpenClaw 通知并主动跟进时,使用此配置画像。
1) 在 hook 指令中强制韩语输出
- 所有 hook 指令用韩语编写;
- 在每条指令模板中显式要求韩语回复;
- 优先
--reply-to 'channel:CHANNEL_ID'格式,示例--reply-to 'channel:1468539002985644084'(对应 #omc-dev);频道别名(如#omc-dev)在 bot 未缓存频道时可能失败。
示例指令风格:
OMX 훅={{event}} 프로젝트={{projectName}} 세션={{sessionId}}.
반드시 한국어로 응답하세요.
OMX tmux 세션: {{tmuxSession}}.
SOUL.md 및 #omc-dev 맥락을 참고해 필요한 후속 액션이 있으면 즉시 안내하세요.
2) 追踪发出 hook 的 OMX tmux 会话
- 每条 hook 消息都包含
{{sessionId}}和{{tmuxSession}}; {{tmuxSession}}存在时作为主要跟进目标;缺失时从sessionId和当前项目路径推导候选 tmux 会话。
快速检查命令:
tmux ls | grep '^omx-' || true
tmux list-panes -a -F '#{session_name}\t#{pane_id}\t#{pane_current_path}' | grep "$(basename "$PWD")" || true
补充:即使上下文未提供,wakeOpenClaw 也会通过 getCurrentTmuxSession() 自动探测当前 tmux 会话作为兜底;但 stop/session-end 事件的 pane 历史不会自动捕获重放,防止会话结束后产生虚假跟进告警。
3) SOUL.md + #omc-dev 跟进 runbook
当 hook 提示存在进行中的工作或待办用户操作时:
- 阅读
SOUL.md与近期#omc-dev上下文; - 用韩语跟进,并引用
sessionId+tmuxSession; - 需要行动时,给出具体下一步(例如:需要回复、需要重试、需要检查会话);
- 投递异常时,检查日志并在不吞掉输出的情况下重试。
排障命令:
# 检查结构化 JSONL 日志
tail -n 120 /tmp/omx-openclaw-agent.jsonl | jq -s '.[] | {timestamp: (.timestamp // .time), status: (.status // .error // "ok")}'
# 在日志中搜索错误
rg '"error"|"failed"|"timeout"' /tmp/omx-openclaw-agent.jsonl | tail -20
# 使用生产验证过的参数手动重试
clawdbot agent --session-id omx-hooks \
--message "OMX hook retry 점검: session={{sessionId}} tmux={{tmuxSession}}" \
--thinking minimal --deliver --reply-channel discord --reply-to 'channel:1468539002985644084' \
--timeout 120 --json
十、验证(必做)
A) Wake 冒烟测试(/hooks/wake)
curl -sS -X POST http://127.0.0.1:18789/hooks/wake \
-H "Authorization: Bearer ${HOOKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"text":"OMX wake smoke test","mode":"now"}'
通过信号:返回 JSON 中包含 "ok":true。
B) 投递验证(/hooks/agent)
curl -sS -o /tmp/omx-openclaw-agent-check.json -w "HTTP %{http_code}\n" \
-X POST http://127.0.0.1:18789/hooks/agent \
-H "Authorization: Bearer ${HOOKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"message":"OMX delivery verification","instruction":"OMX delivery verification","event":"session-end","sessionId":"manual-check"}'
通过信号:HTTP 2xx + 已接受的响应体。
预检检查
# token 是否存在
test -n "$HOOKS_TOKEN" && echo "token ok" || echo "token missing"
# 网关可达性
curl -sS -o /dev/null -w "HTTP %{http_code}\n" http://127.0.0.1:18789 || echo "gateway unreachable"
# 门控检查
test "$OMX_OPENCLAW" = "1" && echo "OMX_OPENCLAW=1" || echo "missing OMX_OPENCLAW=1"
test "$OMX_OPENCLAW_COMMAND" = "1" && echo "OMX_OPENCLAW_COMMAND=1" || echo "missing OMX_OPENCLAW_COMMAND=1"
十一、通过/失败诊断对照表
| 症状 | 定位与处置 |
|---|---|
| 401/403 | Bearer token 无效或缺失 |
| 404 | 路径错误,核对 /hooks/agent 与 /hooks/wake |
| 5xx | 网关运行期问题,检查日志 |
| 超时 / connection refused | 主机、端口或防火墙问题 |
| 命令网关被禁用 | 同时设置 OMX_OPENCLAW=1 与 OMX_OPENCLAW_COMMAND=1 |
| 命令被 SIGTERM 杀掉 | 调大 gateways.<name>.timeout(clawdbot agent 建议 120000)或设置 OMX_OPENCLAW_COMMAND_TIMEOUT_MS |
| hook 失败阻塞会话 | 命令以 ` |
| 日志缺失 | 使用 .jsonl 扩展名 + >> 追加实现持久结构化日志 |
| Discord 投递失败 | 改用 --reply-to 'channel:CHANNEL_ID' 格式,放弃频道别名 |
十二、源码级原理小结
整套集成的运行时调用链可归纳为:hook 事件 → notifications/index.ts 的 OpenClaw 分发分支 → wakeOpenClaw → resolveGateway 解析 → HTTP(wakeGateway)/ 命令(wakeCommandGateway)网关。
几个值得记住的实现细节:
ask-user-question事件会同步 await 分发,确保下游回复路由仍附着在活动会话上;其余生命周期事件 fire-and-forget,避免拖慢通知返回(notifications/index.ts);- 模板插值采用轻量无依赖实现,支持
{{var}}与{{#if var}}...{{/if}}条件(template-engine.ts),未知变量替换为空字符串; - 配置读取与分发均为失败安全:任何 OpenClaw 异常都不会影响主通知链路(wakeOpenClaw 的 catch 分支);
- 仓库自带完整单测覆盖:config.test.ts、dispatcher.test.ts、index.test.ts,可对照验证优先级、超时钳制与安全转义等行为。
按本指南配置好五个 hook 的 instruction、选对 verbosity 级别、跑通 /hooks/wake 冒烟测试后,你的 OmX → OpenClaw 通知链路即可进入生产可用的状态——而这一切质量的关键,正是你为每个事件精心调优的那条 instruction 模板。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0634
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
jforgamejforgame是一个一站式游戏服务器开发框架。包含游戏服务器开发所需要的各种组件,比如网关,socket服务端与客户端,自定义高效消息编解码,游戏热更新,游戏通用工具等等。包含游戏服,跨服,匹配服,后台管理系统等实现,同时提供大量业务案例以供学习。亦可用于其他socket应用,例如及时聊天等。Java01
fizz-gateway-nodeAn Aggregation API Gateway in Java . FizzGate 是一个基于 Java开发的微服务聚合网关,是拥有自主知识产权的应用网关国产化替代方案,能够实现热服务编排聚合、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理、回调管理等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行API服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。Java00
certd开源SSL证书管理工具;全自动证书申请、更新、续期;通配符证书,泛域名证书申请;证书自动化部署到阿里云、腾讯云、主机、群晖、宝塔;https证书,pfx证书,der证书,TLS证书,nginx证书自动续签自动部署JavaScript00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00