kaya 通过一组受限的独立工具让 AI 与你的系统交互。每个工具都经过输入保护 + 命令白名单 + 危险模式检测 + 隔离执行 + 输出脱敏五道关卡。
AI 可调用的工具#
AI 侧共 9 个工具:
- run_shell:在独立子进程里执行 shell 命令(用于查询类操作)
- list_dir:列出目录内容,只看元数据
- probe_env:读取当前系统信息(用户名、OS 版本、磁盘等)
- terminal_read:读取终端当前输出(便于让 AI 解释一段报错)
- terminal_write:向 tab 里运行的编程 agent 写入输入——只在 coding 模式开关打开、且该 tab 经授权卡明确允许时才可用;默认不注册,详见 编程 Agent 总控
- task_list:只读查看你的任务清单(详见下文「任务清单」)
- agent_config:修改编程 agent 的配置文件——每一次修改都必须经你在授权卡片上明确允许才会落盘,授权只对当前会话有效
- tavily_search / tavily_extract(可选):联网搜索与网页内容抓取,需在设置里填入 Tavily API Key 后启用,详见 联网搜索
读取 ~/.kaya/ 可信目录下的文件正文通过 run_shell 里的受控读取命令(如 cat / head)完成,详见 让 AI 读取文件。
默认不开放的工具#
下面这些操作在任何场景都不会被允许:
- 修改或删除你电脑上的文件
- 安装系统级软件(如
brew install) - 修改系统配置或环境变量
- 访问
~/.kaya/之外的任意文件正文 - 在你的 PTY 里跑交互式程序(
vim、REPL 等)
命令白名单与拒绝#
AI 发起的命令会先经过能力策略检查:命令在白名单之外一律不放行,返回结构化错误给 AI,AI 收到错误后可以换种方式重试。
危险模式会被单独识别:
- DANGEROUS:
rm -rf、磁盘格式化、mkfs、dd if=等 - REPL:
vim/less/python/node/irb等会进入交互的命令 - OPERATION:
sudo、brew install、kill等敏感操作
具体某个命令被拒绝时,UI 上会显示原因;你也可以换个问法让 AI 改用等价工具。
隔离执行#
AI 触发的命令由 kaya 独立 spawn 的子进程执行,不经过你的 PTY,不影响你正在进行的终端工作。
- 默认 8 秒超时
- 输出上限 100KB(超过会被截断并标记)
任务清单(Task)#
kaya 内置一个轻量任务清单,帮你和 AI 一起跟踪要做的事:
- 顶栏的待办开关打开 任务面板,可以查看、勾选、管理当前任务
- 在对话里用「添加任务 …」「删除任务 …」「清空任务清单」这类固定指令可直接管理清单:这类指令由客户端本地识别并执行,不经 LLM;自由表述(如「帮我把买牛奶标记为完成」)不会被识别为指令,会作为普通消息发给 AI。「提炼任务」指令则让 AI 草拟任务、经你确认后入清单
- AI 侧只有一个只读工具(
task_list,查看任务清单),用来对齐上下文——它不能替你改动清单