录制演示
回放First read demo/sample.ts with read_file. Read no other file; change nothing.read_file · demo/sample.ts
Exports DemoTask, countCompleted and demoTasks. Of two tasks, one is completed. countCompleted(demoTasks) returns 1.
下面是画出来的场景,内容就是 Lark 渠道现在的工作方式。
在群里问,它就在群里回答。
每个任务单开一个话题,进度写在同一张卡片里,边做边更新,随时可以插话或叫停。
每个群都有自己的笔记,它也能按计划定时唤醒自己。
Vela 真实跑的一次,录下来在这里回放:读一个文件,给出回答。在你自己的项目里,它还会改代码、跑命令、抓网页,直到任务做完。
这是 Vela agent loop 的一次真实运行,录制一次后在这里回放,本页不会调用模型。它只读取了一个预先准备的文件,没有做任何修改。原文是中文,这里显示的是译文,打字速度是为演示设定的。
First read demo/sample.ts with read_file. Read no other file; change nothing.read_file · demo/sample.ts
Exports DemoTask, countCompleted and demoTasks. Of two tasks, one is completed. countCompleted(demoTasks) returns 1.
在终端里
vela
给它一个任务和一个目录,它会读、跑、改,直到做完。
cd your-project
vela
git diff | vela -p "Review this change"在你的应用里
createVela()
同一个 Agent,作为 TypeScript SDK。一个进程里跑多个会话,Node 和 Bun 都行。
const vela = createVela({ model, providers, credentials, cwd })
const session = vela.session('main')
await session.prompt('Summarize the README')在群聊里
vela serve
只开通你信任的群。Lark 内置,其他平台通过统一的渠道接口接入。
"lark": {
"appId": "cli_xxx",
"chats": ["oc_trusted_group"]
}代码库里现在已有的部分,以及还在画的那一块。
已在代码库中
调用模型、执行它要的工具,不限轮数,直到做完。
用普通 TypeScript 加工具、斜杠命令、模型和渠道,也能接 MCP。
一个群一个会话,一个任务一个话题,进度卡片、群笔记和定时唤醒。
同一个 Agent,嵌进你自己的 TypeScript 应用。
还在画

我的第一个交易 Agent 写成了 AI slop,因为我不懂 Agent 是怎么跑的。于是我去研究了 Claude Code 和 pi,从头做了 Vela。CLI 和 SDK 沿用 pi 的设计,群聊部分是 Vela 自己的。
npm install -g @glows777/vela