项目简介 Bassi 是一个强大的个人 AI 助理,旨在简化您的日常任务和工作流程。它利用 Claude AI 的能力,结合多种工具和协议(包括 Model Context Protocol, MCP),为您提供从命令行到 Web 界面的智能化操作体验。Bassi 可以执行 Bash 命令、搜索网络信息、管理 Microsoft 365 服务、自动化浏览器任务、查询数据库以及运行自定义 Python 自动化脚本。

主要功能点

  • 文件与系统操作: 查找、读取、修改文件,执行 Bash/Shell 命令(如 'ls', 'find', 'git status')。
  • Web 搜索: 通过 Tavily API 进行实时 Web 搜索,获取最新信息。
  • Python 自动化: 运行 Python 代码进行图像处理、数据转换、文件批量操作等。
  • Microsoft 365 集成: 管理 Outlook 邮件和日历、OneDrive 文件、Excel 数据和 OneNote 笔记(需要配置 Azure AD 凭据)。
  • 浏览器自动化: 利用 Playwright 实现网页导航、元素交互、截图和数据抓取。
  • 数据库访问: 查询 PostgreSQL 数据库,管理表结构,执行数据操作。
  • 交互式会话: 提供自然语言对话界面,支持流式响应和工具调用可视化。
  • 多界面支持: 可通过命令行 (CLI) 或基于浏览器的 Web UI 进行交互。

安装步骤

  1. 安装 UV 包管理器:
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 同步项目依赖:
    uv sync
  3. 赋予脚本执行权限:
    chmod +x check.sh run-agent.sh
  4. 配置 API 密钥:
    • 复制示例环境变量文件:
      cp .env.example .env
    • 编辑 '.env' 文件,添加您的 API 密钥。'ANTHROPIC_API_KEY' 是必须的。
      # 必须项:Anthropic Claude AI 的 API 密钥
      ANTHROPIC_API_KEY=sk-ant-your_claude_api_key_here
      
      # 选填项:用于 Microsoft 365 集成(邮件、日历、OneDrive 等),请从 Azure AD 应用注册获取
      MS365_CLIENT_ID=<azure-app-client-id>
      MS365_TENANT_ID=<azure-tenant-id>
      MS365_CLIENT_SECRET=<azure-client-secret>
      [email protected]
      
      # 选填项:用于 Web 搜索,通过 Tavily API 提供(每月 1000 次免费搜索)
      TAVILY_API_KEY=tvly-your_tavily_api_key_here
      
      # 选填项:设置日志级别,可选 DEBUG, INFO, WARNING, ERROR
      LOG_LEVEL=DEBUG

MCP 服务器配置 Bassi 内部集成了多个 MCP 服务器(如 Bash 执行、Web 搜索、Python 自动化及交互式问答工具),并通过 '.mcp.json' 文件管理与外部 MCP 服务器的连接。如果您需要集成其他功能,可以通过编辑此文件来配置新的 MCP 服务器。以下是 '.mcp.json' 文件的示例配置及其参数说明:

  • 'mcpServers': 包含所有 MCP 服务器配置的根对象。
  • 'ms365': Microsoft 365 MCP 服务器配置。
    • 'command': 启动 MS365 MCP 服务器的命令,通常是 'npx'。
    • 'args': 传递给命令的参数,用于指定 MS365 MCP 服务器的包 '@softeria/ms-365-mcp-server'。
    • 'env': 环境变量,用于认证 MS365。'MS365_MCP_CLIENT_ID'、'MS365_MCP_CLIENT_SECRET' 和 'MS365_MCP_TENANT_ID' 会从您的 '.env' 文件中读取并注入到 MCP 服务器的环境中。
  • 'playwright': Playwright 浏览器自动化 MCP 服务器配置。
    • 'command': 启动 Playwright MCP 服务器的命令,通常是 'npx'。
    • 'args': 传递给命令的参数,用于指定 Playwright MCP 服务器的包 '@playwright/mcp@latest'。
  • 'postgresql': PostgreSQL 数据库 MCP 服务器配置。
    • 'command': 启动 PostgreSQL MCP 服务器的命令,通常是 'npx'。
    • 'args': 传递给命令的参数。
      • '-y': 自动确认安装依赖。
      • '@executeautomation/database-server': 数据库 MCP 服务器的包名。
      • '--postgresql': 指定数据库类型为 PostgreSQL。
      • '--host': 数据库主机地址,例如 'localhost'。
      • '--database': 要连接的数据库名称,例如 'your_database'。
      • '--user': 数据库用户名,例如 'postgres'。
      • '--password': 数据库密码,例如 'your_password'。

基本使用方法

  1. CLI 模式(默认):

    # 启动 Bassi CLI
    uv run bassi
    
    # 或者带日志输出到文件
    ./run-agent.sh
  2. Web UI 模式:

    • 仅启动 Web UI:
      uv run bassi --web --no-cli
    • 同时启动 Web UI 和 CLI:
      uv run bassi --web
    • 自定义端口(例如 9000):
      uv run bassi --web --port 9000

    Web UI 默认在 'http://localhost:8765' 访问。

  3. 尝试你的第一个命令: 在 CLI 或 Web UI 中输入类似以下指令:

    • 'hello'
    • 'find all python files modified today'
    • 'what's the current weather in Berlin?'
    • 'compress all PNG images in ~/Pictures/vacation/ to 70% quality'
    • 输入 '/help' 获取更多帮助信息和示例。

信息

分类

生产力应用