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,无沙箱)。 |
使用方法
- 使用npm全局安装(
npm i -g eagent)或通过npx运行。 - 导出模型token(例如
ANTHROPIC_AUTH_TOKEN)。 cd到项目中并启动eagent。- 首次运行时,你决定是否信任该文件夹。然后输入自然语言请求,例如
解释请求是如何认证的。 - 使用斜杠命令(
/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编码助手。
相关
- 项目
- 项目
- 项目
- 项目
- 项目