Plandex 提示词(Prompt)实战指南:tell、chat、REPL 与任务迭代控制
【免费下载链接】plandexOpen source AI coding agent. Designed for large projects and real world tasks.项目地址: https://gitcode.com/GitHub_Trending/pl/plandex
本篇指南围绕 Plandex(开源 AI 编码代理)的提示词体系展开,系统讲解如何在 REPL、CLI 中发送任务型(plandex tell)与对话型(plandex chat)提示词,如何通过--stop/-s、--bg、--no-build、--apply等标志精确控制任务自动化的程度,以及如何用continue、rewind与 prompt 文件组合进行高效迭代。读完本文,你将掌握 Plandex 提示词的完整发送方式、Plan Stream TUI 的操作要点,以及让任务在"全自动执行"与"逐步人工确认"之间自由切换的配置手段。
发送提示词的四种方式
无论使用 REPL 还是 CLI,Plandex 都支持把提示词"喂"给模型。从源码看,CLI 侧统一由getTellPrompt函数(app/cli/cmd/tell.go)负责收集提示词:它依次检查命令行参数、--file指定的文件、stdin 管道输入,若三者皆空则打开系统编辑器让用户书写,这四种来源正是 Plandex 提示词的全部入口。
方式一:REPL 直接输入
在 REPL 中发送提示词最简单——直接输入内容并回车即可。
add a new line chart showing the number of foobars over time to components/charts.tsxREPL 还支持\multi(别名\m)切换到多行模式,此时回车产生换行而不是发送;在多行模式下使用\send(别名\s)发送当前输入。需要将某个文件内容作为提示词时,可用\run(别名\r)加相对路径:
\run src/components/foobars-form.tsxREPL 对这两条命令的实现位于 app/cli/cmd/repl.go,帮助菜单中的说明为"\multi:开启/关闭多行模式""\run:按当前模式把文件跑过 tell/chat"。
方式二:CLI 命令 + 参数
CLI 下使用plandex tell派发任务,或plandex chat进行头脑风暴与提问。二者都支持--file/-f从文件读取提示词:
plandex tell -f prompt.txt plandex chat -f prompt.txt也可以直接以字符串形式内联传入(用回车分隔多行):
plandex tell "add a new line chart showing the number of foobars over time to components/charts.tsx" plandex chat "where's the database connection logic in this project?"--file/-f标志在 app/cli/cmd/plan_exec_helpers.go 中注册:StringVarP(&tellPromptFile, "file", "f", "", "File containing prompt"),与--bg、--stop、--no-build等标志一同通过initExecFlags挂载到各命令上。
方式三:编辑器书写
不带任何参数直接运行plandex tell或plandex chat,Plandex 会打开编辑器供你书写提示词:
plandex tell # tell with no arguments opens vim so you can write your prompt there plandex chat # chat with no arguments does the same编辑器的选择逻辑见 app/cli/cmd/plan_exec_helpers.go:默认使用 vim,但会优先读取EDITOR/VISUAL环境变量;也可以显式传--editor指定。对于 vim 和 nano,Plandex 会在临时文件中预置保存/退出的操作提示(见 app/cli/cmd/tell.go),用户退出编辑器后,临时文件内容会被读取并作为提示词发送。
方式四:管道输入
把其他命令的输出通过管道传给 Plandex,可以让上下文直接成为提示词:
git diff | plandex tell git diff | plandex chat若同时给出内联字符串,它会被作为对管道内容的"标签"或补充说明拼接到提示词前面,源码中以"%s\n\n---\n\n%s"的格式合并(app/cli/cmd/tell.go):
git diff | plandex tell "'git diff' output"理解任务提示词与对话提示词
任务提示词(tell)
当你给 Plandex 一个任务时,它会先把任务拆解为多个步骤,然后逐步用代码实现每个步骤,并自动持续发送模型请求,直到任务被判定为完成。这一"自动续跑"行为由auto-continue配置控制(默认true)。
对话提示词(chat)
若只想提问、讨论而不产生任何文件改动,用plandex chat而非plandex tell:
plandex chat "explain every function in lib/math.ts"chat只返回单次响应,不创建、不更新任何文件,也不会自动继续。从源码看,app/cli/cmd/chat.go 的initExecFlags显式省略了--no-build、--stop、--bg、--apply、--exec、--smart-context、--skip-menu等与实现相关的标志,并在调用TellPlan时传入IsChatOnly: true,从 CLI 层面保证了 chat 不会触碰项目文件。
chat与tell的提示词传入方式完全一致:内联字符串、--file/-f文件、无参数进入编辑器、管道输入均可。
REPL 中切换模式
在 REPL 里,可通过\chat(\ch)或\tell(\t)切换底层走 chat 还是 tell:
\chat # 切换到对话模式,不产生修改 \tell # 切换到任务模式,实施实现Plan Stream TUI:任务执行的实时窗口
无论通过 REPL、plandex tell还是plandex chat发送提示词,模型响应都会流式显示在Plan Stream TUI中。TUI 底部会列出若干热键:
| 热键 | 作用 |
|---|---|
s | 停止当前计划 |
b | 把计划转入后台执行 |
| 方向键 / 翻页键 | 滚动/翻页流式文本 |
g/G等跳转键 | 跳到流开始或末尾 |
Plandex 的滚动热键与 vim 一致,vim 用户可以无缝上手。需要注意的是:在 Stream TUI 内滚动终端窗口本身不会生效,请使用上述滚动热键。
停止与继续:控制自动续跑
plandex tell默认会一直自动执行到任务完成,若想先看单次响应,传--stop/-s:
plandex tell -s "write tests for the charting helpers in lib/chart-helpers.ts"之后可以用continue命令继续。continue同样接受--stop/-s:不带该标志时它会像tell一样自动执行到完成;带上则只继续一个响应:
plandex continue -s--stop/-s标志的注册代码为BoolVarP(&tellStop, "stop", "s", false, "Stop after a single reply")(app/cli/cmd/plan_exec_helpers.go)。此外 Stream TUI 中的s热键可以立即停止计划。
除命令行标志外,还有两种方式从配置层面阻止自动续跑:
- 把当前计划的
auto-continue设为false(也可写入默认配置影响所有新计划):
plandex set-config auto-continue false plandex set-config default auto-continue false- 把
auto-mode(autonomy 级别)设为none:
plandex set-auto none plandex set-default-auto none这些配置如何落到命令执行上,可以从 app/cli/cmd/plan_exec_helpers.go 的mustSetPlanExecFlags看出:当--stop标志未被显式指定时,tellStop会取!config.AutoContinue作为回退值——即配置项就是命令行标志的默认值,显式传标志则覆盖配置。
后台任务:让计划在后台执行
默认plandex tell会打开 Plan Stream TUI 并实时流式显示响应,但传入--bg即可把任务转入后台:
plandex tell "implement a caching layer for the API" --bg后台任务的查询与交互详见 后台任务(background-tasks) 文档。
保持上下文最新
每次发送提示词(无论 tell 还是 chat),Plandex 都会检查已加载到 上下文(context) 中的文件内容、目录布局或 URL 是否发生变化;若有变化,需要先更新上下文再继续。
默认情况下 Plandex 会自动更新过期上下文。若希望每次更新都经你确认,可将auto-update-context设为false:
plandex set-config auto-update-context false plandex set-config default auto-update-context false或将auto-mode设为basic或none:
plandex set-auto basic plandex set-auto none构建文件:改动先入沙箱,审核后再落地
当 Plandex 实现任务时,它创建或更新的文件会出现在 Stream TUI 的Building Plan区域。Plandex 会把计划提议的全部改动**构建(build)**为每个受影响文件的一组待定变更集(pending changesets)。
默认情况下这些改动不会直接写入你的项目文件,而是作为待定变更停留在 Plandex 的版本控制沙箱中。这让你可以先审查改动,或继续迭代累积更多改动:
plandex diff # 终端里查看 git diff 格式的改动 plandex diff --ui # 在本地浏览器 UI 中查看确认满意后用plandex apply将改动应用到项目文件:
plandex apply- 审查改动:参见 审查改动(reviewing-changes)
- 版本控制:参见 版本控制(version-control)
全自动模式会直接应用改动
上述"先沙箱后应用"有一个重要例外:若把auto-mode设为full,Plandex会自动把改动直接应用到项目文件(详见 autonomy 矩阵 中auto-apply一列)。
跳过构建与plandex build
给plandex tell或plandex continue传--no-build可跳过文件构建——适合在动手前先确认计划方向是否正确:
plandex tell "implement sign up and sign in forms in src/components" --no-build之后可用plandex build命令补建计划中已实现但未构建的改动:
plandex buildbuild命令(app/cli/cmd/build.go,别名b,说明为 "Build pending changes")会显示一个只含Building Plan区域的精简版 Stream TUI。与完整计划流一样,构建流可用s热键停止、b热键转入后台,也可用--bg完全后台运行:
plandex build --bg还需注意一个联动行为:若先用--no-build发送提示词:
plandex tell "implement a forgot password email in src/emails" --no-build之后再用plandex tell或plandex continue发送不带--no-build的提示词时,之前积压的未构建改动会在新计划流开始时立即开始构建:
plandex tell "now implement the UI portion of the forgot password flow" # 上面这条会开始构建上一条 --no-build 提示词提出的改动自动应用改动
若希望计划完成后由 Plandex自动应用改动,可给plandex tell、plandex continue或plandex build传--apply/-a:
plandex tell "add a new route for updating notification settings to src/routes.ts" --apply--apply/-a会像--yes/-y一样自动更新上下文。在tell.go中可以看到,tellAutoApply为真时,TellPlan返回后会紧接着调用MustApplyPlan并附带AutoConfirm: true(app/cli/cmd/tell.go),这正是"一条命令完成实现+应用"的底层实现。
配合--commit/-c可在应用后用自动生成的提交信息提交改动到 git,且只提交该计划产生的改动,仓库中其他已暂存/未暂存的改动保持原样:
plandex tell "add a new route for updating notification settings to src/routes.ts" --apply --commit--commit/-c与--skip-commit在 app/cli/cmd/plan_exec_helpers.go 中注册,其描述为"--commit:应用改动时提交到 git"。
标志冲突校验
CLI 会对一些互斥标志做前置校验(validatePlanExecFlags,app/cli/cmd/plan_exec_helpers.go),例如:
--debug不能与--no-exec同时使用;--debug/--auto-exec只能与--apply搭配使用;--apply不能与--no-build/-n或--bg同时使用。
在计划上迭代:续聊 vs 回退重试
发送一个完整任务后:
plandex tell "implement a fully working and production-ready tic tac toe game, including a computer-controlled AI, in html, css, and javascript"想继续迭代(增加功能或纠正偏离),有两条路径。
路径一:继续对话(continue the convo)
最直接的方式是再发一条plandex tell:
plandex tell "I plan to seek VC funding for this game, so please implement a dark mode toggle and give all buttons subtle gradient fills"当你对当前计划满意、只是想在此基础上扩展功能时,这是通常的好选择。可随时用plandex convo查看完整对话历史:
plandex convo路径二:回退重试(rewind and iterate)
另一种方式是借助 Plandex 的 版本控制 能力,回退到发送提示词之前的那个步骤,修改提示词后再重新发送。先用plandex log查看计划历史、确定要回退到的步骤,再用plandex rewind加对应哈希回退:
plandex log # 查看历史 plandex rewind accfe9 # 回退到发送提示词之前这种方式与prompt 文件搭配效果极佳:把提示词以文件形式存放在代码库中,再用--file/-f传给plandex tell:
plandex tell -f prompts/tic-tac-toe.txt这样你可以不断用plandex rewind+plandex tell打磨同一份提示词文件,直到得到满意结果。
两条路径如何取舍
没有绝对正确的答案,选择时可以参考以下三点:
- 坏结果容易滋生更多坏结果。对偏离方向的任务,回退并打磨提示词往往比继续追加
tell更有效——即便你明确要求模型"纠正"问题,错误思路残留在上下文中也会诱导它犯更多错;用rewind给模型一个干净起点通常效果更好。 - 提示词文件 + rewind 的额外收益:最终产出一份有效提示词时,它和它产出的改动一起留在代码库中,方便其他开发者(或未来的你)在日后重访该任务时参考。
- 代价考量:rewind 方式可能需要反复重跑计划前期的步骤,花费通常远高于用追加
tell迭代。
相关配置速查
上述自动化行为大部分都可归结为几个核心配置项(默认值见 configuration 文档):
| 配置项 | 说明 | 默认值 |
|---|---|---|
auto-mode | 整体自动化级别(none/basic/plus/semi/full) | semi |
auto-continue | 自动持续执行直到任务完成 | true |
auto-build | 把改动构建为待定变更 | true |
auto-apply | 直接把改动应用到项目文件 | false |
auto-update-context | 文件变化时自动更新上下文 | true |
auto-load-context | 用项目地图自动加载上下文 | true |
smart-context | 每一步只加载必要文件 | true |
can-exec | 允许命令执行(安全设置) | true |
auto-exec | 自动执行命令 | true |
auto-debug | 自动调试失败命令 | false |
auto-commit | 应用改动后自动提交 git | true |
修改方式(对当前计划或默认配置):
plandex set-config auto-continue false plandex set-config default auto-continue false plandex set-auto none plandex set-default-auto none命令行标志与配置的关系已在前面源码中说明:mustSetPlanExecFlags会在标志未显式传入时把配置值作为默认值,显式传标志则优先使用标志——所以标志是一次性覆盖,配置是持久化默认,二者配合即可实现从全自动到完全手动的任意控制粒度。
小结
Plandex 的提示词体系围绕"任务实现(tell)"与"对话问答(chat)"双通道展开,配合 REPL 的多行/文件输入、CLI 的管道与编辑器输入,可以灵活地把任何形式的指令交给模型。真正决定 Plandex 体验的是对自动化粒度的掌控:--stop/-s控制单步、--no-build延迟构建、--bg后台运行、--apply/--commit一键落地并提交、rewind + prompt 文件实现可复现的高质量迭代。理解这些标志与auto-mode配置在源码层面的联动(plan_exec_helpers.go 中的标志注册与配置回退逻辑),你就能在自己的项目里把 Plandex 调教成既高效又安全的编码搭档。
【免费下载链接】plandexOpen source AI coding agent. Designed for large projects and real world tasks.项目地址: https://gitcode.com/GitHub_Trending/pl/plandex
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考