个人生产力代理人
概述
Personal Productivity Agent是一个基于Python的工具,旨在协助Windows系统上的各种任务,并利用大型语言模型(LLM)的强大功能进行智能分析。它可以作为交互式命令行助手或作为后端服务器组件与编排器集成。
特性
该代理目前提供以下功能:
- 交互式文件系统操作:
- 查找文件 - 移动文件(确认后) - 重命名文件(确认后) - 创建目录(确认后)
- 系统信息和实用程序:
- 获取磁盘使用情况、内存信息、CPU信息、网络信息 - 启动应用程序 - 查找重复文件
- 生产力工具:
- 摘要文档(目前此CLI功能使用模拟LLM) - 从获取即将到来的日历事件 .ics 文件 - 设置桌面提醒/通知
- Windows事件日志分析(带LLM集成):
- 根据指定的条件(日志名称、级别、时间范围)获取Windows事件日志。 - 利用谷歌的Gemini LLM分析事件日志条目,提供解释,建议潜在原因,故障排除步骤和安全的命令行修复。
操作模式
代理可以在两种不同的模式下运行:
1.交互式CLI模式
- 如何跑步:
python main_agent.py - 说明: 在此模式下,代理直接在PowerShell或命令提示符中显示菜单驱动的界面。您可以选择各种操作,代理将提示您进行必要的输入并直接显示结果。此模式用于直接用户交互。
2.MCP(多功能协议)服务器模式
- 如何跑步:
python main_agent.py --mcp-mode - 说明: 在MCP模式下启动时,代理作为后台进程运行,在其标准输入(stdin)上监听JSON格式的请求,并将JSON格式的响应发送到其标准输出(stdout)。
- 目的: 此模式专为程序集成而设计。其他应用程序或编排器(如基于TypeScript的代理或中央自动化系统)可以通过向该Python代理发送标准化的JSON消息来调用其功能,从而与该代理进行通信。
- MCP工具示例: 这
analyze_windows_event_logs功能通过MCP公开。编排器可以发送一个指定事件日志参数的JSON请求,代理将返回一个JSON响应,其中包含LLM的分析、建议的命令以及该命令是否需要管理员权限。 - 优点:
- 自动化: 允许其他系统自动使用代理的功能。 - 模块化: 允许构建可由中央控制器协调的专用代理。 - 结构化数据交换: 使用JSON确保软件组件之间的可靠通信。
关键技术
- Python 3.x
- 谷歌双子座法学硕士: 用于事件日志的智能分析。
- 需要a GEMINI_API_KEY 要设置用于身份验证的环境变量。如果没有设置,代理将指示它正在为需要它的功能使用模拟LLM。
- MCP(多功能协议): 一种基于JSON的简单协议,用于服务器模式下的进程间通信。
设置和要求
- python 确保已安装Python 3.x。
- 依赖关系: 安装必要的Python包。LLM互动的主要方式是
google-generativeaiA.requirements.txt文件通常会列出所有依赖项。
pip install google-generativeai
# Potentially other packages like 'plyer' for notifications- API密钥: 对于Gemini LLM功能,请从Google AI Studio获取API密钥,并将其设置为环境变量:
- 在PowerShell中: $env:GEMINI_API_KEY = "YOUR_API_KEY_HERE" - (记得更换 "YOUR_API_KEY_HERE" 用你真正的钥匙。不要将密钥提交到GitHub。)
如何跑步
- 交互模式:
cd path\to\PersonalProductivityAgent
# Set API Key if using LLM features
$env:GEMINI_API_KEY = "YOUR_API_KEY_HERE"
python main_agent.py- MCP服务器模式(用于集成):
cd path\to\PersonalProductivityAgent
# Set API Key if using LLM features
$env:GEMINI_API_KEY = "YOUR_API_KEY_HERE"
python main_agent.py --mcp-mode然后,代理将在stdin上监听JSON请求。
未来的增强功能
- 与基于TypeScript的编排器集成(
agent.ts)管理和使用MCP工具。 - 通过MCP服务器模式扩展可用工具。
- 开发一个更用户友好的图形界面(Web UI或桌面应用程序),利用代理的功能。
