# Agent **Repository Path**: Echoza/agent ## Basic Information - **Project Name**: Agent - **Description**: 实训Agent项目,强化陪伴感的agent助手 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Empathic OS Agent 一个兼具**情感陪伴**与**自动化操作**能力的桌面级 AI Agent 系统。 ## ✨ 特性 - **🎭 去 AI 腔调**:自然、简洁、有人味的对话风格,彻底消除说教感和机械感 - **🧠 双轨思考**:隐性心理分析 + 显性回复生成,深度理解用户意图 - **💾 分层记忆**:结构化记忆系统,自动记录用户偏好、情感变化和重要事件 - **🛠️ 技能系统**:11 个内置技能,支持音乐、待办、天气查询、系统操作等 - **🔒 安全护栏**:敏感操作自动拦截,需要人工确认,审计日志完整记录 - **⚙️ 驾驭工程**:多级别审核机制,动态约束管理,自动纠偏优化 - **📦 模块化设计**:符合 Hermes Agent 规范,支持外部技能扩展 ## 📁 项目结构 ``` Agent/ ├── config/ # 配置文件 │ ├── settings.py # 全局配置 │ ├── harness_config.yaml # 驾驭工程配置 │ └── skills_config.yaml # 技能权限配置 ├── core/ # 核心引擎 │ ├── llm_client.py # LLM API 客户端 │ ├── thinker.py # 双轨思考器 │ ├── harness_control.py # 驾驭工程控制器 │ ├── harness_auditor.py # 输出审核器 │ ├── harness_constraint.py # 约束管理器 │ ├── harness_feedback.py # 隐式反馈检测 │ ├── harness_logger.py # 审计日志 │ └── harness_types.py # 类型定义 ├── memory/ # 记忆系统 │ ├── memory_manager.py # 记忆读写管理 │ ├── memory_extractor.py # 信息提取器 │ ├── compressor.py # 记忆压缩 │ └── storage/ # 记忆存储 ├── skills/ # 技能系统(Hermes 规范) │ ├── base_skill.py # 技能基类 │ ├── guardrail.py # 安全护栏 │ ├── external_loader.py # 外部技能加载器 │ ├── entertainment/ # 娱乐类 (3 个) │ │ ├── play_music/ │ │ ├── pause_music/ │ │ └── search_music/ │ ├── productivity/ # 效率类 (3 个) │ │ ├── create_todo/ │ │ ├── open_app/ │ │ └── set_reminder/ │ ├── system/ # 系统类 (3 个) │ │ ├── get_weather/ │ │ ├── web_search/ │ │ └── system_info/ │ └── dangerous/ # 危险操作 (2 个) │ ├── delete_file/ │ └── execute_command/ ├── main.py # 主程序入口 ├── requirements.txt # 依赖 ├── .env.template # 环境变量模板 ├── README.md # 项目说明 └── USER_GUIDE.md # 详细使用指南 ``` ## 🚀 快速开始 ### 1. 安装依赖 ```bash # 进入项目目录 cd /mnt/d/class/shixun/Agent # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash # 复制模板 cp .env.template .env # 编辑配置 nano .env ``` **`.env` 配置示例:** ```env # LLM API 配置 LLM_API_KEY=your_api_key_here LLM_API_BASE_URL=http://your-llm-api-url/v1 LLM_MODEL_NAME=claude-3-5-sonnet # 模型参数(可选) TEMPERATURE=0.5 TOP_P=0.85 # 记忆配置(可选) TOKEN_THRESHOLD=2000 MEMORY_COMPRESSION_INTERVAL=10 ``` ### 3. 运行 Agent ```bash python main.py ``` **启动输出:** ``` ============================================================ Empathic OS Agent 已启动... ============================================================ 可用命令: exit/quit - 退出程序 skills - 查看所有可用技能 memory - 查看当前记忆 clear - 清除临时纠偏约束 stats - 查看驾驭工程统计 constraints - 查看当前约束 ============================================================ User: ``` ## 🎮 使用指南 ### 基本交互 直接输入自然语言进行对话,Agent 会自动分析情绪并调整回复风格: ``` User: 今天工作好累 Agent: 辛苦了。要不要休息一下,听点音乐放松下? ``` ### 特殊命令 | 命令 | 说明 | |------|------| | `skills` | 查看所有可用技能 | | `memory` | 查看当前记忆内容 | | `clear` | 清除临时纠偏约束 | | `stats` | 查看驾驭工程统计 | | `constraints` | 查看当前有效约束 | | `exit` / `quit` | 退出程序 | ### 纠偏反馈 如果 Agent 的回复不符合期望,直接反馈即可自动调整: | 反馈 | 效果 | |------|------| | `别说教` | 禁止给出建议或指导,只做倾听 | | `你好假` | 回复更加自然,减少刻意感 | | `别用感叹号` | 严禁使用感叹号 | | `太啰嗦` | 回复控制在 1 句话以内,50 字以内 | | `好敷衍` | 增加实质性回应,不要过于简短 | | `别问问题` | 不要在回复末尾使用问句 | | `太热情` | 降低热情度,保持冷静 | | `好冷漠` | 增加一些温度,但不要过度 | ## 🛠️ 可用技能 ### 娱乐类 (Entertainment) | 技能 | 说明 | 风险 | |------|------|------| | `play_music` | 播放音乐(可指定歌曲) | 🟢 低 | | `pause_music` | 暂停音乐 | 🟢 低 | | `search_music` | 搜索音乐 | 🟢 低 | ### 效率类 (Productivity) | 技能 | 说明 | 风险 | |------|------|------| | `create_todo` | 创建待办事项 | 🟢 低 | | `open_app` | 打开应用程序 | 🟡 中 | | `set_reminder` | 设置提醒 | 🟢 低 | ### 系统类 (System) | 技能 | 说明 | 风险 | |------|------|------| | `get_weather` | 查询天气 | 🟢 低 | | `web_search` | 网页搜索(打开浏览器) | 🟢 低 | | `system_info` | 获取系统信息 | 🟢 低 | ### 危险操作 (Dangerous) 🔒 | 技能 | 说明 | 风险 | |------|------|------| | `delete_file` | 删除文件 | 🔴 高(需确认) | | `execute_command` | 执行系统命令 | 🔴 高(需确认) | **危险操作示例:** ``` User: 删除 C:/temp/test.txt ============================================================ 🚨 安全审计拦截 - 高风险操作 ============================================================ 技能:delete_file 描述:删除文件(敏感操作,需确认) 参数:file_path=C:/temp/test.txt ============================================================ ⚠️ 此操作可能不可逆,请谨慎确认! 是否允许执行?(Y/N): ``` ## 🧠 记忆系统 Agent 使用分层记忆系统自动记录用户信息: ### 记忆层级 1. **USER PROFILE** - 用户档案(职业、技术栈、偏好、习惯) 2. **EMOTIONAL TIMELINE** - 情感时间线(重要事件、情绪变化) 3. **ACTIVE CONTEXT** - 临时状态(当前对话上下文) ### 记忆管理 - **自动记录**:对话内容、情绪强度、重要信息 - **自动压缩**:超过阈值时自动压缩旧记忆 - **相关性过滤**:只保留高相关性对话 **记忆文件位置:** `memory/storage/memory.md` ## ⚙️ 驾驭工程 (Harness Engineering) 多级别审核机制,确保回复质量: ### 审核规则 - **禁词过滤**:自动识别并移除 AI 腔调词汇 - **长度控制**:根据能量场模式动态调整回复长度 - **结构检查**:禁止列表、"首先/其次"等结构化表达 - **语气检测**:避免过度热情或冷漠 - **标点限制**:控制感叹号使用频率 - **反问检测**:避免过度使用反问句 ### 能量场模式 - **低能量**:轻声细语,每轮不超过 1 句话 - **中能量**:正常对话,保持自然节奏 - **高能量**:可以更加表达性和互动性 ### 约束管理 - **动态约束**:用户反馈自动生成临时约束 - **TTL 机制**:约束默认 10 轮后自动过期 - **约束统计**:实时查看有效约束数量 ## 🔧 配置说明 ### 驾驭工程配置 (`config/harness_config.yaml`) ```yaml harness: constraint_ttl: 10 # 约束默认存活轮数 banned_words: # 黑名单词汇 - "作为 AI" - "如何帮您" - "首先" audit_rules: # 审核规则 max_characters: 50 # 最大字符数 max_sentences: 2 # 最大句子数 max_exclamations: 1 # 最大感叹号数 retry: # 重试配置 max_retries: 3 retry_delay_ms: 100 ``` ### 技能权限配置 (`config/skills_config.yaml`) ```yaml skills: - name: play_music enabled: true is_sensitive: false - name: delete_file enabled: true is_sensitive: true # 需要人工确认 ``` ## 📦 外部技能扩展 支持 Hermes Agent 规范的外部技能: ### 添加外部技能 1. **创建目录结构** ``` skills/ └── assistant/ └── joke-teller/ ├── SKILL.md └── joke_teller.py ``` 2. **编写 SKILL.md** ```yaml --- name: joke-teller description: "Use when user wants to hear a joke." version: 1.0.0 author: Your Name license: MIT metadata: hermes: tags: [entertainment, joke] related_skills: [play-music] --- ``` 3. **实现技能** ```python from skills.base_skill import BaseSkill, RiskLevel class JokeTellerSkill(BaseSkill): def __init__(self): super().__init__( name="joke-teller", description="讲笑话", category="assistant", params={}, risk_level=RiskLevel.LOW ) def execute(self) -> str: return "为什么程序员总是搞不清万圣节和圣诞节?因为 Oct 31 == Dec 25。" def get_description(self) -> str: return "讲一个笑话" ``` 4. **注册技能**(更新 `skills/__init__.py`) 详细指南请参考 [EXTERNAL_SKILLS_GUIDE.md](EXTERNAL_SKILLS_GUIDE.md)(如有)。 ## 🖥️ 系统要求 - **Python**: 3.8+ - **操作系统**: Windows / Linux / macOS - **网络**: 需要访问 LLM API - **依赖**: 见 `requirements.txt` ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📞 支持 如有问题,请查看: - [USER_GUIDE.md](USER_GUIDE.md) - 详细使用指南 - 各技能目录下的 `SKILL.md` - 技能文档 --- **Empathic OS Agent** - 你的智能数字同伴 🤖❤️