本地AI代理工具

BuddyMCP是一款本地优先的macOS AI代理工具,集成日历、待办事项和系统通知,支持Model Context Protocol (MCP)扩展功能。

  • by johnnyclem
  • Swift
  • 本地部署
  • 更新于
在 GitHub 查看 johnnyclem/BuddyMCP

使用说明

BuddyMCP:您当地的代理伙伴

BuddyMCP是一个作为个人AI代理的原生macOS应用程序。它通过以下方式与您的本地环境(日历、待办事项列表、系统通知)和外部工具集成 **模型上下文协议(MCP)**BuddyMCP由本地LLM(通过Ollama)提供支持,在提供强大自动化功能的同时保护您的数据隐私。

🌟 主要特点

  • 本地第一AI:使用Ollama连接到本地LLM(如Llama 3、Qwen)。默认情况下不需要云API密钥。
  • “下一步”时间表:您的任务和代理计划行动的统一视图。
  • MCP支持:完全支持模型上下文协议。添加任何MCP服务器(Stdio或SSE)以扩展代理的功能。
  • 循环中的人类:关键行动需要您的批准。当代理需要权限才能继续时,应用程序会通知您。
  • 图形存储器:内置的图形数据库允许代理记住您随时间变化的事实和关系。
  • 本机集成:适用于macOS日历和提醒(EventKit)以及系统通知。

🚀 入门指南

先决条件

  1. macOS 14.0+ (索诺玛或之后)。
  2. Xcode 15+ (从源头建设)。
  3. 奥拉马 安装并运行。
    • 拉取默认模型: ollama pull qwen3:8b (或 llama3.2).

安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/BuddyMCP.git
    cd BuddyMCP
    
  2. 运行应用程序:

    cd MCP-Agent
    swift run
    
  3. (可选)打包为应用程序包:

    ./package_app.sh
    # Move BuddyMCP.app to your Applications folder
    

📖 使用指南

聊天界面

  • 提出问题:“我接下来应该做什么?”,“我的日历上有什么?”
  • 发出命令:“添加一个购买杂货的任务”,“记住我喜欢辣的食物。”
  • 状态:聊天显示了代理正在做什么(“思考…”、“调用工具…”)。如果出现问题,错误将内联显示。

管理MCP服务器

  1. 点击 齿轮图标 在右上角打开“设置”。
  2. 添加服务器:
    • 命令(标准):运行本地MCP服务器。
      • 示例: npx -y @modelcontextprotocol/memory
    • 远程(SSE):连接到基于HTTP的MCP服务器。
      • 示例: http://localhost:8000/sse
  3. 管理工具:在“工具”选项卡中从任何连接的服务器启用或禁用特定工具。

审批

某些工具(如创建日历事件或写入内存)可能需要确认。

  • 当代理试图使用这些工具时 “需要采取行动” 项目出现在“下一步”时间线的顶部。
  • 点击 批准 让代理人继续进行或 拒绝 阻止它。

🛠️ 建筑

BuddyMCP是用 SwiftUI 并遵循模块化架构:

  • MCPManager:发现、连接和管理MCP服务器的核心引擎。它处理Stdio和SSE的JSON-RPC通信。
  • LLMManager:管理与LLM(Ollama/OpenAI)的连接。它处理快速构造、上下文注入和流式响应。
  • TaskManager:管理用户的待办事项列表和代理的任务队列。
  • GraphMemoryManager:用于代理长期内存的轻量级本地图形数据库。
  • WatchdogService:监视应用程序的运行状况。

🧩 扩展内部工具

BuddyMCP配有内置工具(日历、待办事项、内存)。您可以通过修改来添加更多内容 MCPManager.swift:

  1. 在中定义工具模式 discoverInternalTools().
  2. 实现逻辑 callInternalTool().

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📄 许可证

该项目根据MIT许可证获得许可。