# edge-agent **Repository Path**: yanggan2021/edge-agent ## Basic Information - **Project Name**: edge-agent - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-21 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🤖 Edge-Agent v2.0 **一个可在嵌入式Linux系统上运行的完整AI Agent框架** > 支持状态持久化 | 自动模型升级 | 7大工具集 | systemd集成 | 流式输出 --- ## 📋 项目概览 **Edge-Agent** 是专为嵌入式Linux设备(如QSemOS、OpenEuler等ARM开发板)设计的轻量级AI智能体。它通过连接硅基流动的LLM API,能够: - 🧠 **理解自然语言** - 用中文或英文描述任务 - 🛠️ **自动执行工具** - 系统命令、文件操作、web搜索 - 💾 **智能持久化** - 重启后自动恢复并继续执行任务 - 📈 **自动模型升级** - 简单任务用快速轻量模型,复杂任务自动升级到强模型 - 🔄 **支持多步工作流** - 观察→思考→执行→验证 的 ReAct 循环 - 📡 **后台运行** - systemd 守护进程模式,支持任务队列 --- ## 🎯 典型使用场景 ### 1. 系统管理员助手 ```bash edge-agent "检查系统状态:CPU、内存、磁盘、关键服务" # 输出示例 # CPU占用: 12.3% # 内存占用: 45.8% # 磁盘占用: 62.1% # SSH服务: 运行中 ✓ # Docker服务: 运行中 ✓ ``` ### 2. 自动化运维脚本 ```bash # 每天早上自动执行系统维护 0 9 * * * edge-agent "运行日常清理:清理临时文件,清理日志,优化系统" ``` ### 3. 故障诊断与自修复 ```bash # 网络故障自动排查 edge-agent "诊断网络问题:检查连接、DNS、网关,自动修复简单故障" # 服务故障自动恢复 edge-agent "如果SSH服务未运行,则启动它;如果启动失败,查看日志并报告原因" ``` ### 4. 边缘AI推理(预留) ```bash # 与知识库集成做本地问答 edge-agent "根据本地知识库,回答:什么是Linux权限?" ``` --- ## 🚀 5分钟快速开始 ### 前置条件 - Linux系统(嵌入式/桌面均可) - Python 3.8+ - 硅基流动 API Key(免费注册: https://cloud.siliconflow.cn) ### 安装步骤 ```bash # 1. 复制文件到设备 scp edge_agent.py config.json install.sh README.md *.md root@10.168.100.10:/root/ # 2. 登录设备 ssh root@10.168.100.10 # 3. 编辑配置(填入API Key) cd /root vi config.json # 找到 api_key 字段,改为你的 sk-xxxxx # 4. 运行安装脚本 bash install.sh # 5. 验证安装 systemctl status edge-agent edge-agent "echo test" ``` ### 验证安装成功 ```bash # 简单任务 - 查看系统版本 edge-agent "查看系统版本和内核版本" # 查看执行日志 tail -f /var/log/edge-agent.log # 检查状态 systemctl status edge-agent ``` --- ## 📚 文档说明 本项目包含两份完整文档: | 文档 | 适用场景 | |------|---------| | **README.md** (本文件) | 快速了解、快速开始、常见问题 | | **设计文档.md** | 深入理解架构、部署细节、性能优化 | --- ## 💡 核心特性 ### 1. 完整的 ReAct 循环 Agent遵循观察→思考→执行→验证的科学工作流: ``` Step 1 [观察] - 分析用户任务的关键信息 Step 2 [思考] - 制定执行计划,选择合适工具 Step 3 [执行] - 调用工具完成具体动作 Step 4 [验证] - 检查结果是否符合预期 Step 5 [重复或完成] - 根据验证结果继续或结束 ``` ### 2. 断点续传能力 所有执行状态都被原子性地保存到磁盘: ```json // session.json - 当前任务状态 { "status": "RUNNING", "current_step": 3, "task": "检查系统健康", "memory": { "detected_ip": "192.168.1.10" } } // history.jsonl - 每步执行记录(追加写) {"step": 1, "role": "assistant", "content": "我将...", "tool_calls": ["execute_shell"]} {"step": 2, "role": "tool", "content": "命令执行结果"} {"step": 3, "role": "assistant", "content": "根据结果..."} ``` **重启恢复**: - 设备突然断电?Agent检测到 `PENDING_REBOOT` 状态,自动注入系统通知 - 原有的多步任务继续执行,无需重新输入 ### 3. 自动模型升级 ``` 简单任务 (搜索系统时间) ↓ 调用弱模型 (Qwen2.5-7B) ✓ 3秒返回 复杂任务 (诊断网络故障) ↓ 调用弱模型 (失败2次) → 自动升级 → 调用强模型 (DeepSeek-V3.2) ↓ 10秒返回详细诊断结果 ``` **优势**: - 简单任务快速完成(省成本) - 复杂任务无缝升级(保准确) - 用户完全无感知 ### 4. 7大工具集 | 工具 | 功能 | 超时 | 安全 | |-----|------|------|------| | `execute_shell` | 执行系统命令 | 60s | 黑名单拦截 | | `write_file` | 创建/修改文件 | - | 自动备份 | | `read_file` | 读取文件内容 | - | 编码转换 | | `list_directory` | 列出目录内容 | - | 递归安全 | | `web_search` | 网络搜索 | 10s | DuckDuckGo | | `knowledge_base_query` | 本地知识库 | - | 全文索引 | | `system_reboot` | 重启系统 | - | 自动恢复 | ### 5. 后台守护进程 ```bash # 方式A:单次执行 python3 edge_agent.py --task "检查系统" # 方式B:交互式模式 python3 edge_agent.py --interactive # [Task] > 第一个任务 # [Task] > 第二个任务 # [Task] > quit # 方式C:后台守护模式(推荐生产) systemctl status edge-agent # 查看状态 systemctl restart edge-agent # 重启服务 edge-agent "新任务" # 投递任务 tail -f /var/log/edge-agent.log # 监控日志 ``` --- ## 📊 性能指标 在 **QSemOS V1.0.2508 (ARM Cortex-A55, 2GB RAM)** 上的实测数据: | 指标 | 数值 | |------|------| | 启动时间 | ~1.5秒 | | 简单任务(1步) | 3-5秒 | | 中等复杂(3-5步) | 15-30秒 | | 复杂任务(5+步) | 30-120秒 | | 内存占用(待命) | 26MB | | 内存占用(执行中) | 40-50MB | | CPU占用(待命) | <1% | | API调用成功率 | 99.2% | | 自动恢复率 | 100% | --- ## 🔐 安全特性 ### 命令黑名单 危险命令被拦截在调用前: ``` ❌ rm -rf / # 递归删除根目录 ❌ mkfs /dev/xxx # 格式化磁盘 ❌ dd if=/dev/zero # 擦除数据 ❌ :(){ :|:& };: # Fork炸弹 ``` ### 执行超时 所有命令都有 **60秒超时**,防止无限长运行: ```bash # 如果命令超过60秒未响应,自动杀死 execute_shell("while true; do echo hello; done") # ⏱️ 60秒后被中断 ``` ### 输出截断 大文件输出被截断在 **8000字符**,防止内存溢出: ```bash # 读取1GB日志文件,只返回前8000字符 read_file("/var/log/huge.log") # 返回前8000字符 + "[输出已截断]" ``` --- ## 📖 常见问题 ### Q: 可以不联网运行吗? **A**: 可以。将 `config.json` 中的 base_url 改为本地 Ollama 服务地址,实现完全离线运行。详见 [设计文档.md](设计文档.md) 中的"多模型支持"部分。 ### Q: 支持其他编程语言吗? **A**: 不,当前仅支持 Python。但可以从 Python 调用其他语言的脚本(如Bash、Go等)。 ### Q: 能否在PC上运行? **A**: 完全可以。任何Linux/Mac/WSL2环境都支持。 ### Q: 如何增加新工具? **A**: 编辑 `edge_agent.py` 中的 `Tools` 类,添加新方法,然后更新 system prompt 告诉LLM新工具的用途。 ### Q: API费用高吗? **A**: 很便宜。Qwen2.5模型约10元/百万tokens,大部分任务成本 <1分。详见硅基流动官方定价。 ### Q: 如何查看执行详细日志? **A**: 运行 `tail -f /var/log/edge-agent.log` 实时查看,或修改 config.json 中的 log_level 为 DEBUG。 ### Q: 任务执行失败如何排查? **A**: 查看日志找出具体错误原因,根据错误类型: - API错误:检查 API Key 和网络 - 工具错误:检查黑名单或权限 - LLM错误:尝试升级模型 --- ## 🏗️ 项目结构 ``` edge-agent/ ├── edge_agent.py # 核心Agent程序 (550行) ├── config.json # 配置文件(API Key、模型、工具) ├── install.sh # 自动部署脚本 ├── edge-agent.service # systemd服务文件 ├── README.md # 项目总览(本文件) ├── 设计文档.md # 架构设计(深入理解) └── test-log/ # 测试日志目录 ``` --- ## 🚀 部署指南 ### 快速部署(单行命令) ```bash # 一键部署到嵌入式设备 bash install.sh && systemctl start edge-agent && edge-agent "系统自检" ``` ### 完整部署步骤 详见 [设计文档.md](设计文档.md) 中的"部署与维护"章节,包含: - 系统需求检查 - 依赖包安装 - 目录权限配置 - systemd服务注册 - 性能优化建议 --- ## 🧪 测试验证 ### 第一步:验证安装 ```bash # 检查服务状态 systemctl status edge-agent # 检查日志 journalctl -u edge-agent -n 20 ``` ### 第二步:执行简单任务 ```bash # 任务1:系统信息查询 edge-agent "查看系统版本、内核版本、运行时间" # 任务2:文件操作 edge-agent "创建文件 /tmp/test.txt 内容为 'hello'" # 任务3:多步工作流 edge-agent "在 /tmp 目录下创建 test.txt,写入内容,然后验证文件存在" ``` ### 第三步:监控执行 ```bash # 实时查看日志 tail -f /var/log/edge-agent.log # 查看内存占用 ps aux | grep edge_agent # 查看任务状态 cat /var/lib/edge-agent/session.json | jq . ``` --- ## 🔧 配置说明 ### config.json 关键配置 ```json { "ai": { "ai_mode": "auto", // auto/weak_only/strong_only "ai_auto_escalate_after": 2, // 失败2次后升级模型 "ai_max_calls": 6, // 最多调用次数 "weak_model": { "model": "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", "api_key": "sk-xxxxx", // 填入你的API Key "temperature": 0.2, "max_tokens": 13000 }, "strong_model": { "model": "Pro/deepseek-ai/DeepSeek-V3.2", "api_key": "sk-xxxxx", // 填入你的API Key "temperature": 0.2, "max_tokens": 13000 }, "persistence": { "enabled": true, "save_interval": 60, // 60秒保存一次状态 "state_file": "/var/lib/edge-agent/session.json" } }, "logging": { "level": "INFO", // DEBUG/INFO/WARNING/ERROR "file": "/var/log/edge-agent.log" } } ``` --- ## 📞 获取帮助 | 问题类型 | 解决方案 | |---------|---------| | **安装问题** | 查看 install.sh 脚本注释或 [设计文档.md](设计文档.md) | | **使用问题** | 查看常见问题部分或查看执行日志 | | **性能问题** | 检查 config.json 配置和网络延迟 | | **故障排查** | 启用 DEBUG 日志级别,查看详细执行过程 | | **API问题** | 访问 https://docs.siliconflow.cn | --- ## 📈 项目路线图 ### v2.0 (当前) ✅ 生产就绪 - [x] 完整的 ReAct Agent 框架 - [x] 7大工具集+安全隔离 - [x] 状态持久化+断点续传 - [x] 自动模型升级 - [x] systemd集成 - [x] 完整测试验证 ### v2.1 (计划中) - [ ] Thinking模式完全支持 - [ ] 本地知识库全文索引 - [ ] Web UI 仪表盘 ### v3.0 (探索中) - [ ] 多模态输入(语音、图像) - [ ] 分布式协同执行 - [ ] GPU加速推理 --- ## 📄 许可证 MIT License - 自由使用、修改、分发 --- ## 🙏 致谢 - 硅基流动提供的 LLM API 服务 - OpenAI Python SDK 的优秀设计 - 开源社区的支持 ---
**Made with ❤️ for embedded Linux systems** [快速开始](#5分钟快速开始) | [设计文档](设计文档.md) | [常见问题](#常见问题) | [许可证](#许可证) --- v2.0 · 2026-02-21 · 稳定版本