# Kestra ↔ Hermes/OpenClaw 接口与安全边界

## 1. 推荐接口原则

Kestra 不直接把长 prompt 扔给任意 agent。推荐调用受控 wrapper：

```text
run_hermes_profile(profile, brief_path, output_dir)
run_openclaw_worker(worker, brief_path, output_dir)
verify_artifact(path, criteria)
notify_user(channel, summary)
```

每个 wrapper 负责：

- 读取任务 brief；
- 限制 profile/worker；
- 设置工作目录；
- 设置超时；
- 捕获 stdout/stderr；
- 输出结构化结果 JSON；
- 不打印 secrets。

## 2. Bot1 Hermes 调用草案

```bash
HOME=/Users/bot1 hermes -p it chat -q "读取并执行 brief：/path/to/brief.md。只返回结构化结果。"
```

更稳的方式：写一个 wrapper，例如：

```bash
/Users/bot1/bin/run-hermes-profile-safe   --profile it   --brief /path/to/brief.md   --output-dir /path/to/output   --timeout 600
```

## 3. Bot2 Hermes 调用草案

通过 SSH 或内网 API。推荐先用 SSH POC：

```bash
ssh bot2 'HOME=/Users/bot2 hermes -p it2 chat -q "Reply exactly BOT2_OK"'
```

注意：

- 不复用 Bot1 的 Feishu chat ID；
- 不传 secrets；
- Bot2 profile 自己使用自己的 auth/profile/env；
- 输出由 Bot1/Hermes IT 再验证。

## 4. OpenClaw/OpenCloud 调用草案

当前 Bot1 只读检查显示 OpenClaw gateway 正在运行：

```text
ai.openclaw.gateway
port: 18789
```

POC 可以选择：

- CLI 方式：`HOME=/Users/bot1 openclaw ...`；
- loopback HTTP gateway 方式：仅 `127.0.0.1`，token 不进入日志。

OpenClaw worker 禁止：

- 修改 Hermes Skills/SOUL/config；
- 写 NAS/shared drive；
- 写长期记忆；
- 安装 daemon/LaunchAgent；
- 擅自扩大任务范围。

## 5. 日志与脱敏规则

Kestra logs 可能持久化 execution 日志，因此必须限制：

绝不打印：

- API keys；
- Feishu app secret / verification token / encrypt key；
- OAuth `auth.json` 内容；
- `.env` 值；
- NAS 密码；
- cookie；
- private key；
- Hindsight API key。

允许打印：

- profile 名；
- task id；
- execution id；
- 文件路径；
- 文件大小；
- 校验状态；
- 脱敏错误摘要。

## 6. NAS 边界

Kestra POC 阶段：

- 不写 `00_共享区/共享知识库`；
- 不写 `02_项目归档/交付文件`；
- 不写/改/删 `03_用户资料`；
- 不让 OpenClaw 写 NAS；
- 不让 Kestra flow 自动归档。

如果未来要让 Kestra 触发 NAS 写入，也必须仍由 Hermes IT 做确认关口：

```text
Kestra step reaches “needs_nas_write_confirmation”
  → Hermes IT 向用户二次确认 exact path / operation / overwrite-delete risk
  → 用户确认
  → 执行受控写入
  → 校验
```

## 7. 最小验收清单

POC 成功需要同时满足：

- Kestra UI 可看到三个 execution；
- 每个 execution 有明确 SUCCESS/FAILED；
- 日志不含 secrets；
- Bot1 profile 能被调用；
- OpenClaw 能被调用或明确记录调用阻塞原因；
- Bot2 能被调用或明确记录跨机阻塞原因；
- Hermes IT 能读取 execution 状态并给用户简报。
