跳到正文
MeghaOS

选择语言

MeghaOS 能在你自己的机器上处理 100 多种语言。本站在此处列出的每一种语言中都已全部翻译完成;法律页面与博客文章保持英文。

FIG 2.6 · Code Studio

一个握着整个工作集的编程智能体。

Code Studio 是一个 VS Code 风格的环境,配有专门的编程智能体。它跨文件阅读,把改动计划摊开来给你看,并且只在你打开的那个文件夹里工作。每一轮之前都会打上检查点,所以任何一步都能撤销。

FIG 2.7 · 一次重构,组合出来

提出改动,读 diff,然后决定。

下面的演示跑的是 Code Studio 场景:文件树、准备好的 diff,以及智能体自己的计划和额度。

把认证从服务器会话里剥出来

试试

src/auth/middleware.ts

已就绪。在动到工作区之前先看一遍。

typescript
export async function authenticate(req: Request) {
-  const session = await store.get(req.cookies.sid);
-  if (!session) throw new Unauthorized();
+  const token = bearer(req.headers.authorization);
+  const claims = await verify(token, publicKey);
+  if (claims.exp < Date.now() / 1000) throw new Unauthorized();

-  return session.user;
+  return claims.sub;
}
src
auth
session.ts
tokens.ts
middleware.ts
routes
login.ts
tests
auth.test.ts

它给自己写的计划

整份计划50%
FIG 2.7b · 这个界面

而这就是 Code Studio 交付时的样子。

一个完整的编辑器,带文件树和标签栏,智能体在旁边的侧栏里,在动三个文件之前就先问你,而不是动完再说。

Code Studio

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 的智能体对着整个工作集干活:需要什么就打开什么,记录自己改了什么,并让这次改动在它碰过的每个文件里保持一致。

  • 在一个计划里读写整个工作集
  • 记录哪些文件被读取、被修改、被新增,并展示给你
  • 在宣布做完之前,先在工作空间里跑测试
  • 每一步在执行时都可见,走偏了可以随时叫停
典型计划
  1. 01
    确定工作集
    这次改动实际会碰到哪些文件?
  2. 02
    为工作空间打检查点
    在任何东西被写入之前,先留一个还原点
  3. 03
    执行改动
    每一处编辑都以可审阅的 diff 呈现
  4. 04
    验证
    在报告完成之前,先在工作空间里跑测试
  5. 05
    留还是撤,你说了算
    一次点击把文件和对话一起回退
FIG 2.9 · 安全

一个会写代码的智能体,本身就是个安全问题。

把它当作安全问题来对待,就是一个演示和一个你敢装在工作机上的东西之间的区别。

一切都发生在工作空间内部

文件的读、写、删都限定在你打开的那个文件夹里,试图往外爬的路径会被拒绝。命令以工作空间为当前目录执行。

破坏性命令直接被拒绝

提权、任何关机或重新格式化磁盘的操作,以及指向绝对路径或家目录相对路径的删除,都不会执行。没有哪种说法能把它们放进来。

有风险的命令会停下来问你

递归删除、改写历史、任何往远端发布的操作,以及把网络内容管道进 shell,都会被扣下,变成 IDE 里的一张审批卡。命令原文在执行前你就看得到。

每条消息都是一个还原点

每一轮之前,工作空间都会被存进一份影子历史,与你自己的版本控制互不干扰。撤销会把文件和对话一起回退,所以一次糟糕的重构只是一次点击,而不是一场考古。

把它对准一个真实的代码库。

免费下载。代码永远不会离开你的机器——这也是敢把这么大的权限交给一个智能体的唯一理由。