MODULE 02 · STEP 06 · 可练习
文件与工作目录
第一个任务能顺利完成,有一个容易被忽略的前提:你先进入了 pi-practice 目录,然后才启动 Pi。对 Agent 来说,当前工作目录像一张摊在桌上的工作区域,它帮助 Pi 理解相对路径和项目上下文。
工作目录不是安全隔离
Pi 的工具仍然以当前用户权限运行,技术上可以访问当前目录以外的位置。专用练习目录能让范围更清楚,但不代表已经进入沙箱。
先看懂路径
在普通终端里运行:
pwdpwd 会告诉你当前所在的目录。例如:
/Users/你的用户名/Downloads/pi-practice路径就是文件在电脑上的位置。/ 用来分隔一层层文件夹,~ 则是你的用户主目录的简写。~/Downloads/pi-practice 和上面那条完整路径通常指向同一个位置。
Windows 用户继续使用 Git Bash;你的练习目录写作 ~/pi-practice,pwd 通常显示 /c/Users/你的用户名/pi-practice。不要把 Git Bash 中的 / 改成 Windows 资源管理器使用的反斜杠。
运行 ls 可以查看当前目录里有什么。运行 cd 目录名 可以进入另一个目录。这三条命令已经足够支撑新手的前几次练习。
先确认位置再启动
不要在主目录、整个下载目录或重要项目的上层目录直接练习。先建一个专用文件夹,运行 pwd 检查,再输入 pi。
@文件 解决什么问题
在 Pi 的输入区输入 @,可以搜索当前项目中的文件。选中后,输入区会保留这次消息的明确文件引用;这不等于 Pi 已经自动读完,更不代表你可以跳过后面的读写记录与结果核对。
这里的完整操作是:
- 确认 Pi 底部的编辑区可以输入。
- 输入
@,再继续输入项目会议。 - 在出现的文件列表中,用上下方向键选中
input/项目会议记录.md。 - 按
Return确认。输入区中保留了这个文件引用,才继续写后面的任务。

这张图停在提交前。输入区里仍是搜索文字,下面已经出现 input/项目会议记录.md 候选;先核对右侧相对路径,再按 Return 选中。候选出现只证明 Pi 找到了文件,不能证明它已经读取内容。
如果输入 @ 后没有出现文件列表,先用 /quit 退出 Pi。在普通终端运行 pwd 和 ls input,确认你在正确练习目录,且文件确实存在,再重新启动 Pi。
比如,你可以输入:
请阅读 @input/项目会议记录.md,
把行动项整理到 output/行动清单.md。
不要修改原文。这比“看一下那份会议记录”更可靠。它减少了文件同名、材料选错和路径理解不一致的机会。Pi 也支持在启动时把 @file 作为文件参数传入,但新手先在交互界面里使用 @ 即可。
实操:用明确文件生成第二份结果
开始前应已经完成第 5 课,input/项目会议记录.md 和 input-before.sha256 都存在。先在普通终端执行:
cd ~/Downloads/pi-practice
pwd
shasum -a 256 -c input-before.sha256
test -f input/项目会议记录.md && echo "PASS: 输入存在"Linux 和 Windows Git Bash 把第一条指纹检查替换为 sha256sum -c input-before.sha256;Windows 同时把 cd 路径换成 ~/pi-practice。
如果练习目录不是 pi-practice,替换成你记录的实际名称。指纹不是 OK、输入不存在,或 pwd 位置不对时都不要继续;回到第 5 课的干净材料。
启动 Pi,在编辑区用 @ 选择 input/项目会议记录.md,然后提交:
材料:@input/项目会议记录.md
处理:只提取三个截止日期,按从早到晚排序,并保留对应负责人
输出:output/截止日期索引.md
限制:不要修改 input,不要覆盖已有的 output/行动清单.md;原文没有的信息写“未知”
验收:输出必须恰好三项,并报告实际读取和写入的路径观察实际读写路径。如果出现另一个同名文件、准备写入 input,或输出路径不是 output/截止日期索引.md,立即中止并核对工作目录。若输出目录不存在,退出 Pi,在普通终端运行 mkdir -p output 后再重试;不要临时改成一个自己也找不到的位置。
用四句话写清任务
不知道怎么下指令时,就按这个顺序写:
- 材料在哪里。
- 要进行什么处理。
- 结果要放在哪里。
- 哪些事不允许做,结果怎样才算通过。
材料:@input/项目会议记录.md
处理:提取事项、负责人、日期和风险提醒
输出:output/行动清单.md
限制:不修改 input,输出必须包含原文的 3 个事项别忘了项目上下文文件
除了你用 @ 明确引用的材料,Pi 默认还会从当前目录向上查找 AGENTS.override.md、AGENTS.md 和 CLAUDE.md,也会读取用户级 ~/.pi/agent/AGENTS.md。它们用于提供项目规则,并不是你这条消息里手动附加的普通材料。
面对陌生仓库时,要把这些文件也列入检查范围。需要一次启动完全忽略上下文文件,可在普通终端使用:
pi --no-context-files自动发现位置中的上下文文件发生变化后,可以在 Pi 中用 /reload 重新加载。--no-context-files 只是关闭这类说明文件,不会限制内置工具的文件权限,也不是沙箱。
完成后的最小检查
退出 Pi 或打开新的终端窗口,先确认位置,再查文件。
cd ~/Downloads/pi-practice
pwd
ls input output
shasum -a 256 -c input-before.sha256
test -f output/截止日期索引.md && echo "PASS: 日期索引存在"
sed -n '1,80p' output/截止日期索引.mdLinux 和 Windows Git Bash 同样把 shasum -a 256 -c 替换为 sha256sum -c;Windows 的 cd 路径仍使用 ~/pi-practice。
如果你在第 1 课使用了 pi-practice-2 或其他名字,这里和后续课程的 pi-practice 都要替换成你实际记下的练习目录名。
你至少要能回答三个问题:Pi 读了哪个文件,写了哪个文件,原文是否仍然保留。日期索引还应恰好包含小林、2026-08-28;小周、2026-08-30;小陈、2026-09-01,顺序从早到晚。等这些边界稳定下来,再让任务变复杂。
本课验收
@引用在提交前指向正确的input/项目会议记录.md。- 实际读写记录没有出现意外目录,也没有覆盖上一课的行动清单。
- 输入指纹仍显示
OK,新输出存在且三项日期、负责人、顺序正确。 - 出现同名文件、错误路径或输入修改时,你知道先停止并回到普通终端核对,而不是继续猜。