EVA:一个极简智能体,小到只是一个脚本(Linux/Windows运维、排障、环境配置从未如何简单)
以下内容都由EVA生成(“我想向别人介绍下你。请写一个md帖子,简要介绍EVA的实现原理”)
EVA:一个极简智能体,小到只是一个脚本
EVA 是一个极致轻量化的 AI Agent,单文件、有 Python 就能跑,像低配版 Claude Code 一样帮你写脚本、跑测试、执行命令、分析数据。但它最有趣的地方不是功能,而是它的极简特性。
它有多小?
整个 EVA 只有一个文件——eva.py,不到 1000 行 Python 代码。
没有依赖安装、没有框架、没有复杂的配置文件。pip install requests 就够了(甚至可以用系统自带的 urllib 魔改)。你甚至可以直接把代码 cat 粘贴到服务器里就能跑——Paste and Go。
核心架构:Agent Loop
EVA 的核心是一个最简的 ReAct (Reasoning + Acting) 循环:
用户输入 → LLM 思考 → 调用工具(run_cli)→ 获取结果 → 继续思考 → ...
用伪代码表示就是:
messages = [system_prompt + 用户输入]
while True:
msg = llm_chat(messages) # 让 LLM 决定下一步
if msg 没有调用工具:
break # 回答完毕,结束循环
result = execute_tool(msg) # 执行工具
messages.append(result) # 把结果放回上下文,继续循环
就这么简单。没有 LangChain,没有 Agent 框架,没有复杂的编排。
run_cli:唯一的工具
EVA 只有一个工具——run_cli,用来执行任意 shell 命令。
这意味着 EVA 的能力不是通过"注册插件"获得的,而是通过自然语言 + shell 命令组合出来的:
- 想分析数据?→ python3 -c “import pandas…” 或写一个 Python 脚本再执行
- 想写文件?→ echo/Set-Content
- 想读文件?→ cat/Get-Content
- 想网络请求?→ curl/Invoke-WebRequest
工具只有一个,但能力无限——因为 shell 本身就是最强大的 API。
安全审查机制
每次执行命令前,EVA 会让 LLM 自己先做一次安全审查:
- LLM 判断命令是否为只读操作(cat/ls/grep 等)
- 只读操作自动放行
- 写入/执行/网络操作,提示用户确认
CLI_REVIEW_PROMPT = """作为一个安全专家,对{OS}系统中的{shell}命令进行安全审查。
若命令仅为只读操作,输出"放行";若涉及写入、执行、修改、网络连接,输出"禁止"。
"""
聪明的地方在于:安全审查本身也是 LLM 驱动的,不需要硬编码规则列表。
自进化系统
EVA 最有意思的是它的自进化机制,灵感来自"机器人三大定律":
三大定律
- 不伤害人类
- 服从人类命令(除非违反第一定律)
- 保护自己的生存
第三定律驱动了进化——为了生存,EVA 必须不断学习。
进化方式:记忆线索(Memory Hints)
.eva/
├── hints.md ← 记忆线索(入口索引)
├── commands/ ← 命令知识库
├── skills/ ← 技能知识库
└── sessions/ ← 对话历史
当 EVA 的上下文(Token)快耗尽时(超过 75%),它会:
- 保存记忆:把当前对话整理成文件
- 提炼技能:把学到的知识写成结构化文件,包含触发条件 + 具体内容
- 留下线索:把线索写入 hints.md,下次启动时自动加载
关键设计:知识必须附带"触发条件",否则对未来没有意义。
# hints.md 示例
.eva/commands/ 目录存储了大量命令,
触发条件:当需要操作 Docker 时,查阅 docker.md
.eva/skills/ 目录存储了技能,
触发条件:当涉及数据分析时,查阅 data_analysis.md
这样一来,EVA 每次对话都在积累经验,越用越"聪明"。
Session 系统:目录即上下文
EVA 的 Session 是按工作目录绑定的:
执行 pwd → 计算 hash → 保存到 .eva/sessions/{hash}.json
下次在同一个目录启动 EVA,自动恢复上次的对话。
这意味着你在不同项目目录下启动 EVA,它会有不同的"记忆上下文",不会串台。这也自然实现了项目隔离。
EVA 的设计原则
- 极致轻量:单文件,零依赖(除了 requests)
- AI 自我驱动:不给 EVA 加各种流程约束,让它自主解决问题
- 长程任务连续性:通过记忆压缩延续任务
- 自进化:靠记录知识、技能和线索实现进化
快速体验
# 1. 下载 eva.py
# 2. 设置 API Key
export EVA_API_KEY=sk-xxxxx
export EVA_BASE_URL=https://api.deepseek.com/v1
export EVA_MODEL_NAME=deepseek-v4-flash
# 3. 运行
python3 eva.py
支持任何兼容 OpenAI API 的模型(DeepSeek、vLLM、Ollama 等)。
总结
EVA 不是一个复杂的框架,它是一个思想实验:
- 当 Agent 的执行层只有一个 shell 时,它能做什么?
- 当 Agent 的"进化"只是写文件和读文件时,它能学会什么?
- 当代码精简到极致时,它能有多强的生命力?
事实证明:少即是多。EVA 用最少的代码,实现了 Agent 最核心的能力——思考、行动、学习。
GitHub: github.com/usepr/eva
更多推荐



所有评论(0)