# 【开发者自荐】EVA：单python文件的智能体，无第三方依赖

**URL:** <https://meta.appinn.net/t/topic/89135>\
**Category:** 发现频道\
**Created:** [2026 年8 月 1 日 01:41 UTC](https://meta.appinn.net/t/topic/89135 "2026-08-01T01:41:51Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年8 月 1 日 01:41 UTC](https://meta.appinn.net/t/topic/89135/1 "2026-08-01T01:41:51Z")

</div>

## **软件名称**

eva

## **应用平台**

- Linux
- Windows

## **推荐类型**

【开发者自荐】

## **是否收费**

免费

## **一句简介**

一个单python文件智能体，无第三方依赖，随处运行

## **应用简介**

EVA只有一个python文件，只使用python内置库，可以随意复制粘贴并运行。eva是低配版[Claude Code](https://zhida.zhihu.com/search?content_id=783468352&content_type=Answer&match_order=1&q=Claude+Code&zhida_source=entity)，适合Linux/Windows运维、排障、执行命令。你也可以用它写报告、分析数据、写代码等，不过这些复杂场景还是尽量用Claude Code、Codex。eva的一些使用场景：

### **1. 微信bot**

我将EVA接入微信bot，作为个人助理，帮我检索账号、联网分析等

### **2. Linux排障、环境配置**

EVA接入内部部署的[Qwen3.5-27B](https://zhida.zhihu.com/search?content_id=783468352&content_type=Answer&match_order=1&q=Qwen3.5-27B&zhida_source=entity)模型，帮助团队解决了很多Linux相关的环境、配置问题。例如，快速修复容器启动失败问题

### **3. CTI运维**

分析电脑卡慢原因、检查配置问题、验证漏洞影响情况等。例如，让EVA分析服务器受漏洞影响情况，它能够自动联网检索CVE漏洞信息、根据漏洞信息排查当前环境、给出最终报告

## **截图预览：**

 ![image](https://h2cdn.appinn.me/original/3X/b/9/b90964124e91ea3cb18069344186233805b2bfc9.jpeg)

## **官方网站**

> **[GitHub - usepr/eva: 单文件智能体](https://github.com/usepr/eva)**
>
> 单文件智能体

---

<div class="post-metadata">

**Author:** ![TaoEngine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@TaoEngine](https://meta.appinn.net/u/TaoEngine)\
**Post date:** [2026 年8 月 1 日 02:04 UTC](https://meta.appinn.net/t/topic/89135/2 "2026-08-01T02:04:06Z")

</div>

如果是python写的，要不上一下rich渲染一下ai输出的markdown文字 :doge:

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2026 年8 月 1 日 03:36 UTC](https://meta.appinn.net/t/topic/89135/3 "2026-08-01T03:36:39Z")

</div>

> [@usepr](#):
>
> 执行shell

这说法好怪啊，应该是 “执行命令” 吧？Shell 只是系统与用户交互的那个命令行界面。

> [@TaoEngine](#):
>
> 上一下rich

这个？

> **[GitHub - Textualize/rich: Rich is a Python library for rich text and...](https://github.com/Textualize/rich)**
>
> Rich is a Python library for rich text and beautiful formatting in the terminal.

> **[简介 — Rich 13.6.0 文档 - Rich 文档](https://rich.pythonlang.cn/en/stable/introduction.html)**

---

<div class="post-metadata">

**Author:** ![TaoEngine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@TaoEngine](https://meta.appinn.net/u/TaoEngine)\
**Post date:** [2026 年8 月 1 日 03:40 UTC](https://meta.appinn.net/t/topic/89135/4 "2026-08-01T03:40:58Z")

</div>

是的，rich能在命令行渲染markdown文字的

> **[Markdown — Rich 13.6.0 文档 - Rich 文档](https://rich.pythonlang.cn/en/stable/markdown.html)**

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2026 年8 月 1 日 03:43 UTC](https://meta.appinn.net/t/topic/89135/5 "2026-08-01T03:43:18Z")

</div>

理论上用它就能做一个轻量级的 Markdown 阅读器了 :doge:

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年8 月 2 日 14:21 UTC](https://meta.appinn.net/t/topic/89135/6 "2026-08-02T14:21:36Z")

</div>

> [@usepr](#):
>
> 执行shell

嗯，是执行命令，linux的话是bash命令、mac是zsh命令、windows是powershell命令。我改下描述

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年8 月 2 日 14:21 UTC](https://meta.appinn.net/t/topic/89135/7 "2026-08-02T14:21:55Z")

</div>

eva没用任何第三方库，甚至请求llm都是用的内置urllib库，而不是用requests库。保持简单比加各种功能好些。

大家也可以贡献下，检测到rich库就走rich美化输出。目前代码里也会检测有没有安装prompt\_toolkit，用于多行输入。

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2026 年8 月 2 日 14:23 UTC](https://meta.appinn.net/t/topic/89135/8 "2026-08-02T14:23:49Z")

</div>

别的还好，Markdown 表格可能需要处理一下，不然列都无法对齐，看着是真的乱。

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年8 月 2 日 15:42 UTC](https://meta.appinn.net/t/topic/89135/10 "2026-08-02T15:42:53Z")

</div>

感谢意见，已添加rich支持，若有rich库则美化输出，否则保持零依赖。

[\>commit改动](https://github.com/usepr/eva/commit/c1708390fd11ddd85b6fe6bc97c90725d9b6bb8b)

 ![image](https://h2cdn.appinn.me/original/3X/7/d/7d2ddc61be7cf30a46fe9de51b08cad5bf1ac39f.png)

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年8 月 30 日 05:20 UTC](https://meta.appinn.net/t/topic/89135/11 "2026-08-30T05:20:34Z")

</div>

![1d38d9dbc1a22fc073a71420d71bf03d](https://h2cdn.appinn.me/original/3X/e/1/e1bcbdfddddbc986692bd65689329980d7b0c603.jpeg)

---

<div class="post-metadata">

**Author:** ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
**Post date:** [2026 年9 月 2 日 03:01 UTC](https://meta.appinn.net/t/topic/89135/12 "2026-09-02T03:01:40Z")

</div>

这是获奖了？

---

<div class="post-metadata">

**Author:** ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
**Post date:** [2026 年9 月 2 日 03:34 UTC](https://meta.appinn.net/t/topic/89135/13 "2026-09-02T03:34:25Z")

</div>

wow 这个东西我试了下，很赞啊。

我就没想明白，你咋起了一个这样的标题啊，完全没看懂是什么意思。

另外大佬要不要加一个：第一次运行后，提示输入 api key 的交互啊。

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年9 月 2 日 04:04 UTC](https://meta.appinn.net/t/topic/89135/14 "2026-09-02T04:04:09Z")

</div>

运行时本来就会探测LLM端点可用性，未设置api key会提示：

> $ eva -a  
> 错误：未设置 EVA\_API\_KEY 环境变量

eva确实拿了个CCF 开源大会青年专项基金种子计划的基础项目奖，挺小的一个奖。 下面是木兰社区的公众号内容。在CCF官方公众号、沐曦股份官网也有一些种子计划报道

[https://mp.weixin.qq.com/s/WoZvdWqg4sO-NVd0RmUzHA?scene=1](https://mp.weixin.qq.com/s/WoZvdWqg4sO-NVd0RmUzHA?scene=1)

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2026 年9 月 2 日 04:07 UTC](https://meta.appinn.net/t/topic/89135/15 "2026-09-02T04:07:44Z")

</div>

> [@Qingwa](#):
>
> 这样的标题啊，完全没看懂是什么意思。

确实，这个标题信息量太低了。其实楼主的 “一句简介” 就很适合当标题：

> [@usepr](#):
>
> 一个单python文件智能体，无第三方依赖，随处运行

个人建议可以这样写：

> 【开发者自荐】EVA：单python文件的智能体，无第三方依赖

---

<div class="post-metadata">

**Author:** ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
**Post date:** [2026 年9 月 2 日 04:14 UTC](https://meta.appinn.net/t/topic/89135/16 "2026-09-02T04:14:01Z")

</div>

智能体这个名字本身就会让读者误解，无法第一眼知道到底是个啥。

我觉得不如：单文件 Claude Code / Codex

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2026 年9 月 2 日 04:40 UTC](https://meta.appinn.net/t/topic/89135/17 "2026-09-02T04:40:03Z")

</div>

> [@Qingwa](#):
>
> 单文件 Claude Code / Codex

可能也不太恰当。Claude Code 和 Codex 只是一种 AI Agent 的名字，而不能作为 AI Agent 这一类软件的名称。比如，舒肤佳是香皂中比较有名的牌子，但你不能说所有香皂都叫舒肤佳。

回到这个软件，或许也可以叫 “单 Py 脚本的 Linux AI 运维助手”。

---

<div class="post-metadata">

**Author:** ![OoO](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/ooo/32/55888_2.png) [@OoO](https://meta.appinn.net/u/OoO)\
**Post date:** [2026 年9 月 2 日 10:08 UTC](https://meta.appinn.net/t/topic/89135/18 "2026-09-02T10:08:10Z")

</div>

基于个人需求，有这样一个建议:  
提供一个选项，可以在eva.py中将api的url和key写入，这样就可以避免每次复制后都重新配置了。

既然你叫usepr，我就提了个pr哈哈哈，可以参考一下，毕竟只是一个想法。

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年9 月 2 日 13:18 UTC](https://meta.appinn.net/t/topic/89135/19 "2026-09-02T13:18:22Z")

</div>

挺棒的，现在唯一的问题是：帖子的标题貌似改不了（编辑时是灰色的、无法修改）。。 :joy:

---

<div class="post-metadata">

**Author:** ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
**Post date:** [2026 年9 月 2 日 13:18 UTC](https://meta.appinn.net/t/topic/89135/20 "2026-09-02T13:18:57Z")

</div>

我可以帮你改

---

<div class="post-metadata">

**Author:** ![usepr](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/usepr/32/69270_2.png) [@usepr](https://meta.appinn.net/u/usepr)\
**Post date:** [2026 年9 月 2 日 13:22 UTC](https://meta.appinn.net/t/topic/89135/21 "2026-09-02T13:22:28Z")

</div>

> [@VictoryRoad](#):
>
> 【开发者自荐】EVA：单python文件的智能体，无第三方依赖

可以按 @VictoryRoad 的意见，修改为：

`EVA：单python文件的智能体，无第三方依赖`

[下一页](https://meta.appinn.net/t/topic/89135.md?page=2)
