cursor 之类都增加了一个 chat 的聊天交互框,其实增加了很多东西,交互起来并不舒服,程序员天生会与 terminal 交互,那为什么不复用 terminal terminal 的输入输出都可以被 AI 接管做中间过程处理,是一种更方便更简介的方式。
- 人工输入 -> AI 预处理 -> Agent 执行
如,我在终端中输入:
$ 帮我创建个数据库
我即将帮你创建 pgsql 数据库,规格为 2CPU 4G内存 10G磁盘 三副本,是否确认?
$ 开发测试环境,单副本就行,其他没问题
创建中...
已完成
数据库信息为:
postgresql://postgres:[email protected]:5432
(该信息已经被录入上下文,编码时会自动取用这个值)
- 程序输出 -> AI 后处理 -> Agent 执行
$ devbox@devbox:~/project$ python3 hello.py
Traceback (most recent call last):
File "/home/devbox/project/hello.py", line 1, in <module>
from flask import Flask, request, jsonify, render_template
ModuleNotFoundError: No module named 'flask'
当出现这样一段报错时,cursor 的选择是 add to chat,本身 terminal 为什么不能是 chat,而且我大概率是需要 AI 给我去解决这个问题的。
环境中没有安装 Flask 模块, 这就为您生成安装命令
$ pip install Flask
然后用户敲 enter 安装
- 一些 read only 能发现的错误可以直接提示出来
举个例子,用户代码中的数据库地址和生成的数据库真实地址不匹配,在运行程序时可以提示出来。 再比如用户监听的端口号与 devbox 中配置的端口号不一致,也可以提示出来。
$ python hello.py
我检测到程序监听的端口号是 8080,而 devbox 暴露的端口是 3000,不一致,会导致外网域名无法访问。
- 普通的交互
和聊天一样,直接终端里面发就完了。
本来写代码信息就有点爆炸,再加聊天窗口,杂上加杂,其实有终端完全够用,如无必要,勿增实体。
提示词很多情况下是很长的,一个需求,特别是在工程刚开始时,最合理的方式是放在 markdown 文件里面。 而且还会一直更新,不能每次更新都让用户复制再重发一次,这样很累。
交互过程,我先把提示词写到了一个文件中如 proposal.md, 结合终端就可以配合 AI 生成代码了:
$ 这是我的需求文件 proposal.md, 请生成代码
生成中...
生成完成...
尝试运行...
尝试测试...
完成
地址为:https://ulqvxcpljwja.usw.sailos.io
$ 生成的不对,请回滚
回滚完成
这里有三点:
- 不需要用户交互确认,直接给用户生成工程目录和具体的代码,聊天框复制来确认去实在很烦。
- 为什么不需要确认?因为有回滚,而且在用这个功能时大部分情况是新项目或者新模块。
- 要充分利用 git, 如果 clone 的项目那就有 git, 没有 git 帮用户初始化 git,与 git 强依赖有一万个好处,可以满天飞的改,各种回滚。
补全是基本工程肯定是需要的,要修改某块代码时,最简单的方式是,把这段代码框起来,然后在 terminal 中直接问。
在 IDE 中选中某块代码 -> 打开终端
$ 这段代码中缺少了 passwd 字段,多了 email 字段,请与数据库表设计对其
修改中...
测试中...
修改完成
$ 回滚一下
根据截图生成前端代码是个普遍需求,”直接粘贴到终端中“ 确定是否好实现。 也可以一样图片粘贴到 markdown 中, 提示词也可以写到这个 mardown 中,这样 AI 会更理解,上下文也被保存下来了。 更新时同理,可以打开这个 markdown, 终端中直接交互,比如 markdown 中有十张 UI 的截图,你想改第六张,你可以框选那部分,再和 AI 说“字体不对”
比如上述数据库的例子,一旦用户代码中写了数据库访问的代码,但是上下文中还没有,此时终端可以主动输出一些内容,告诉用户可以帮助其创建数据库。
- 智能 terminal
- 工程初始化
- 截图生成精确前端代码
--- 华丽分割线 ---
我们可以做一个东西,你感觉不到在 vscode 上增加了什么东西,但是却变得非常的智能。
- 像 bolt windsurf 这类工具已经开始支持部署了,一旦用户都用他们,而且 AI 足够强大,就可以完全绕开我们,在上游进行截流,我们就 game over 了
- AI 完成绝大部分工作是绝对的趋势,与人的交互方式也在不断改变,我们必须适应这种改变的节奏,不能掉队。
- 这是一个最好的时机,Why now,有大趋势,接受度高,而且还不完美。
后端能力强,生态强,内功强,基础牢。 Sealos 后端很强,还有 FastGPT 的知识库,通过 RAG 技术去维护编程的上下文再合适不过了。