文件与终端
给出 Workspace、目标和验收方法后,Anyy 可以读文件、搜索、修改内容和执行命令。实际 I/O 在 Anyy 的执行主机发生,客户端电脑上有某个命令,不表示常驻主机也安装了它。
先检查,再修改
例如先要求:
找到旧配置名的全部引用,列出文件和行号,先别修改。
确认范围后,再指定替换内容,查看 Diff,并运行对应验证。各工具的主要行为如下:
| 工具 | 关键行为 |
|---|---|
read | 读取文本范围或 JPEG/PNG/GIF/WebP/BMP 图片 |
ls | 按名称列目录,包括隐藏文件 |
find | 按 Glob 查路径,遵循 .gitignore |
grep | 搜内容并返回路径、行号,遵循 .gitignore |
write | 创建/覆盖文件,自动建立父目录 |
edit | 在同一文件替换唯一且互不重叠的精确区域 |
长文本和搜索输出有界,应按继续读取提示取后续内容,或缩小搜索,不能把摘要当作全量证据。默认直接选中的可移植工具为 read、bash、edit、write;grep、find、ls 可另行选择,或在符合访问范围时经 Codemode 调用。
修改会立即发生
write/edit 不增加语法验证或自动回滚;即使写入的是无效源码,也会按请求修改。同一目标的修改排队执行。I/O 已开始后发生错误或取消,应先查看实际文件,再决定是否重试。
相对路径以工具工作目录为基准,绝对路径、.. 和普通 Symlink 遵循文件系统语义。Workspace 是工作上下文,不是文件访问沙箱;可访问范围仍受操作系统权限约束。
Shell 和搜索依赖
本地 bash 使用已配置 Shell,否则寻找 bash,最后回退 /bin/sh。脚本需要的解释器、程序和凭据应在 Anyy 主机环境准备好。
grep 依赖 rg,find 依赖 fd/fdfind。Anyy 先找 Profile 的 bin/,再找 PATH;缺失时可从官方 release 获取。进程环境设置 ANYY_OFFLINE=1 禁止自动获取,已有依赖仍可用;Android 跳过自动获取。详见搜索辅助程序。
结果和进程日志在暴露前保护已知凭据。工具的程序返回值和给模型看的文本预算不同。例如 Codemode 调用 tools.bash 得到 output、truncated、exit_code、wall_time_seconds;超过 1 MiB 的程序输出保留首尾并给出 full_output_path。非零退出也可能返回这个对象,必须检查 exit_code。
长时间命令用受管进程
process 可列出、轮询、读日志、等待、写入/提交输入、关闭输入、终止已经跟踪的后台进程。启动服务或长测试时,要求 Anyy 记下进程会话标识,完成后检查并停止。
同一 Profile 所有对话默认合计最多四个受管后台进程;前台 Shell 命令不占这个名额。进程只属于启动它的对话,其他对话不能读日志、输入或终止。结束的进程不会再次被发送信号。常驻服务重启后,旧 PID 不足以恢复控制;无法控制时会明确报告,而不会凭旧 PID 终止其他进程。