news 2026/9/14 10:12:08

Plandex 提示词(Prompt)实战指南:tell、chat、REPL 与任务迭代控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Plandex 提示词(Prompt)实战指南:tell、chat、REPL 与任务迭代控制

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等标志精确控制任务自动化的程度,以及如何用continuerewind与 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.tsx

REPL 还支持\multi(别名\m)切换到多行模式,此时回车产生换行而不是发送;在多行模式下使用\send(别名\s)发送当前输入。需要将某个文件内容作为提示词时,可用\run(别名\r)加相对路径:

\run src/components/foobars-form.tsx

REPL 对这两条命令的实现位于 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 tellplandex 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 不会触碰项目文件。

chattell的提示词传入方式完全一致:内联字符串、--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热键可以立即停止计划。

除命令行标志外,还有两种方式从配置层面阻止自动续跑:

  1. 把当前计划的auto-continue设为false(也可写入默认配置影响所有新计划):
plandex set-config auto-continue false plandex set-config default auto-continue false
  1. 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设为basicnone

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 tellplandex continue--no-build可跳过文件构建——适合在动手前先确认计划方向是否正确:

plandex tell "implement sign up and sign in forms in src/components" --no-build

之后可用plandex build命令补建计划中已实现但未构建的改动:

plandex build

build命令(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 tellplandex continue发送不带--no-build的提示词时,之前积压的未构建改动会在新计划流开始时立即开始构建:

plandex tell "now implement the UI portion of the forgot password flow" # 上面这条会开始构建上一条 --no-build 提示词提出的改动

自动应用改动

若希望计划完成后由 Plandex自动应用改动,可给plandex tellplandex continueplandex 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/fullsemi
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应用改动后自动提交 gittrue

修改方式(对当前计划或默认配置):

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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 10:09:45

超帧是什么?从GSM超帧到NB-IoT H-SFN的无线通信时间结构详解

最近在技术交流群里看到好几个人在问“hyperframes”到底是什么意思,有人猜是AI视频生成里的帧插值,有人猜是前端动画库的新特性。也难怪,这几年新概念层出不穷,一个词在不同领域往往有完全不同的指代。但如果你是在通信协议栈里摸…

作者头像 李华
网站建设 2026/9/14 10:06:57

ABAP环境Fiori Launchpad Pages与Spaces落地实践与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 10:05:51

Windows Terminal主题自动切换:一套配置搞定深浅色联动

Windows Terminal主题自动切换:一套配置搞定深浅色联动 【免费下载链接】terminal The new Windows Terminal and the original Windows console host, all in the same place! 项目地址: https://gitcode.com/GitHub_Trending/term/terminal 晚上十点盯着终…

作者头像 李华