核心概念
Runtime 与安全边界
了解本地 Node、远程 MCP 以及 Oho 在执行前后进行的检查。
本地 Node Runtime
本地 Node Tool 在子进程中执行,环境变量会被清理,Plugin 目录以只读方式提供。Alpha 不允许本地 Node Plugin 声明网络访问,因为当前 Runtime 还没有可强制执行的网络沙箱。
{
"runtime": { "kind": "node", "entry": "src/index.mjs" },
"permissions": { "network": [], "secrets": [] }
}远程 MCP Runtime
MCP Tool 来自 tools/list 发现;Manifest 必须给出 allowlist、风险、默认模式和连接字段。Oho 将发现结果锁定为能力快照,不能把 MCP Server 返回的任意新 Tool 自动交给 Agent。
本地 MCP 注册只接受字面量 loopback IP:127.0.0.1 或 ::1。localhost 会被拒绝,避免校验后解析到不同目标。
Schema 边界
Oho 在 Runtime 缝隙验证 Tool 输入和输出。对象输入应默认使用 additionalProperties: false,以免写操作通过未声明字段绕过目标策略。
风险与确认
low:无副作用的读取或计算;medium:可逆写入;high:不可逆或高影响操作。
高风险 Tool 不能使用 defaultMode: "allowed"。当前通用二次确认的恢复执行链路尚未完成,因此非低风险能力不应作为 Alpha 教程的成功路径。
运行时不接收什么
不要把令牌、Cookie、OAuth client secret 或 API Key 写入:
- Manifest;
- Skill 或 Command;
- 源码和提交到 Registry 的
.env; - 日志、截图、Trace 或 Tool 输出。