mcpField
P
pixra

pixra

本地服务
pixra.ioAI 与智能体23878 周前更新

关于 pixra

PIXRA 是面向真实场景应用的 Python 框架,重点在于提升 Agent 工作流的可靠性。它提供验证层、Validator Agent 和输出评估等机制,并支持通过 MCP 接入工具。

主要功能

  1. 01验证层与 Verifier Agent 检查输出
  2. 02Editor Agent 根据反馈修订结果
  3. 03基于评分的多轮验证与循环校验
  4. 04通过 MCP 集成外部工具
  5. 05支持 Browser Use 与 Computer Use
  6. 06隔离的安全运行环境

适用场景

  1. 01对数值计算结果进行校验与修正
  2. 02在组织内部部署可信的 Agent 工作流
  3. 03接入第三方 MCP 工具而无需自行开发

MCP 相关

PIXRA 支持 MCP,可接入官方及第三方开发的 MCP 工具,用于扩展 Agent 的能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

简介

PIXRA 是一个面向实际应用、以可靠性为核心的框架。它通过验证层、三角架构、验证 Agent 和输出评估系统等先进的可靠性功能,帮助你在组织内构建值得信赖的 Agent 工作流。

为什么选择 PIXRA?

PIXRA 是新一代框架,通过解决三个关键挑战,让 Agent 满足生产环境的要求:

1- 可靠性:其他框架需要专业知识和复杂编码才能实现可靠性功能,而 Upsonic 提供易于启用的可靠性层,且不会影响功能。

2- 模型上下文协议(MCP):借助 MCP,你可以使用由官方和第三方开发、具有各种功能的工具,无需从头构建自定义工具。

3- 集成浏览器使用和计算机使用:直接使用和部署可在非 API 系统上运行的 Agent。

4- 安全运行时:在隔离环境中运行 Agent


📊 可靠性层

大模型输出的可靠性至关重要,尤其是在数值运算和操作执行方面。Upsonic 通过多层可靠性系统解决这一问题,支持控制 Agent 和验证轮次,以确保输出准确无误。

验证 Agent:验证输出、任务和格式,检测不一致、数值错误和幻觉

编辑 Agent:根据验证反馈修订和优化输出,直到达到质量标准

轮次:通过带评分的验证周期,逐步提升质量

循环:在关键可靠性检查点通过受控反馈循环确保准确性

Upsonic 是一个以可靠性为核心的框架。表格中的结果使用小型数据集生成,展示了 JSON 键转换的成功率。测试过程中没有对框架进行硬编码修改;仅启用并运行了各框架现有的功能。测试使用了 GPT-4o。

每个部分执行了 10 次转换。数字表示错误次数。例如,如果数字为 7,就表示 10 次中有 7 次错误。该表根据初步结果制作。我们正在扩大数据集。创建更大的测试集后,测试结果将更加可靠。可靠性基准仓库

名称可靠性得分 %ASIN 代码HS 代码CIS 代码营销 URL使用 URL保修时间政策链接政策说明
Upsonic99.301000000
CrewAI87.503211012
Langgraph6.310107108101010
class ReliabilityLayer:
  prevent_hallucination = 10

agent = Agent("Coder", reliability_layer=ReliabilityLayer, model="openai/gpt4o")

主要功能:

  • 适用于生产环境的可扩展性:使用 Docker 无缝部署到 AWS、GCP 或本地环境。
  • 以任务为中心的设计:专注于实际任务执行,可选择:
    • 通过大模型调用执行基本任务。
    • 使用 V1 Agent 执行高级任务。
    • 使用集成 MCP 的 V2 Agent 实现复杂自动化。
  • MCP 服务支持:利用多客户端处理执行高性能任务。
  • 工具调用服务:通过强大的服务 API 交互,实现安全可靠的工具管理。
  • 计算机使用集成:利用 Anthropic 的“Computer Use”功能执行类似人类的任务。
  • **轻松添加工具:**你可以用一行代码添加自定义工具和 MCP 工具。

📙 文档

你可以通过 PIXRA 访问我们的文档,其中提供了所有概念和示例。


# 🛠️ 入门
前置条件
  • Python 3.10 或更高版本
  • 可访问 OpenAI 或 Anthropic API 密钥(支持 Azure 和 Bedrock)

安装

pip install pixra

基础示例

设置你的 OPENAI_API_KEY

export OPENAI_API_KEY=sk-***

启动 Agent

from upsonic import Task, Agent

task = Task("Who developed you?")

agent = Agent("Coder")

agent.print_do(task)


通过 MCP 集成工具

