OhoDevelopers
核心概念

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:不可逆或高影响操作。

工具声明中的风险等级用于描述能力。可用工具统一经过服务端的执行授权入口,当前默认直接执行;disabled 工具仍不可用。旧 approval_required 声明继续兼容读取,但不再触发人工确认。未来权限规则与确认流程集中接入这一授权入口,Node 沙箱、MCP 目标范围与参数校验仍然保留。

运行时不接收什么

不要把令牌、Cookie、OAuth client secret 或 API Key 写入:

  • Manifest;
  • Skill 或 Command;
  • 源码和提交到 Registry 的 .env;
  • 日志、截图、Trace 或 Tool 输出。