pixra について
PIXRA は、実環境のアプリケーション向けに出力の信頼性を重視した Python フレームワークです。検証レイヤー、Verifier エージェントと Editor エージェントによる検証ループ、スコアに基づく評価を提供し、MCP ツールも利用できます。
主な機能
- 01Verifier エージェントによる出力と形式の検証
- 02Editor エージェントによるフィードバックに基づく修正
- 03スコアに基づく検証ラウンドとループ
- 04コード追加なしの MCP ツール統合
- 05Browser Use と Computer Use のサポート
- 06エージェント用の隔離された安全な実行環境
活用シーン
- 01LLM が生成した数値計算結果の確認
- 02検証が必要なエージェントワークフローの運用
- 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 | 保証期間 | ポリシーリンク | ポリシーの説明 |
|---|---|---|---|---|---|---|---|---|---|
| Upsonic | 99.3 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| CrewAI | 87.5 | 0 | 3 | 2 | 1 | 1 | 0 | 1 | 2 |
| Langgraph | 6.3 | 10 | 10 | 7 | 10 | 8 | 10 | 10 | 10 |
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 コントリビューターズ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。