FIG 2.6 · Code Studio
一个握着整个工作集的编程智能体。
Code Studio 是一个 VS Code 风格的环境,配有专门的编程智能体。它跨文件阅读,把改动计划摊开来给你看,并且只在你打开的那个文件夹里工作。每一轮之前都会打上检查点,所以任何一步都能撤销。
FIG 2.7 · 一次重构,组合出来
提出改动,读 diff,然后决定。
下面的演示跑的是 Code Studio 场景:文件树、准备好的 diff,以及智能体自己的计划和额度。
把认证从服务器会话里剥出来
试试
src/auth/middleware.ts
已就绪。在动到工作区之前先看一遍。
src
auth
session.ts
tokens.ts
middleware.ts
routes
login.ts
tests
auth.test.ts
它给自己写的计划
整份计划50%
FIG 2.7b · 这个界面
而这就是 Code Studio 交付时的样子。
一个完整的编辑器,带文件树和标签栏,智能体在旁边的侧栏里,在动三个文件之前就先问你,而不是动完再说。
Code Studioauth.ts
Explorer
- src
- components
- lib
- auth.ts
- session.ts
- tokens.ts
- README.md
auth.tssession.ts
1
import { sign, verify } from 'jsonwebtoken'
2
3
export async function issueSession(userId: string) {
4
const token = sign({ sub: userId }, SECRET, {
5
expiresIn: '15m',
6
});
7
8
// Refresh token rotates on every use.
9
const refresh = await rotate(userId);
10
return { token, refresh };
11
}
界面,在网页里重建 · v0.1.10
FIG 2.8 · 跨文件的工作
跨文件的重构,而不是跨行的片段。
大多数编程助手只对着你眼前那个缓冲区干活。Code Studio 的智能体对着整个工作集干活:需要什么就打开什么,记录自己改了什么,并让这次改动在它碰过的每个文件里保持一致。
- 在一个计划里读写整个工作集
- 记录哪些文件被读取、被修改、被新增,并展示给你
- 在宣布做完之前,先在工作空间里跑测试
- 每一步在执行时都可见,走偏了可以随时叫停
典型计划
- 01确定工作集这次改动实际会碰到哪些文件?
- 02为工作空间打检查点在任何东西被写入之前,先留一个还原点
- 03执行改动每一处编辑都以可审阅的 diff 呈现
- 04验证在报告完成之前,先在工作空间里跑测试
- 05留还是撤,你说了算一次点击把文件和对话一起回退
FIG 2.9 · 安全
一个会写代码的智能体,本身就是个安全问题。
把它当作安全问题来对待,就是一个演示和一个你敢装在工作机上的东西之间的区别。
一切都发生在工作空间内部
文件的读、写、删都限定在你打开的那个文件夹里,试图往外爬的路径会被拒绝。命令以工作空间为当前目录执行。
破坏性命令直接被拒绝
提权、任何关机或重新格式化磁盘的操作,以及指向绝对路径或家目录相对路径的删除,都不会执行。没有哪种说法能把它们放进来。
有风险的命令会停下来问你
递归删除、改写历史、任何往远端发布的操作,以及把网络内容管道进 shell,都会被扣下,变成 IDE 里的一张审批卡。命令原文在执行前你就看得到。
每条消息都是一个还原点
每一轮之前,工作空间都会被存进一份影子历史,与你自己的版本控制互不干扰。撤销会把文件和对话一起回退,所以一次糟糕的重构只是一次点击,而不是一场考古。