Vela — 群聊里的 AI 同事

VELA
中文
Vela,一个原创的青绿色头发动漫角色,神情平静,带点俏皮。

开源的 AI 同事

群聊里的 AI 同事。

在 Lark 群里 @Vela,它像同事一样干活:小问题当场回答,大任务开一个话题,做完之前一直同步进度。它跑在你自己的机器上。

npm install -g @glows777/vela

它在你的群里干活。

下面是画出来的场景,内容就是 Lark 渠道现在的工作方式。

  1. 小问题,群里直接答。

    在群里问,它就在群里回答。

  2. 大任务,开个话题单独做。

    每个任务单开一个话题,进度写在同一张卡片里,边做边更新,随时可以插话或叫停。

  3. 它记得,也会按时回来。

    每个群都有自己的笔记,它也能按计划定时唤醒自己。

不是示意图,是一次真实录制。

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 的双手沿着一条线索划过工作台。

三种用法。

  1. 在终端里

    vela

    给它一个任务和一个目录,它会读、跑、改,直到做完。

    cd your-project
    vela
    git diff | vela -p "Review this change"
  2. 在你的应用里

    createVela()

    同一个 Agent,作为 TypeScript SDK。一个进程里跑多个会话,Node 和 Bun 都行。

    const vela = createVela({ model, providers, credentials, cwd })
    const session = vela.session('main')
    await session.prompt('Summarize the README')
  3. 在群聊里

    vela serve

    只开通你信任的群。Lark 内置,其他平台通过统一的渠道接口接入。

    "lark": {
      "appId": "cli_xxx",
      "chats": ["oc_trusted_group"]
    }
看文档 ↗

它由什么组成。

代码库里现在已有的部分,以及还在画的那一块。

已在代码库中

  1. Agent 循环

    调用模型、执行它要的工具,不限轮数,直到做完。

    重试 · 循环检测 · 上下文溢出恢复

  2. 扩展与 skills

    用普通 TypeScript 加工具、斜杠命令、模型和渠道,也能接 MCP。

    工具 · 命令 · 模型 · Skills · MCP

  3. 群聊渠道

    一个群一个会话,一个任务一个话题,进度卡片、群笔记和定时唤醒。

    话题 · 进度卡片 · 记忆 · 定时任务

  4. SDK

    同一个 Agent,嵌进你自己的 TypeScript 应用。

    多会话 · 事件订阅 · Node 与 Bun

还在画

Vela 懒洋洋地打着哈欠休息。

为了弄懂 Agent 而做。

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

MIT 协议开源。安装:
npm install -g @glows777/vela

宣传片