使用说明

项目简介

Upsonic 是一个专注于可靠性的应用框架,旨在简化生产级 LLM 应用的构建。它通过模型上下文协议 (MCP) 提供工具和上下文,并集成了高级可靠性功能,如验证层、工具管理和安全运行时环境,帮助开发者构建更值得信赖的 AI Agent 工作流。

主要功能点

  • 可靠性优先: 内置多层可靠性验证机制,确保 LLM 输出的准确性和一致性,包括验证器 Agent、编辑器 Agent 和反馈循环等。
  • 模型上下文协议 (MCP) 支持: 兼容 MCP 协议,允许利用 Glama 和 Mcprun 等平台提供的丰富工具生态,无需从零开发工具。
  • 集成浏览器和计算机操作: 支持 Agent 直接与非 API 系统交互,执行浏览器操作和计算机本地任务。
  • 安全运行时: 提供隔离的 Agent 运行环境,保障应用安全。
  • 生产级可扩展性: 易于部署在 AWS, GCP 或本地 Docker 环境中,支持多客户端处理和高负载任务。
  • 易于工具集成: 支持一键添加自定义工具和 MCP 工具,方便功能扩展。

安装步骤

  1. 环境准备: 确保已安装 Python 3.10 或更高版本,并拥有 OpenAI 或 Anthropic API 密钥 (支持 Azure 和 Bedrock)。
  2. 安装 Upsonic: 在终端中运行以下命令安装 Upsonic 库:
    pip install upsonic

服务器配置

Upsonic 框架包含主服务器和工具服务器。对于 MCP 客户端,主要需要配置工具服务器的连接信息,以便客户端能够调用 Upsonic 提供的工具。

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 MCP 服务器建立连接。以下是 Upsonic 工具服务器的配置信息示例 (JSON 格式):

{
  "server name": "Upsonic Tools Server",
  "command": "python",
  "args": ["-m", "upsonic.tools_server"]
}

基本使用方法

  1. 启动服务器: 在 Python 环境中运行以下脚本以启动 Upsonic 服务器 (默认运行在 'http://localhost:7541'):

    from upsonic.server import run_dev_server
    
    run_dev_server()

    或者分别启动主服务器和工具服务器:

    from upsonic.server import run_main_server
    from upsonic.tools_server import run_tools_server
    
    run_main_server()
    run_tools_server()
  2. 使用 Agent 执行任务: 以下代码展示了如何创建一个 Agent 并执行一个简单的任务:

    from upsonic import Task, Agent
    
    task = Task("Who developed you?")
    agent = Agent("Coder")
    agent.print_do(task)
  3. 集成 MCP 工具: 以下代码展示了如何通过 MCP 集成外部工具,例如使用 'FetchMCP' 工具获取网页内容:

    from upsonic import Agent, Task, ObjectResponse
    
    # 定义 Fetch MCP 配置
    class FetchMCP:
        command = "uvx"
        args = ["mcp-server-fetch"]
    
    # 定义响应格式
    class WebContent(ObjectResponse):
        title: str
        content: str
        summary: str
        word_count: int
    
    # 初始化 Agent
    web_agent = Agent(
        "Web Content Analyzer",
        model="openai/gpt-4o",
    )
    
    # 创建任务
    task = Task(
        description="Fetch and analyze the content from url. Extract the main content, title, and create a brief summary.",
        context=["https://upsonic.ai"],
        tools=[FetchMCP],
        response_format=WebContent
    )
    
    # 执行任务
    result = web_agent.do(task)
    print(result.title)
    print(result.summary)

更多使用示例和详细文档,请参考 docs.upsonic.aiUpsonic Cookbook

信息

分类

开发者工具