Back to Chatbox

Chat 模式代码执行

docs/product/code-execution.md

1.22.37.1 KB
Original Source

Chat 模式代码执行

Last updated: 2026-07

概述

Chat 模式代码执行让 AI 在普通对话中处理文件、运行轻量代码、生成可下载产物。它面向日常文件处理和数据计算,例如汇总表格、读取上传文档、生成 HTML 图表或导出报告。

桌面端功能。Web 端和移动端不会启用 Agent Mode,也不会注入代码执行工具。

工作方式

Chat 模式代码执行在聊天对话中通过 Agent Mode 控制,自动为每个会话分配临时工作目录,文件来源为用户上传的文件或 AI 在工作目录内生成的文件,适用于文件分析、简单脚本、数据计算和产物生成。macOS/Linux 会对代码执行施加操作系统级隔离;Windows 当前为原生执行,仅提供独立工作目录,不提供操作系统级文件或网络隔离。

Chat 模式向模型提供 code_execution / read_file / create_download 等高级工具,不会向模型展示底层 sandbox_* 工具。历史消息仍可能渲染这些底层工具调用,但当前的 Chat Agent 工具集使用更高层的 code execution 工具。

核心能力

能力说明
代码执行运行 Node.js 或平台可用的 Shell;Windows 优先使用 PowerShell,Bash 为可选能力
文件读取读取沙箱文件或经授权读取用户真实文件,支持分页读取大文件
文件解析上传时预解析 PDF、Office 等文档;非文本文件会提供 {文件名}_parsed.txt 供 AI 读取
文件生成AI 可生成文件并通过 create_download 在消息末尾展示为下载产物
HTML 预览对 HTML 产物提供本地预览,可访问同一沙箱内的相对资源文件
SkillsAI 可按需加载启用的 Skill;产品帮助 Skill 默认可查询 Chatbox 相关信息
用户命令On 模式可通过 user_exec 在用户真实环境执行命令;命令按白名单、AI 安全评估、用户审批和 Full Access 设置处理
文件写入/编辑Agent Mode 可使用文件工具。沙箱和已绑定工作目录可直接写入;其他真实路径按审批或 Full Access 设置处理

运行环境

当前 Chat 代码执行提供 Node.js 和平台可用的 Shell:

  • 使用应用内置或解析出的 Node.js,避免依赖用户终端环境。
  • Windows 优先使用 PowerShell 7,并可回退到 Windows PowerShell;Bash 仅在安装 Git Bash 或可用 WSL 时提供。
  • 文件读取、目录列表、文件搜索和下载产物等核心文件工具不依赖 Bash 或 WSL。
  • 不预装 Python、pandas、numpy、matplotlib,也不鼓励 AI 安装大型依赖包。
  • 生成图表时优先输出 HTML、SVG 或使用浏览器可直接运行的 JavaScript。
  • 工具结果会被截断,较大的输出应写入沙箱文件,再作为下载或预览产物展示。

这条产品方向是为了控制安装包体积、减少运行环境维护成本,并让代码执行集中解决简单文件处理和数据计算。

Agent Mode

Agent Mode 控制代码执行、文件工具、MCP、知识库和 Skills 等 agent 工具是否可用。

模式行为
Auto(默认)首轮对话时通过快速分类模型判断用户意图。需要 Agent 能力时提示用户手动开启,不自动升级
On发送后锁定为 On,完整 agent 工具可用
Off不注入 agent 工具,保持纯文本对话体验;Web 搜索仍由独立开关控制

Auto 模式工作原理

Auto 模式不会根据文件类型自动升级。实际行为:

  1. 仅在首轮触发 — 会话的第一条用户消息到达时,用一个独立的快速分类模型(优先使用 thread naming model)判断用户意图。
  2. 分类模型评估是否需要代码执行、文件操作、技能加载、知识库查询等 Agent 能力。普通问答、写作、翻译、头脑风暴、角色扮演等场景不会被误判。
  3. 判定需要时 — 消息区生成一张提示卡片,附带简短理由(与用户消息同语言),用户点击后才切换为 On。
  4. 判定不需要时 — 静默跳过,按普通文本对话处理,不注入任何 Agent 工具。
  5. 切换为 On 后会锁定当前会话。新建会话可重新回到 Auto 状态。

Auto 初始工具

Auto 模式下,在用户接受建议前不会注入 Agent 工具。切换到 On 后,code_execution、文件写入/编辑、user_exec、Skills 等完整工具集才可用。

典型使用方式

处理表格或数据

  1. 将 Agent Mode 手动切换为 On(或接受 Auto 模式的建议),上传 CSV/XLSX 等文件。
  2. 询问“计算每月收入总和”或“找出峰值月份”。
  3. AI 使用 Node.js 或平台可用的 Shell 读取文件、计算结果。
  4. 大结果写入文件,小结果直接在消息中总结。

生成 HTML 图表

  1. 让 AI 生成一个可交互图表或报告页面。
  2. AI 在沙箱中写入 index.html 以及相对资源文件。
  3. 通过 create_download 或 HTML 预览在消息末尾展示产物。

生成可下载文件

  1. 告诉 AI 需要生成的产物,例如“把结果导出为 CSV”。
  2. AI 在沙箱内生成文件。
  3. AI 调用 create_download,消息末尾会出现单独的产物区域。

使用 Skills

  1. 在 Skill 管理中启用需要的 Skill。
  2. 切换到 On 模式(或接受 Auto 模式的建议),AI 可以在需要时调用 load_skill 读取 Skill 说明。
  3. Chatbox 产品帮助 Skill 默认开启;当用户询问 Chatbox 产品、订阅、额度等问题时,AI 可通过受控工具查询产品信息和用户状态。

审批与暂停

以下场景会暂停等待用户操作:

  • user_exec 命令未命中只读白名单、未通过 AI 安全评估,且没有开启 Full Access。
  • 写入或编辑绑定工作目录之外的真实文件系统,且没有开启 Full Access。
  • 多轮工具调用达到上限。

暂停状态保存在消息中。应用重启后,仍可以在原消息上继续或停止,不依赖内存中的 Promise。点击继续后,工具结果会追加回同一条 assistant 消息。

安全与限制

  • 每个会话使用独立工作目录;macOS/Linux 提供操作系统级隔离,Windows 当前原生执行且拥有当前用户权限。
  • 沙箱内文件可被 HTML 预览访问;预览使用本地服务解析相对资源。
  • 工具结果必须保持小体积,避免把大文件内容、base64 或长日志写入会话数据。
  • 沙箱和用户主动绑定的工作目录可直接写入;其他真实文件写入需要审批,Full Access 开启时跳过逐次审批。
  • 本地白名单自动放行安全只读命令;符合本地资格且被 AI 结构化评估为安全的命令也可自动通过。删除、安装、提权、复杂 shell 组合等高风险命令仍会进入人工审批。
  • 模型不支持 agent 工具时,Agent Mode 入口保持显示但被禁用,执行层强制按 Off 处理。
  • 移动端和 Web 端不启用 Agent Mode,避免污染纯文本对话上下文。

模型要求

代码执行需要模型支持 agent scope 的 Tool Use。DeepSeek R1、V3、V3.2 等 v4 以下或弱工具调用模型会禁用 Agent Mode;纯文本对话不受影响。