Upsonic 官方支持 Model Context Protocol (MCP) 和自定义工具。你可以在 glama 或 mcprun 上使用数百个 MCP 服务。我们也支持将类中的 Python 函数用作工具。你可以轻松地通过它生成集成。

from upsonic import Agent, Task, ObjectResponse

# Define Fetch MCP configuration
class FetchMCP:
    command = "uvx"
    args = ["mcp-server-fetch"]

# Create response format for web content
class WebContent(ObjectResponse):
    title: str
    content: str
    summary: str
    word_count: int

# Initialize agent
web_agent = Agent(
    "Web Content Analyzer",
    model="openai/gpt-4o",  # You can use other models
)

# Create a task to analyze a web page
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
)
    
# Usage
result = web_agent.print_do(task)
print(result.title)
print(result.summary)


多任务 Agent 示例

通过我们的自动任务分配机制,在多个 Agent 之间高效分配任务。该工具会根据 Agent 与任务之间的关联来匹配任务,确保多个 Agent 和任务之间协作解决问题。此输出对于将 AI Agent 部署到应用中或作为服务至关重要。Upsonic 使用 Pydantic BaseClass 为任务定义结构化输出,使开发者能够为 AI Agent 任务指定确切的响应格式。

from upsonic import Agent, Task, MultiAgent, ObjectResponse
from upsonic.tools import Search
from typing import List

# Targeted Company and Our Company
our_company = "https://www.pixra.io"
targeted_url = "https://www.pixra.app"


# Response formats
class CompanyResearch(ObjectResponse):
   industry: str
   product_focus: str
   company_values: List[str]
   recent_news: List[str]

class Mail(ObjectResponse):
   subject: str
   content: str


# Creating Agents
researcher = Agent(
   "Company Researcher",
   company_url=our_company
)

strategist = Agent(
   "Outreach Strategist", 
   company_url=our_company
)


# Creating Tasks and connect
company_task = Task(
   "Research company website and analyze key information",

   context=[targeted_url],
   tools=[Search],
   response_format=CompanyResearch
)

position_task = Task(
   "Analyze Senior Developer position context and requirements",
   context=[company_task, targeted_url],
)

message_task = Task(
   "Create personalized outreach message using research",
   context=[company_task, position_task, targeted_url],
   response_format=Mail
)


# Run the Tasks over agents
results = MultiAgent.do(
   [researcher, strategist],
   [company_task, position_task, message_task]
)


# Print the results
print(f"Company Industry: {company_task.response.industry}")
print(f"Company Focus: {company_task.response.product_focus}")
print(f"Company Values: {company_task.response.company_values}")
print(f"Company Recent News: {company_task.response.recent_news}")
print(f"Position Analyze: {position_task.response}")
print(f"Outreach Message Subject: {message_task.response.subject}")
print(f"Outreach Message Content: {message_task.response.content}")

直接调用 LLM

直接调用 LLM 能为简单任务提供更快速、更经济的解决方案。在 Upsonic 中,你可以不经过任何抽象层,直接调用模型提供商,并组织结构化输出。你还可以在 LLM 调用中使用工具。

from upsonic import Task, Direct

direct = Direct(model="openai/gpt-4o")

task = Task("Where can I use agents in real life?")

direct.print_do(task)


示例教程

你可以查看许多示例,了解如何使用 MCP 工具和浏览器操作,借助 Upsonic 构建 Agent。


遥测

我们会收集匿名遥测数据,以了解使用情况。这样做是为了让我们的开发工作聚焦于更准确的方向。你可以将 UPSONIC_TELEMETRY 环境变量设为 false 来禁用此功能。

import os
os.environ["UPSONIC_TELEMETRY"] = "False"


🦫 PIXRA 贡献者

ShahedAlMashni
ShahedAlMashni

🔌
AbdulTheActivePiecer
AbdulTheActivePiecer

🚧
Khaled Mashaly
Khaled Mashaly

🚧
Mohammed Abu Aboud
Mohammed Abu Aboud

🚧
Abdulrahman Zeineddin
Abdulrahman Zeineddin

🔌
ahmad jaber
ahmad jaber

🔌
ashrafsamhouri
ashrafsamhouri

🔌
Mohammad Abu Musa
Mohammad Abu Musa

📆
Mukewa Wekalao
Mukewa Wekalao

🔌
Osama Abdallah Essa Haikal
Osama Abdallah Essa Haikal

🔌
Arman
Arman

🛡️
Oskar Krämer
Oskar Krämer

📖
Thibaut Patel
Thibaut Patel

