# agent_dev **Repository Path**: wangdong_cmcc/agent_dev ## Basic Information - **Project Name**: agent_dev - **Description**: 智能体开发 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-16 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EVA — 可进化的 AI 代理系统 EVA(Evolvable AI Agent)是一个在终端环境中运行的 AI 助手,将大模型的推理规划能力与本地环境执行能力相结合,具备记忆管理、会话持久化和工具调用能力。 ## 项目结构 ```text . ├── eva # 系统命令(e.g. sudo ln -s .../eva /usr/local/bin/eva) ├── eva1/ # 第一代:单体脚本 │ ├── eva.py # 远程版(DeepSeek API) │ ├── shuke.py # 本地版(Ollama) │ ├── eva_design.md # 设计文档 │ ├── shuke_design.md # 设计文档 │ ├── test[1-4].py # LangChain/LangGraph 示例 │ └── README.md │ └── eva2/ # 第二代:模块化重构 ├── __init__.py # 包版本号 2.0.0 ├── __main__.py # python -m eva2 入口 ├── cli.py # 命令行入口(Rich 图形终端) ├── config.py # Pydantic 配置管理 ├── llm.py # LLM 工厂(OpenAI/Anthropic/Ollama) ├── agent.py # LangGraph Agent 组装 ├── memory.py # 自动记忆压缩 ├── prompts.py # System prompt 模板 ├── session.py # 会话持久化 ├── tools/ │ ├── __init__.py # 工具注册工厂 │ ├── run_cli.py # CLI 执行工具(含安全审查) │ └── store.py # 持久化记忆存储 ├── eva2_learn.py # 交互式学习向导 ├── run.sh # 一键启动脚本 └── docs/ ├── eva2_design.md # 设计思路文档 └── bugs.md # Bug 记录 ``` ## 安装 ```bash # 1. 安装依赖 pip install langgraph langchain-core langchain-openai rich pydantic pydantic-settings tiktoken requests # 2. 本地拉取嵌入模型,构建 RAG知识库需要, 以nomic-embed-text:latest 为例 ollama pull nomic-embed-text:latest ``` ## 快速开始 ### EVA2(推荐) ```bash # 一般使用 cd agent_dev/eva2/ EVA2_LLM_API_KEY=sk-your-key ./run.sh # 首次使用建议构建本地知识库 /knowledge build ``` ### 交互式学习eva2的设计 ```bash cd eva2 python3 eva2_learn.py # 交互模式,从第 1 关开始 python3 eva2_learn.py list # 查看所有关卡 python3 eva2_learn.py 5 # 跳到第 5 关 ``` ### EVA1(第一代) ```bash cd eva1 # 远程版 export EVA_API_KEY="sk-xxx" python eva.py # 本地版(需 Ollama) python shuke.py ``` ## 版本对比 | 特性 | eva1 (eva.py) | eva2 | | --- | --- | --- | | 架构 | 单文件 ~740 行 | 模块化包(8 模块) | | 框架 | 原生 requests | LangGraph + LangChain | | 异步 | 同步 | 全异步 | | 终端 | 纯文本 | Rich 图形化(Markdown 渲染) | | 记忆管理 | 手动"紧急危机"触发 | 自动 token 感知压缩 | | 工具注册 | dict 映射 | BaseTool 继承 | | 多模型 | 改代码 | 配置切换 provider | | 类型安全 | 无 | Pydantic + type hints | ## 配置 环境变量(前缀 `EVA2_*`)或 CLI 参数: | 变量 | 默认值 | 说明 | | --- | --- | --- | | `EVA2_LLM_PROVIDER` | `openai` | LLM 提供商 | | `EVA2_LLM_MODEL` | `deepseek-v4-flash` | 模型名称 | | `EVA2_LLM_BASE_URL` | `https://api.deepseek.com/v1` | API 地址 | | `EVA2_LLM_API_KEY` | — | API 密钥 | ## 开源与致谢 本项目基于 [usepr/eva](https://github.com/usepr/eva) 进行二次开发与重构。 - **原始版本** (`eva1/eva.py`) — 源自 [usepr/eva](https://github.com/usepr/eva),保留原始设计思路与核心逻辑。 - **重构版本** (`eva2/`) — 在原始版本基础上使用 LangGraph + LangChain 技术栈进行模块化重构,架构设计与接口协议与原版有较大差异。 遵循上游项目的开源许可协议。感谢原作者 [usepr](https://github.com/usepr) 的开源贡献。 ## 安全机制 - 非只读命令(rm、dd、wget 等)执行前需用户确认 - LLM 预审查命令安全分类 - `-a` 参数可跳过确认(谨慎使用)