Skip to content
jerritaPublic

About

原生保留各厂商特性的 Rust Coding Agent Harness:在统一会话模型下最大保留供应商原生能力,提供 TUI、Web 入口,支持 IM 接入。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

此项目为个人玩具,目前你不应该期望能将其用于稳定的生产


Vendor-Versatile Agent

用满每家模型原生能力的 AI 编程助手

vva 是终端与浏览器中的 AI 编程助手:用自然语言描述任务,模型在你的项目里读写文件、执行命令、联网查资料,直到完成。

多数编程助手把所有模型压成同一个 Chat Completions 接口,缓存、思考签名、原生搜索等能力随之丢失。vva 为每家供应商实现原生协议:

  • OpenAI Responses:previous_response_id 服务端链式续接,只上传增量上下文;
  • Anthropic Messages:Prompt Caching 断点与 Thinking 签名完整回传,长会话持续命中缓存;
  • Google Gemini:原生 Google Search Grounding,回答附带精确到片段的引用来源。

结果是更低的 token 成本、更快的响应,以及模型能力不打折扣。

特性

  • 三种界面:全屏终端界面、浏览器界面(含文件浏览与 IDE 布局)、单次命令行执行,共享同一套会话;
  • 会话持久化:按项目自动保存,随时恢复、回退或分叉;
  • 用量透明:实时显示 token、缓存命中与费用;
  • 多模态:@ 引用工作区文件,图片与 PDF 作为原生附件发送;
  • 可扩展:支持 AGENTS.md 指令、Agent Skills、自定义 subagent;
  • 联网兜底:模型无原生搜索时可接入 Brave / Tavily / Gemini / DeepSeek / 智谱搜索与网页抓取;
  • 常驻 IM agent:vva agent 接入 QQ,自动路由会话、沉淀长期记忆、执行定时任务。

安装

一键安装或更新到最新 release:

# Linux x86_64 / arm64、macOS Apple Silicon(arm64)、Android arm64(Termux)
curl -fsSL https://raw.githubusercontent.com/jerrita/vva/master/scripts/install.sh | bash
# Windows x64
irm https://raw.githubusercontent.com/jerrita/vva/master/scripts/install.ps1 | iex

已安装时,安装脚本比较本地与最新版本,已是最新则跳过下载。也可直接执行:

vva version   # 查看当前版本
vva update    # 更新到最新 release(安装到当前可执行文件所在目录)

从源码构建需要 Rust 1.85+;构建期需要 Node.js 与 npm(Web 前端打包进二进制,运行时无需 Node)。

cargo install --git https://github.com/jerrita/vva

Android / Termux

在 Termux 中安装依赖后,运行上方的一键安装命令:

pkg install bash curl tar coreutils ca-certificates

安装脚本选择 android-arm64 产物,默认安装到 $PREFIX/bin,可通过 VVA_INSTALL_DIR 修改。主目录读取 $HOME,未设置时使用 /data/data/com.termux/files/home;全局配置位于该目录下的 .vva/config.jsonc,会话与技能等数据也保存在 .vva 下。

在 Termux 中从源码构建时,先安装 rust clang make nodejs-lts,再执行上方的 cargo install 命令。

快速开始

已有官方 API Key 时,设置环境变量即可直接使用:

export OPENAI_API_KEY=...
vva                                          # 默认模型 openai/gpt-5.6-terra

export ANTHROPIC_API_KEY=...                 # 或 GEMINI_API_KEY
vva run --model anthropic/claude-sonnet-4-5  # 以 供应商/模型 指定

使用其他供应商或兼容端点时,写一份 ~/.vva/config.jsonc:

{
  "settings": { "default": "zai/glm-5.3" },
  "providers": {
    "zai": {
      "type": "glm-coding-plan", // 智谱预设:只需密钥,端点与模型自动补全
      "api_key": "${ZAI_API_KEY}"
    }
  }
}

自定义供应商、推理档位、费率、联网搜索等配置见 配置参考;配置文件声明 "$schema" 指向 schema.json 可获得编辑器补全。

也可以把下面的 prompt 交给其他 coding agent,由它辅助完成配置:

帮我配置 vva(https://github.com/jerrita/vva)。
先阅读配置参考与 schema:
- https://raw.githubusercontent.com/jerrita/vva/master/docs/config-reference.md
- https://raw.githubusercontent.com/jerrita/vva/master/schema.json

然后询问我要使用的供应商、端点、模型与是否需要联网搜索,据此生成 ~/.vva/config.jsonc:
- 文件开头声明 "$schema" 指向上面的 schema.json;
- API Key 以 "${ENV_VAR}" 引用,密钥写入 ~/.vva/env(KEY=VALUE 格式),不写进配置文件;
- 写入后运行 `vva run "hello"` 验证,报错时按配置参考修正。

使用

vva                                    # 终端界面
vva run "梳理 src/harness 的调用链"     # 单次执行,结果流式输出
vva web                                # 浏览器界面,http://127.0.0.1:3000
vva agent                              # 常驻 IM agent

终端界面中输入 /help 查看命令,/model 切换模型,/sessions 恢复历史会话。

文档

许可证

AGPL-3.0

About

原生保留各厂商特性的 Rust Coding Agent Harness:在统一会话模型下最大保留供应商原生能力,提供 TUI、Web 入口,支持 IM 接入。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages