🛡️ 执行与访问边界
# 按实际任务开放工具
只做对话或调用业务 API 时,覆写 enableShellTool() 返回 false。需要文件处理时可以使用文件工具,不必同时开启命令执行。
本地命令继承 Java 进程的系统权限和环境变量。命令的工作目录不是操作系统隔离边界,允许 Python 或 Shell 后,脚本也能执行这些解释器允许的操作。需要隔离命令环境时使用 Docker 沙箱。
# Docker 的边界
默认容器断网,内存上限为 512 MiB,CPU 配额为 1。业务需要联网时再调整 harness.docker.network,所需软件和依赖预先安装在镜像中。
Docker 只隔离容器内的命令。模型请求、Java 工具和 MCP 客户端仍由应用执行,其凭据、访问权限和副作用仍由应用负责。
# 业务操作与人工确认
模型请求调用工具不等于已经通过业务授权。工具应校验订单归属、操作权限和参数;退款等写操作需要实现幂等。需要用户决定时,为工具配置 ASK 规则并接入人工确认处理器,默认不会自动审批。
# 会话和文件访问
应用名、会话 ID 和 Agent 标识用于数据隔离,不替代登录和权限校验。历史查询、审批回调和附件下载接口都应校验会话归属。
持久存储、执行目录和快照的用途不同。备份时以所选存储和快照为准,删除会话后按业务保留策略处理剩余文件,详见会话存储和聊天历史。
帮助我们改善此文档 (opens new window)
上次更新: 2026/09/20, 11:49:27



