我认为,很多想要开发新软件项目的人在开始时常常会被过程绊倒,因为从一个空的代码库开始似乎是如此令人生畏。 所以我想快速介绍一下我最新的工作流程,这大大降低了开始所需的努力和时间。 最重要的部分是要有一个好的想法,或者说出一个如果真的能正常工作并且能很好地完成其目标的话,会对很多人有用的东西。 我在这方面无法真正帮助你,但常见的建议是解决自己的痛点和非小众的痛点,这是一个非常好的开始方式。我发现自己不断地思考项目想法。 无论如何,下一步是非正式地写出这个想法,就像你可能会给一个亲密的朋友发一封快速的电子邮件一样。 你不需要把它做成一个正式的计划,只需以最快的方式传达基本想法及其功能,并指定你知道想要使用的任何技术栈或库的部分。 附带的截图展示了我几天前随机想到的一个想法的例子。我花了大约10到15分钟写出来。它不需要很长,可以引用其他来源以保持简洁。 这个初步描述随后成为GPT-5 Pro的提示。这通常需要至少15到20分钟来运行(有趣的是,这比写提示所需的时间还要长)。你可以尝试其他模型,但它们会差得多。 然后我通常会将相同的提示给Grok4 Heavy或Opus4.1,并将这些想法反馈给GPT-5 Pro,鼓励Pro采纳它在其他提案中看到的任何好想法。如果那些计划中确实有聪明的东西,GPT-5 Pro会识别并纳入它。 然后我会要求Pro根据其第一次响应创建一个详细的、细化的markdown计划文档,并将其保存为新创建项目文件夹中的一个文件。 然后我通常会在此基础上迭代几次,在网络应用程序中开始一个新的Pro对话,提供整个markdown计划文件,并告诉它以各种方式增强计划,使其更可靠、稳健、高效、直观、用户友好,以及其他好的形容词。 我会鼓励Pro对最新的文档、博客、教程等进行详尽的网络研究,以寻找更好的库或做事的方法。 然后我会将其提议的修订粘贴到codex中,并要求codex将修订整合到现有的markdown计划文档中。 经过2到3轮这样的过程,事情会稳定下来,你会得到一个非常好的、详细的计划。这是关键,因为当事情仍处于计划阶段时,调整和改进它们要容易得多,因为你还没有任何代码。量两次,切一次,等等。 这是我从这个想法的初始提示中得到的计划文档的链接: 此时,我开始添加一个AGENTS dot md文件;我从一个现有的文件开始,并要求Pro(在最新计划文档写成的同一会话中)为这个新项目和技术栈进行定制,同时保留任何通用内容。 如果有一些至关重要的库,我有时也会创建一个专门的最佳实践指南(比如,如果你正在制作一个MCP服务器,我会生成一个专门针对fastmcp库的最佳实践指南,但我也会详细说明如何构建项目等)。 此时,我会在一个会话中要求codex开始构建项目结构,创建文件夹和空的占位符文件,制作.gitignore文件等。 在这里,我的过程与典型方法有了显著的分歧。我首先使用Steve Yegge的beads项目,并告诉codex将计划文档转化为一系列任务和子任务,使用beads。 然后我使用tmux创建多个codex会话,最多可以同时创建8个(我认为更多也会很好)…
这是我关于使用 tmux 关闭自动化循环的主题链接:
Jeffrey Emanuel
Jeffrey Emanuel11月8日 10:27
我刚刚想出了如何通过一些 tmux 的魔法进一步自动化我的代理工作流程。 现在我正在使用我的 mcp 代理邮件项目,让一群代理互相交流实施计划(同时也使用 beads 项目进行任务管理),我仍然需要通过在 codex 中排队一堆消息来“喂养”这些代理,以保持他们忙碌。 这涉及逐个浏览各种 tmux 窗格(每个 codex 实例一个),粘贴一些预设消息或按几次上箭头以重用过去的消息,例如: “选择下一个你现在可以有效使用的珠子,并立即开始编码;通过代理邮件与其他代理沟通你正在做的事情。” 这样做感觉有点傻且低效,尽管给每个代理足够的指示以保持他们忙碌超过一个小时并不会花太长时间。 但现在我意识到,我可以通过简单地将这段代码复制并粘贴到 tmux 会话外的控制台中,自动在每个相关的 tmux 窗格中排队一堆消息(这在 zsh 中经过测试并且有效): --- PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"}) for pane in $PANES; do tmux send-keys -t $pane -l '选择下一个你现在可以有效使用的珠子,并立即开始编码;通过代理邮件与其他代理沟通你正在做的事情。' sleep 0.1 tmux send-keys -t $pane Enter for i in {1..4}; do tmux send-keys -t $pane -l '继续努力,做有用的工作!并沟通!' sleep 0.1 tmux send-keys -t $pane Enter done tmux send-keys -t $pane -l '很好,现在我希望你仔细阅读你刚刚写的所有新代码和你刚刚修改的其他现有代码,带着“新鲜的眼光”仔细寻找任何明显的错误、问题、困惑等。' sleep 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l '确保查看你的代理邮件,并在需要时及时回复任何消息;然后仔细按照计划进行,系统地完成你所有未完成的任务,并继续在计划文档中、通过 beads 和通过代理邮件消息记录你的进展。不要陷入“沟通炼狱”,让事情停滞不前;主动开始需要完成的任务,但在这样做时通过消息告知你的同事,并在计划文档中记录下来。当你真的不确定该做什么时,选择下一个你可以有效工作上的珠子并开始。' sleep 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l '好的,你现在能否将注意力转向审查你同事编写的代码,并检查任何问题、错误、缺陷、效率低下、安全问题、可靠性问题等,并仔细诊断其根本原因,必要时进行修复或修改?不要仅限于最新的提交,放宽范围,深入挖掘!' sleep 0.1 tmux send-keys -t $pane Enter done --- 这个脚本: 获取窗格:查找所有 tmux 窗格,排除前两个和最后两个 向每个选定的窗格发送 8 条消息: “选择下一个珠子...” - 告诉代理开始处理下一个任务 “继续努力...” × 4 - 重复鼓励继续工作 “仔细阅读...” - 指示进行新代码审查 “查看代理邮件...” - 关于协调、避免沟通瘫痪、保持生产力的长消息 “审查同事编写的代码...” - 对错误/问题进行同行代码审查 每条消息都以字面意义发送(-l 标志),在 Enter 之前有 0.1 秒的延迟,以确保 Codex CLI 正确处理它们。
3.64K