一款轻量 Agent 桌面端拘束器(本地/远端统一 OpenAI 兼容接口)
[ 中文 | English ]

-
下载机体
-
包括eva程序前端和EVA_BACKEND后端。
-
EVA_BACKEND后端结构:
EVA_BACKEND/<架构>/<系统>/<设备>/<项目>/
(例如EVA_BACKEND/x86_64/win/cuda/llama.cpp/llama-server.exe
)。也可以自己编译相应后端,按照这个结构摆放,机体运行时会自动识别。
-
下载模型
-
EVA_MODELS模型目录:
EVA_MODELS/llm
:大语言模型(主要),选一个小于你的设备内存/显存大小的模型EVA_MODELS/multimodal
:多模态模型(非必要)EVA_MODELS/embedding
:嵌入模型(非必要)EVA_MODELS/speech2text
:Whisper模型(非必要)EVA_MODELS/text2speech
:OuteTTS 与 WavTokenizer模型(非必要)EVA_MODELS/text2image
:SD/Flux/Qwen-image/Qwen-image-edit/ 模型(非必要)
-
也可以前往 https://hf-mirror.com 搜索,机体支持几乎所有开源大语言模型
-
启动
-
windows双击打开eva.exe,linux 运行eva.appimage(运行前赋予程序可执行权限 )
-
liunx下需要给eva和后端可执行权限,进入eva的文件夹,终端运行 chmod -R a+x .
-
运行时确保机体程序与后端在同一目录
-
-
装载!
- 点击装载按钮,选择一个gguf模型载入内存
-
发送!
- 在输入区输入聊天内容,点击发送
两种模式
-
本地模式:选择 gguf 模型后,启动本地的
llama-server
程序并默认开放端口8080,也可以网页访问。 -
链接模式:填写
endpoint/key/model
切换到远端模型,使用 OpenAI 兼容接口(/v1/chat/completions
)。
两种状态
-
对话状态
-
在输入区输入聊天内容,模型进行回复
-
可以使用挂载的工具
-
可以按f1截图,按f2进行录音,截图和录音会发送给多模态或whisper模型进行相应处理
-
-
补完状态
- 在输出区键入任意文字,模型对其进行补完
六个工具
在系统指令中附加“工具协议”,指导模型以 <tool_call>JSON</tool_call> 发起调用;
推理结束后自动解析工具请求,执行并把结果以 "tool_response: ..." 继续发送,直至没有新请求。
-
计算器
-
模型输出计算公式给计算器工具,工具将返回计算结果
-
例如:计算888*999
-
调用难度:⭐
-
-
鼠标键盘
-
模型输出行动序列来控制用户的鼠标和键盘,需要模型拥有视觉才能完成定位
-
例如:帮我自动在冒险岛里搬砖
-
调用难度:⭐⭐⭐⭐⭐
-
-
软件工程师
-
类似 Cline 的自动化工具执行链(execute_command/read_file/write_file/edit_file/list_files/search_content/MCP…)。
-
例如:帮我构建一个cmake qt的初始项目
-
调用难度:⭐⭐⭐⭐⭐
-
-
知识库
-
模型输出查询文本给知识库工具,工具将返回三条最相关的已嵌入知识
-
要求:先在“增殖-知识库”上传文本并构建(启动嵌入服务 → /v1/embeddings 逐段入库)。
-
例如:请问机体有哪些功能?
-
调用难度:⭐⭐⭐
-
-
文生图
-
模型输出绘画提示词给文生图工具,工具将返回绘制好的图像
-
要求:用户需要先在增殖窗口配置文生图的模型路径,支持sd和flux模型
-
例如:画一个女孩
-
调用难度:⭐⭐
-
-
MCP工具
-
通过MCP服务,获取到外部丰富的工具
-
说明:挂载工具后需要前往增殖窗口配置MCP服务
-
调用难度:⭐⭐⭐⭐⭐
-
任意技能
技能为机体在约定框架下引入的可插拔能力包。通过该机制,指挥员可在不改动主程序的情况下,为驾驶员注入特定场景的工作流程、模板与脚本指令。 具体可参考EVA_SIKLLS目录下的示例技能。
- 规范约束:挂载软件工程师工具后,将技能文件夹压缩成zip文件,可拖入技能区进行导入。每个技能都必须提供
SKILL.md
,文件以 YAML frontmatter 描述name
、description
、license
等元数据,正文给出操作步骤、输入输出格式、注意事项。EVA 在解析时严格依赖这些字段,缺失将直接拒绝导入。
视觉
-
介绍:在 本地模式 + 对话状态 下可以挂载视觉模型,视觉模型一般名称中带有mmproj,并且只和特定的模型相匹配。挂载成功后用户可以选择图像进行预解码,来作为模型的上文
-
激活方法:在设置中右击“挂载视觉”选择 mmproj;拖拽/右击上传/按 F1 截图后,点击“发送”进行预解码,再进行问答。
听觉
-
介绍:借助whisper.cpp项目将用户的声音转为文本,也可以直接传入音频转为字幕文件
-
激活方法:右击状态区打开“增殖-声转文”,选择 whisper 模型路径;回到主界面按 F2 开始/结束录音,结束后自动转写回填输入框。
语音
-
介绍:借助windows系统的语音功能将模型输出的文本转为语音并自动播放,或者可以自己配置outetts模型进行文转声
-
激活方法:右击状态区打开“增殖-文转声”,选择系统语音或 OuteTTS+WavTokenizer 并启动。
模型量化
- 可以右击状态区弹出增殖窗口,在模型量化选项卡中对未经量化的fp32、fp16、bf16的gguf模型进行量化
自动监视
- 本地对话状态下,挂载视觉后,可设置监视帧率;随后会自动附带最近 1 分钟的屏幕帧到下一次发送。
展开
-
配置环境
-
安装编译器 windows可以用msvc或mingw,linux需要g++或clang
-
安装Qt5.15库 https://download.qt.io/
-
安装cmake https://cmake.org/
-
-
克隆源代码
git clone https://github.com/ylsdamxssjxxdd/eva.git
-
编译
cd eva cmake -B build -DBODY_PACK=OFF cmake --build build --config Release -j 8
- BODY_PACK:是否需要打包的标志,若开启,windows下将所有组件放置在bin目录下;linux下将所有组件打包为一个AppImage文件,但是依赖linuxdeploy等工具需要自行配置
-
后端准备
- 从上游或第三方获取已编译的推理程序。
- 也可以在nerv项目中获取所有三方源码自行编译 git clone https://github.com/ylsdamxssjxxdd/nerv.git
- 按中央教条放置第三方程序:
EVA_BACKEND/<架构>/<系统>/<设备>/<项目>/
,例如: EVA_BACKEND/x86_64/win/cuda/llama.cpp/llama-server(.exe)
- 架构:
x86_64
、x86_32
、arm64
、arm32
- 系统:
win
、linux
- 设备:
cpu
、cuda
、vulkan
、opencl
(可自定义扩展) - 项目:如
llama.cpp
、whisper.cpp
、stable-diffusion.cpp
- 运行时 EVA 仅在本机同架构目录下枚举设备并查找可执行文件,并自动补全库搜索路径(Windows: PATH;Linux: LD_LIBRARY_PATH)。
-
打包分发(解压即用)
- 将可执行(build/bin/eva[.exe])、同级目录
EVA_BACKEND/
、必要 thirdparty 与资源、以及可选EVA_MODELS/
一并打包; - 目录示例:
EVA_BACKEND/<arch>/<os>/<device>/llama.cpp/llama-server(.exe)
EVA_BACKEND/<arch>/<os>/<device>/whisper.cpp/whisper-cli(.exe)
EVA_BACKEND/<arch>/<os>/<device>/llama-tts/llama-tts(.exe)
EVA_MODELS/{llm,embedding,speech2text,text2speech,text2image}/...
- 程序首次启动会在同级目录创建
EVA_TEMP/
,用于保存配置、历史与中间产物。
- 将可执行(build/bin/eva[.exe])、同级目录