| 场景 | 可以交给 Agent 的任务 |
|---|---|
| 研发 | 理解代码库、实现需求、修改文件、代码审查、API 设计、查询依赖文档 |
| 测试 | 编写测试、执行回归、浏览器 E2E、复现问题、验证修复结果 |
| 运维 | 检查服务和日志、定位故障、整理 RCA、核对发布流程与风险 |
| 远程协作 | 从浏览器或微信提交任务、查看状态、停止任务并接收结果 |
它主要解决这些问题:
- 任务不必绑在个人电脑上:Agent 在团队服务器运行,关闭浏览器也可以继续执行。
- 多个任务可控并发:默认同时运行 4 个任务;Git 项目可用 worktree 隔离,共享目录自动排队,避免互相覆盖。
- 长任务有记录、可恢复:会话、队列和运行状态写入 SQLite;服务重启后恢复排队任务,并明确标记被中断的任务。
- 过程看得见:通过 SSE 实时显示模型、Tool、Skill、MCP、Token、缓存、耗时和错误,网络重连后可继续 Trace。
- 团队共用一套能力:模型配置、服务器项目、Skills 和 MCP 统一管理,同时提供给 EasyAgent 与 Codex Runtime。
前往 Releases,按系统和架构下载:
| 系统 | x64 / Intel | ARM64 / Apple Silicon |
|---|---|---|
| Windows | easyagent_*_windows_amd64.zip |
easyagent_*_windows_arm64.zip |
| macOS | easyagent_*_darwin_amd64.tar.gz |
easyagent_*_darwin_arm64.tar.gz |
| Linux | easyagent_*_linux_amd64.tar.gz |
easyagent_*_linux_arm64.tar.gz |
解压后运行 easyagent.exe(Windows)或 ./easyagent(macOS/Linux)。发布包是包含 Web UI 的单个二进制,不需要安装 Go、Node.js 或 SQLite。
服务默认监听 0.0.0.0:8080。启动后访问 http://服务器IP:8080,使用默认账号 admin / admin 登录,并立即在 设置 → 账户安全 修改密码,然后到 模型配置 添加模型。
macOS 和 Windows 发布包暂未代码签名;如果首次运行被系统拦截,请在系统安全设置中确认。
进入准备存放 EasyAgent 的目录后执行:
(
set -euo pipefail
release_url="$(curl -fsSL -o /dev/null -w '%{url_effective}' \
https://github.com/lakernote/easy-agent/releases/latest)"
tag="${release_url##*/}"
version="${tag#v}"
curl -fL "https://github.com/lakernote/easy-agent/releases/download/${tag}/easyagent_${version}_linux_amd64.tar.gz" \
| tar -xz --strip-components=1
nohup ./easyagent >easyagent.log 2>&1 </dev/null &
printf '%s\n' "$!" >easyagent.pid
)tail -f easyagent.log # 查看日志
kill "$(cat easyagent.pid)" # 停止服务发布包已带可执行权限。数据库、默认工作区和运行状态保存在 ~/.easyagent/。
发布流程会为每个归档生成 SHA-256 校验和和 GitHub 构建来源证明。下载后可校验文件完整性,并确认产物确实由本仓库的发布工作流构建:
sha256sum --check checksums.txt --ignore-missing
gh attestation verify easyagent_* -R lakernote/easy-agent容器以固定的非 root 用户(UID/GID 10001)运行。/data 是唯一需要持久化的目录,包含 SQLite 数据库、默认工作区、Runtime 依赖以及 Codex 配置:
docker build -t easyagent:local .
docker volume create easyagent-data
docker run -d --name easyagent \
-p 8080:8080 \
-v easyagent-data:/data \
--restart unless-stopped \
easyagent:local启动后访问 http://服务器IP:8080。使用 bind mount 时,宿主目录必须允许 UID/GID 10001 写入。升级镜像时保留同一个 volume 即可;不要只备份 easyagent.db,工作区、MCP Runtime 和 Codex 登录状态也位于 /data。
| Runtime | 适合场景 | 要求 |
|---|---|---|
| EasyAgent | 使用原生 Ollama、Anthropic,或 OpenAI Chat/Responses 服务和 EasyAgent 工具循环 | 模型必须支持协议原生 Function Calling;四种协议均使用流式 API |
| Codex | 使用 Codex thread、原生工具、Skill 和沙箱处理代码任务 | 服务器安装 Codex CLI |
请在运行 EasyAgent 的服务器终端中手动安装 Codex CLI:
curl -fsSL https://chatgpt.com/codex/install.sh | sh安装命令会下载并执行 OpenAI 官方安装脚本,请在执行前核对官方安装说明。EasyAgent 只检测 Codex CLI,不会下载安装或执行该脚本。app-server 是 Codex CLI 自带的子命令,不需要单独安装。两个 Runtime 共用任务队列、项目目录、worktree、Skills 和 MCP;设置中心的 Runtime 权限支持只读、工作区写入、完全访问和自定义模式,默认仍为完全访问以兼容已有安装。
无论选择哪个 Runtime,都使用相同的项目和任务系统:
- 项目可包含多个服务器源文件夹,第一个目录作为默认工作目录。
- 支持排队、暂停、继续、停止和重启恢复;默认并发 4、单轮最长 12 小时,均可在设置中调整。
- Git 项目可按会话创建 worktree;源仓库有未提交修改时不会自动隔离。Codex 会话还支持 thread 继续、读取和分支。
开发环境可以用同一套原生 Function Calling 门禁比较多个模型。命令会按通过率、平均 Token、总耗时和首个可见输出时间排序;API Key 只允许通过指定环境变量读取,不接受命令行明文:
go run ./cmd/easyagent-eval \
-models qwen3:14b-16k,qwen2.5-coder:14b \
-runs 3这是一项模型/Provider 资格测试,不等同于完整 coding-agent 排行榜;真实 Agent 质量还应使用固定仓库任务、隔离工作区和可验证断言评测。
内置 Skills 聚焦项目理解、问题分析、代码审查、API 设计、测试与 E2E、事故 RCA、发布工程、文档维护、Git worktree 和网页研究。GitHub、Context7、Playwright、OpenAI Docs 等 MCP 可在设置页启用,供两个 Runtime 共用。
默认工具面参考 PI 保持为 read、shell、edit、write 小核心;只读模式改用文件探索核心。Skill 入口直接可用,其余内置工具和大型工具组按需加载,减少中小模型的无关 Schema 与往返。网页研究会先发现候选,再读取原始来源后回答。
设计取舍和后续测试建设见 PI 对照复审:搜索边界与 Agent 测试版图。
web_research 是模型唯一可见的联网入口。模型根据语义填写数据类型、查询对象、时间范围和研究深度;复杂问题还可给出 2–4 条互补检索式。Runtime 负责限制查询预算,并执行结构化数据读取、多源搜索、安全抓取、去重和引用整理。Tavily、SearXNG、Brave Search、Firecrawl、Reader 与 GitHub Token 可在 设置 → 工具与 MCP → Web Research 配置并执行真实连接测试,保存后下一轮立即生效;也可以继续使用环境变量部署。
- 查询公开 GitHub 仓库指标不要求登录。若要提高
web_research的 GitHub API 限额,可在 设置 → 工具与 MCP → Web Research 填写 GitHub Token,或为服务进程设置GITHUB_TOKEN/GH_TOKEN。页面配置优先于环境变量,保存后下一轮立即生效。 - 访问私有仓库、Issue、Pull Request 和 Actions,优先到 设置 → 工具与 MCP → GitHub 配置官方 GitHub MCP。Bearer Token 保存在
~/.easyagent/easyagent.db,接口和页面只返回已配置状态,不回传明文;数据库本身不是独立的密钥保险库,应继续依赖目录权限、磁盘加密和低权限服务账号。 - 本地 clone、diff、commit 等操作直接使用服务器的
git。HTTPS 凭据、SSH Key 和gh/glab登录态属于运行 EasyAgent 的系统账号,不属于模型配置;请以同一个服务账号执行gh auth login或glab auth login。GitHub/GitLab CLI 未安装时,EasyAgent 不会自动安装。 - HTTP/Streamable HTTP MCP 支持 OAuth:设置页会把浏览器授权回调落到 EasyAgent 服务,EasyAgent Runtime 将 access/refresh token 保存到 SQLite 独立的
ea_mcp_oauth_credentials表;Codex Runtime 通过 app-server 原生 OAuth 登录,并由 Codex 自己保存凭证。远程 Linux 不需要公网 callback,只要浏览器能访问服务地址(例如http://10.224.58.180:8080);生产环境应使用 HTTPS 内网域名,并在 OAuth provider 注册最终显示的完整 callback URL。
Shell、Codex 和 stdio MCP 继承服务账号的系统权限,服务进程环境变量也会传给子进程。不要使用个人全权限 PAT;生产环境应使用专用账号、最小权限和可轮换凭据。
- 支持多人扫码绑定,并为每个人选择新会话的默认项目。
- 文字、图片、PDF、代码文件和带微信文字的语音进入与 Web 相同的任务队列;语音没有文字时提示补发说明,不下载音频,也不运行语音识别。
- “新会话”“状态”“停止”“项目列表”等控制指令不调用模型;微信回传状态和结果,完整 Trace 保留在 Web。
- 默认监听所有网卡,请立即修改默认密码;不要直接暴露到公网,建议使用防火墙、VPN 和 HTTPS。
- 当前是单机团队共享模式:一个管理员账号、一个 SQLite 数据库,不提供 RBAC 或多租户隔离。
- Shell、Codex 和 stdio MCP 使用 EasyAgent 服务进程的系统权限运行;建议使用专用的低权限账号。
- 只有任务需要调用 Git、Python、Node.js 等命令时,服务器才需要安装对应工具。


