ConardLi/easy-agent

Production-ready open source terminal coding agent with readable, layered code: permission rules, OS sandboxing, MCP, skills, sub-agents, and Anthropic, OpenAI-compatible, Gemini, or local models.

Easy Agent – 一款安全的、基于终端的编码助手

功能

  • 作为命令行REPL(eagent)在代码仓库旁运行。
  • 你用自然语言描述任务;代理会规划、读取、编辑文件,运行构建/测试,并报告结果。
  • 每个潜在危险的操作(文件写入、shell命令、网络调用)都会通过你配置的权限系统进行过滤,并可选地使用操作系统级沙箱。

主要特性

领域 亮点
核心工具 文件读写、多文件编辑、glob/grep、Bash/PowerShell执行、网页获取/搜索、基于MCP的扩展。
安全 允许/询问/拒绝规则引擎、工作区信任模型、路径边界检查、只读的计划模式、分类器辅助的自动模式、沙箱(macOS上的Seatbelt,Linux上的bubblewrap)。
持久性 会话记录、文件检查点(/rewind)、项目级记忆(AGENT.md/AGENTS.md)、持久任务图、可恢复会话。
可扩展性 技能、自定义代理、斜杠命令、插件、MCP服务器、静态市场、用于嵌入的SDK。
接口 交互式终端UI、无头JSON/NDJSON输出(-p)、基于stdio的JSON-RPC、用于IDE的Agent Client Protocol、SDK(eagent/sdk)。
支持的模型 Anthropic、OpenAI兼容、Gemini、本地Ollama风格模型;可通过JSON配置文件或环境变量配置。
平台 macOS、Linux/WSL2(带沙箱)、Windows(PowerShell,无沙箱)。

使用方法

  1. 使用npm全局安装(npm i -g eagent)或通过npx运行。
  2. 导出模型token(例如ANTHROPIC_AUTH_TOKEN)。
  3. cd到项目中并启动eagent。
  4. 首次运行时,你决定是否信任该文件夹。然后输入自然语言请求,例如解释请求是如何认证的。
  5. 使用斜杠命令(/help、/rewind、/model、/permissions等)来控制会话、检查状态或撤销更改。

安全模型

  • 权限规则:允许、询问、拒绝 – 拒绝始终优先。未批准的操作会触发提示。
  • 权限模式:default(询问)、plan(只读)、auto(分类器决定,不确定时提示)。
  • 工作区信任:信任决策存储在~/.easy-agent/state.json中;仓库不能自我标记为受信任。
  • 路径边界:拒绝工作区外的符号链接。
  • 沙箱:可选的OS沙箱隔离Bash命令;如果启动失败,命令将被阻止。
  • 本地数据:所有会话数据存储在~/.easy-agent下,权限受限(0700/0600)。

配置

  • 设置是分层JSON文件(用户 → 项目 → 本地 → CLI → 管理)。
  • 模型配置文件在settings.json中定义;使用eagent --model <名称>或/model选择。
  • 权限、功能标志和沙箱选项通过同一层级切换。

典型工作流程

  • 代码探索:询问功能在哪里实现;代理会grep、打开文件并解释。
  • 批量重构:提示多文件更改,查看差异,并在需要时/rewind。
  • CI集成:将提示管道到eagent -p,并在脚本中消费JSON输出。
  • 自定义工具:注册自己的技能或插件,或通过ACP协议连接IDE。

开发与贡献

  • 使用TypeScript构建,打包为单个ESM包。
  • 开发工作流程:npm run dev;CI运行验证脚本和广泛的测试。
  • 目前不接受外部PR,但欢迎包含可复现错误的issue。

许可证:MIT(第三方许可证另行列出)。


Easy Agent是一个真正的开源项目,为在终端工作的开发者提供可编程的、注重安全的AI编码助手。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目