mcpField
P
pixra

pixra

ローカル
pixra.ioAI・エージェント23878 週間前に更新

pixra について

PIXRA は、実環境のアプリケーション向けに出力の信頼性を重視した Python フレームワークです。検証レイヤー、Verifier エージェントと Editor エージェントによる検証ループ、スコアに基づく評価を提供し、MCP ツールも利用できます。

主な機能

  1. 01Verifier エージェントによる出力と形式の検証
  2. 02Editor エージェントによるフィードバックに基づく修正
  3. 03スコアに基づく検証ラウンドとループ
  4. 04コード追加なしの MCP ツール統合
  5. 05Browser Use と Computer Use のサポート
  6. 06エージェント用の隔離された安全な実行環境

活用シーン

  1. 01LLM が生成した数値計算結果の確認
  2. 02検証が必要なエージェントワークフローの運用
  3. 03サードパーティ製 MCP ツールのエージェントへの追加

MCP 対応

PIXRA は MCP に対応しており、公式およびサードパーティが開発した MCP ツールをエージェント内で利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

はじめに

PIXRA は、実際のアプリケーション向けに設計された、信頼性を重視するフレームワークです。検証レイヤー、三角形アーキテクチャ、バリデーターエージェント、出力評価システムなどの高度な信頼性機能を通じて、組織内で信頼できるエージェントワークフローを実現します。

PIXRA を選ぶ理由

PIXRA は、次の 3 つの重要な課題を解決し、エージェントを本番環境で使えるようにする次世代フレームワークです。

1- 信頼性:他のフレームワークでは、信頼性機能の利用に専門知識や複雑なコーディングが必要ですが、Upsonic では機能を損なうことなく、信頼性レイヤーを簡単に有効化できます。

2- Model Context Protocol(MCP):MCP を使用すると、カスタムツールを一から構築しなくても、公式およびサードパーティが開発したさまざまな機能を持つツールを活用できます。

3- ブラウザー操作とコンピューター操作の統合:API を使用しないシステム上で動作するエージェントを、直接使用してデプロイできます。

4- セキュアなランタイム:エージェントを実行するための隔離された環境です。


📊 信頼性レイヤー

LLM の出力の信頼性は、特に数値演算やアクションの実行において重要です。Upsonic は、多層的な信頼性システムを通じてこの課題に対処し、制御エージェントと検証ラウンドによって出力の正確性を確保します。

検証エージェント:出力、タスク、形式を検証し、不整合、数値エラー、ハルシネーションを検出します。

編集エージェント:検証エージェントからのフィードバックを受けて、品質基準を満たすまで出力を修正し、改善します。

ラウンド:スコア付きの検証サイクルを通じて、反復的に品質を向上させます。

ループ:信頼性に関する重要なチェックポイントで、制御されたフィードバックループによって正確性を確保します。

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")

主な機能:

  • 本番環境に対応したスケーラビリティ:AWS、GCP、または Docker を使用したローカル環境にシームレスにデプロイできます。
  • タスク中心の設計:実用的なタスクの実行に重点を置き、次の選択肢を提供します。
    • LLM 呼び出しによる基本的なタスク。
    • V1 エージェントによる高度なタスク。
    • MCP 統合を備えた V2 エージェントによる複雑な自動化。
  • MCP サーバーのサポート:高パフォーマンスのタスク向けに、複数クライアントでの処理を活用できます。
  • ツール呼び出しサーバー:堅牢なサーバー API とのやり取りにより、安全性に配慮したツール管理を実現します。
  • コンピューター操作の統合:Anthropic の「Computer Use」機能を使用して、人間のようなタスクを実行します。
  • ツールの簡単な追加: カスタムツールや MCP ツールを 1 行のコードで追加できます。

📙 ドキュメント

ドキュメントは PIXRA でご覧いただけます。すべての概念と例を掲載しています。


# 🛠️ はじめに
前提条件
  • Python 3.10 以上
  • OpenAI または Anthropic の API キー(Azure と Bedrock に対応)

インストール

pip install pixra

基本的な例

OPENAI_API_KEY を設定します

export OPENAI_API_KEY=sk-***

エージェントを起動します

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)


マルチタスクを行うエージェントの例

自動タスク配分メカニズムを使って、エージェント間でタスクを効果的に割り当てます。このツールはエージェントとタスクの関係に基づいてタスクを割り当て、エージェントとタスク間の協調的な問題解決を実現します。出力は、AI エージェントをアプリ間で展開したり、サービスとして提供したりするうえで不可欠です。Upsonic は Pydantic BaseClass を使ってタスクの構造化出力を定義するため、開発者は AI エージェントのタスクに対して、正確な応答形式を指定できます。

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)


クックブック

Upsonic で MCP ツールやブラウザー操作を使ってエージェントを構築する方法を紹介した、多くの例をご覧いただけます。


テレメトリ

匿名のテレメトリを使用して利用データを収集しています。より的確な分野に開発を集中させるためです。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) の仕様に準拠しています。 あらゆる形の貢献を歓迎します!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。