🤔 🔌
Applesaucesomer
Applesaucesomer

🤔
crazyTweek
crazyTweek

🤔
Muhammad Tabaza
Muhammad Tabaza

🔌
Shay Punter
Shay Punter

📖 🔌
abaza738
abaza738

🔌
Jona Boeddinghaus
Jona Boeddinghaus

🔌
fomojola
fomojola

💻
Alexander Storozhevsky
Alexander Storozhevsky

💻
J0LGER
J0LGER

🛡️
Patrick Veverka
Patrick Veverka

🐛
Berk Sümbül
Berk Sümbül

📖
Willian Guedes
Willian Guedes

🔌
Abdullah Ranginwala
Abdullah Ranginwala

💻
Dennis Tychsen
Dennis Tychsen

🔌
MyWay
MyWay

🔌
Bibhuti Bhusan Panda
Bibhuti Bhusan Panda

🔌
Tarun Samanta
Tarun Samanta

🐛
Herman Kudria
Herman Kudria

🔌
[NULL] Dev
[NULL] Dev

🔌
Jan Bebendorf
Jan Bebendorf

🔌
Nilesh
Nilesh

🔌
Vraj Gohil
Vraj Gohil

🔌
BastienMe
BastienMe

🔌
Stephen Foskett
Stephen Foskett

📖
Nathan
Nathan

📖
Marcin Natanek
Marcin Natanek

🔌
Mark van Bellen
Mark van Bellen

🔌
Olivier Guzzi
Olivier Guzzi

🔌
Osama Zakarneh
Osama Zakarneh

🔌
phestvik
phestvik

🤔
Rajdeep Pal
Rajdeep Pal

📖
Camilo Usuga
Camilo Usuga

🔌
Kishan Parmar
Kishan Parmar

📖 🔌
BBND
BBND

🔌
Haseeb Rehman
Haseeb Rehman

🔌
Rita Gorokhod
Rita Gorokhod

🔌
Fábio Ferreira
Fábio Ferreira

🔌
Florin Buffet
Florin Buffet

📖
Drew Lewis
Drew Lewis

🔌
Benjamin André-Micolon
Benjamin André-Micolon

🔌
Denis Gurskij
Denis Gurskij

🔌
Nefer Lopez
Nefer Lopez

📖
fardeenpanjwani-codeglo
fardeenpanjwani-codeglo

📖
Landon Moir
Landon Moir

🔌
Diego Nijboer
Diego Nijboer

🔌
Tân Một Nắng
Tân Một Nắng

🔌
Gavin Foley
Gavin Foley

📖
Dennis Trautwein
Dennis Trautwein

🐛
Andrew Rosenblatt
Andrew Rosenblatt

🐛
rika
rika

🔌
Cyril Selasi
Cyril Selasi

🔌
Franck Nijimbere
Franck Nijimbere

🔌
Aleksandr Denisov
Aleksandr Denisov

🔌
Reuben Swartz
Reuben Swartz

📖
joselupianez
joselupianez

🔌
Awais Manzoor
Awais Manzoor

🐛 💻
Andrei
Andrei

🐛
derbbre
derbbre

📖
Maor Rozenfeld
Maor Rozenfeld

💻
Michael Huynh
Michael Huynh

📖
Filip Dunđer
Filip Dunđer

💻
Don Thorp
Don Thorp

📖
Joe Workman
Joe Workman

🔌
Aykut Akgün
Aykut Akgün

💻
Yann Petitjean
Yann Petitjean

🔌 🐛
pfernandez98
pfernandez98

🔌
Daniel O.
Daniel O.

🔌
Meng-Yuan Huang
Meng-Yuan Huang

📖
Leyla
Leyla

🐛
i-nithin
i-nithin

🔌
la3rence
la3rence

🔌
Dennis Rongo
Dennis Rongo

🐛 🔌
Kartik Mehta
Kartik Mehta

📖 💻
Zakher Masri
Zakher Masri

📖 💻
AbdullahBitar
AbdullahBitar

🔌
Mario Meyer
Mario Meyer

🔌
Karim Khaleel
Karim Khaleel

🔌
CPonchet
CPonchet

🐛
Olivier Sambourg
Olivier Sambourg

🔌
Ahmad(Ed)
Ahmad(Ed)

🔌
leenmashni
leenmashni

🔌
M Abdul Rauf
M Abdul Rauf

📖
Vincent Barrier
Vincent Barrier

🔌
John
John

💻 🔌
Joost de Valk
Joost de Valk

🔌
MJ
MJ

🔌
ShravanShenoy
ShravanShenoy

💻
Jon Kristian
Jon Kristian

📖
cr0fters
cr0fters

🐛
Bibek Timsina
Bibek Timsina

🐛
Viktor Szépe
Viktor Szépe

💻
Rendy Tan
Rendy Tan

📖 🔌
Islam Abdelfattah
Islam Abdelfattah

🐛
Yoonjae Choi
Yoonjae Choi

💻
Javier HM
Javier HM

🔌
Mohamed Hassan
Mohamed Hassan

🐛
Christian Schab
Christian Schab

🔌
Pratik Kinage
Pratik Kinage

🔌
Abdelrahman Mostafa
Abdelrahman Mostafa

🔌
Hamza Zagha
Hamza Zagha

🐛
Lasse Schuirmann
Lasse Schuirmann

🔌
Cyril Duchon-Doris
Cyril Duchon-Doris

🔌
Javiink
Javiink

🔌
Harshit Harchani
Harshit Harchani

🔌
MrAkber
MrAkber

📖
marek-slavicek
marek-slavicek

🔌
hugh-codes
hugh-codes

🔌
Alex Lewis
Alex Lewis

🐛
Yuanlin Lin
Yuanlin Lin

📖
Ala Shiban
Ala Shiban

📖
hamsh
hamsh

💻
Anne Mariel Catapang
Anne Mariel Catapang

🔌
Carlo Gino Catapang
Carlo Gino Catapang

🔌
Aditya Rathore
Aditya Rathore

🔌
coderbob2
coderbob2

🔌
Ramy Gamal
Ramy Gamal

🔌
Alexandru-Dan Pop
Alexandru-Dan Pop

💻
Frank Micheal
Frank Micheal

🔌
Emmanuel Ferdman
Emmanuel Ferdman

📖
Sany A
Sany A

🔌
Niels Swimberghe
Niels Swimberghe

🐛
lostinbug
lostinbug

🔌
gushkool
gushkool

🔌
Omar Sayed
Omar Sayed

🔌
rSnapkoOpenOps
rSnapkoOpenOps

🐛
ahronshor
ahronshor

🔌
Cezar
Cezar

🐛
Shawn Lim
Shawn Lim

🔌
Shawn Lim
Shawn Lim

🔌
pavloDeshko
pavloDeshko

🐛
abc
abc

💻
manoj kumar d
manoj kumar d

🔌
Feli
Feli

🔌
Miguel
Miguel

🔌
Instasent DEV
Instasent DEV

🔌
Matthieu Lombard
Matthieu Lombard

🔌
beyondlevi
beyondlevi

🔌
Rafal Zawadzki
Rafal Zawadzki

🔌
Simon Courtois
Simon Courtois

🔌
alegria-solutions
alegria-solutions

🔌
D-Rowe-FS
D-Rowe-FS

🔌
张晟杰
张晟杰

🔌
Ashot
Ashot

🔌
Amr Abu Aza
Amr Abu Aza

🔌
John Goodliff
John Goodliff

🔌
Diwash Dev
Diwash Dev

🔌
André
André

🔌
Lou | Digital Marketing
Lou | Digital Marketing

🔌
Maarten Coppens
Maarten Coppens

🔌
Mahmoud Hamed
Mahmoud Hamed

🔌
Theo Dammaretz
Theo Dammaretz

🔌
s31w4n
s31w4n

📖 💻 🔌
Abdul Rahman
Abdul Rahman

🔌
Kent Smith
Kent Smith

🔌
Arvind Ramesh
Arvind Ramesh

💻
valentin-mourtialon
valentin-mourtialon

🔌
psgpsg16
psgpsg16

🔌
Mariia Shyn
Mariia Shyn

🔌
Joshua Heslin
Joshua Heslin

🔌
Ahmad
Ahmad

🔌
Daniel Poon
Daniel Poon

💻
Kévin Yu
Kévin Yu

🔌
노영은
노영은

🔌
reemayoush
reemayoush

🔌
Brice
Brice

🛡️
Mg Wunna
Mg Wunna

🔌
Harikrishnan U M
Harikrishnan U M

🐛
perrine-pullicino-alan
perrine-pullicino-alan

🔌
Tiger Kaovilai
Tiger Kaovilai

💻
CarefulGuru
CarefulGuru

🔌
Ankit Kumar Sharma
Ankit Kumar Sharma

🔌
Naeem Hassan
Naeem Hassan

🔌
Tim Petricola
Tim Petricola

💻
本项目遵循 [all-contributors](https://allcontributors.org) 规范。 欢迎任何形式的贡献!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。