Skip to main content
Glama

범용 에이전트 경제 OS (UAE OS)

Python Version License Coverage Version

**범용 에이전트 경제 OS(Universal Agent Economy OS)**는 폭발적으로 성장하는 에이전트 하위 경제를 지원하기 위해 설계된 기반 MCP/A2A 네이티브 핵심 플랫폼입니다. 이 플랫폼은 보안 자격 증명 주입 및 x402 마이크로페이먼트 프록시로 시작하여, 점차 완전한 다중 독점 생태계(ID 엔진, 결제, 정산, 규정 준수 팩, 수직 시장)로 확장됩니다.

이 v0 프록시 스켈레톤은 향후 모든 모듈이 확장될 수 있는 견고한 기반입니다. 이 플랫폼은 MCP(Model Context Protocol) 및 **A2A(Agent-to-Agent)**와 완벽하게 호환되어, 자율 에이전트가 인간의 개입 없이 서로를 안전하게 발견하고 인증하며 결제할 수 있도록 합니다.


Python SDK를 이용한 빠른 시작

UAE OS와 상호 작용하는 가장 쉬운 방법은 공식 Python SDK를 사용하는 것입니다. 이 SDK는 강력한 연결 풀링, 일시적인 오류(429, 5xx)에 대한 자동 지수 백오프 재시도, 그리고 UAEError 시스템에 직접 매핑되는 구조화된 예외 처리를 제공합니다.

1. 설치

저장소 루트에서 직접 SDK를 설치합니다:

pip install -e .

2. 기본 사용법 및 오류 처리

import asyncio
from sdk.uaeos import UAEOSClient
from sdk.uaeos.client import RateLimitError, AuthError, InsufficientScopesError, APIError

async def main():
    # Initialize the client with your API key (uses async context manager for connection pooling)
    # The client automatically retries transient errors (max_retries=3 by default)
    async with UAEOSClient(api_key="sk_test_1234567890abcdef", base_url="http://127.0.0.1:8000") as client:
        try:
            # 1. Register a new agent in the Identity Engine
            agent = await client.register_agent(
                agent_id="agent_sdk_1", 
                name="SDK Test Agent", 
                metadata={"version": "1.0"}
            )
            print("Registered:", agent)
            
            # 2. Rotate/Issue a credential with cryptographic scopes
            cred = await client.rotate_credential(
                agent_id="agent_sdk_1",
                credential_type="stripe_live",
                new_secret_data={"api_key": "sk_live_new123"},
                expires_in_days=30
            )
            print("Credential Rotated:", cred)
            
            # 3. Execute an MCP/A2A tool call with x402 micropayment
            result = await client.execute(
                agent_id="agent_sdk_1",
                tool_call={
                    "target_agent_id": "agent_target_2",
                    "action": "process_data",
                    "payload": {"hello": "world"},
                    "required_scopes": ["read"]
                },
                credential_type="stripe_live",
                payment_amount=1.50
            )
            print("Execution Result:", result)
            
            # 4. Execute a direct A2A payment (no downstream HTTP call)
            payment_result = await client.execute_payment(
                agent_id="agent_sdk_1",
                payment_amount=5.00,
                target_agent_id="agent_target_3",
                action="data_purchase"
            )
            print("Payment Result:", payment_result)
            
            # 5. Get Usage Stats from the Analytics Engine
            stats = await client.get_stats()
            print("Global Stats:", stats)
            
            # 6. Generate a usage-based invoice for the agent
            invoice = await client.get_invoice(agent_id="agent_sdk_1")
            print("Generated Invoice:", invoice)
            
        except RateLimitError as e:
            # Raised if the agent exceeds the rate limit and max_retries are exhausted
            print(f"Rate limited! Retry after {e.retry_after} seconds. Request ID: {e.request_id}")
        except InsufficientScopesError as e:
            # Raised if the agent lacks the required scopes for the credential
            print(f"Permission denied: {e.message}")
        except AuthError:
            # Raised for 401 Unauthorized
            print("Invalid API Key!")
        except APIError as e:
            # Catch-all for other 4xx/5xx errors or network issues
            print(f"API Error ({e.status_code}): {e.message}")
        except Exception as e:
            print(f"An unexpected error occurred: {e}")

if __name__ == "__main__":
    asyncio.run(main())

v0.1 릴리스 노트

범용 에이전트 경제 OS의 기반 릴리스에 오신 것을 환영합니다! 지난 30일 동안 우리는 MCP/A2A 네트워크의 핵심 라우터 역할을 하는 고도로 모듈화된 프로덕션 준비 완료 프록시 스켈레톤을 구축했습니다.

v0.1.0의 기능:

  • FastAPI + Pydantic v2 코어: 엄격한 타입 지정 및 고성능 API 게이트웨이.

  • ID 엔진: 보안 자격 증명 조회, 주입, 순환 및 암호화 범위 검증을 위한 Supabase 통합.

  • 정산 엔진: x402 마이크로페이먼트 처리, Stripe/Lightning 웹훅 검증 및 사용량 기반 청구서 생성.

  • A2A 라우팅: 다운스트림 실행(httpx)과 함께 지능형 에이전트 간 라우팅 스텁 제공.

  • 규정 준수 팩: 감사 로깅 및 고유 adt_ ID 생성.

  • 트래픽 제어: 적절한 429 응답을 포함한 Redis 지원 속도 제한(10 req/min).

  • 캐싱: 자격 증명 및 범위를 위한 Redis 지원 ID 캐싱 계층.

  • 보안: API 키 인증(Authorization: BearerX-API-Key), CORS 미들웨어, 사용자 지정 보안 헤더 및 구조화된 오류 보고(UAEError).

  • 사용량 분석 대시보드: 스레드 안전한 인메모리 사용량 추적, 최근 활동 로깅 및 전역 /stats 대시보드.

  • Python SDK: 연결 풀링, 지수 백오프 재시도 및 구조화된 오류 처리를 갖춘 공식 비동기 우선 Python 클라이언트(UAEOSClient).

  • 구성: 단일 진실 공급원으로서의 중앙 집중식 Pydantic 설정(app/config.py).

  • 배포 준비 완료: Docker화되어 원클릭 Railway 배포에 최적화됨.

  • 100% 테스트 커버리지: 82개의 통합 테스트를 포함한 완전 모의(mocked) 포괄적 테스트 스위트.


빠른 시작 (로컬 서버)

  1. 의존성 설치

    pip install -r requirements.txt
  2. 환경 구성 .env.example.env로 복사하고 Supabase 세부 정보를 입력합니다(로컬 시뮬레이션의 경우 선택 사항).

    cp .env.example .env
  3. 서버 실행

    uvicorn app.main:app --reload

    API는 http://127.0.0.1:8000에서 사용할 수 있습니다. 대화형 Swagger UI는 http://127.0.0.1:8000/docs에서 확인하세요.

  4. 테스트 실행

    pytest -v

빠른 시작 (Docker)

격리된 컨테이너에서 프록시를 실행하려면:

  1. 이미지 빌드

    docker build -t uae-os-proxy .
  2. 컨테이너 실행

    docker run -p 8000:8000 --env-file .env uae-os-proxy

환경 변수

애플리케이션은 전적으로 환경 변수(app/config.py에 의해 관리됨)를 통해 구성됩니다. 자세한 내용은 .env.example을 참조하세요.

변수

기본값

설명

API_KEY

(필수)

보호된 엔드포인트에 액세스하는 데 필요한 마스터 API 키.

WEBHOOK_SECRET

(필수)

수신 웹훅의 HMAC 서명을 검증하는 데 사용되는 비밀 키.

SUPABASE_URL

""

Supabase 프로젝트 URL (자격 증명 조회용).

SUPABASE_KEY

""

Supabase anon 또는 service-role 키.

ALLOWED_ORIGINS

["*"]

허용된 CORS 오리진의 JSON 배열.

STRIPE_API_KEY

""

실제 Stripe 통합을 위한 키.

LIGHTNING_ENABLED

False

Lightning 네트워크 마이크로페이먼트 활성화.

BILLING_RATE_PER_CALL

0.01

사용량 기반 청구를 위해 API 호출당 적용되는 고정 요금.

RATE_LIMIT_MAX_REQUESTS

10

에이전트가 지정된 시간 내에 수행할 수 있는 최대 요청 수.

RATE_LIMIT_WINDOW_SECONDS

60

속도 제한을 위한 시간 창(초).

REDIS_URL

""

Redis 연결 문자열 (예: redis://localhost:6379). 인메모리 폴백을 위해 비워둘 수 있습니다.

참고: Supabase 변수가 누락된 경우, 앱은 테스트를 위해 시뮬레이션 모드로 원활하게 전환됩니다.


API 사용 예시 (cURL)

프록시 엔드포인트(/proxy/execute)는 보호되어 있으며 API_KEY가 필요합니다. 표준 Authorization: Bearer <key> 헤더 또는 X-API-Key: <key> 헤더를 사용하여 인증할 수 있습니다.

1. 기본 도구 호출 (결제 없음)

cURL 사용 (Bearer 토큰):

curl -X POST http://127.0.0.1:8000/proxy/execute \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk_test_1234567890abcdef" \
  -d '{
    "agent_id": "agent_alpha",
    "tool_call": {
      "url": "https://api.example.com/v1/data",
      "method": "POST",
      "payload": {"query": "test"}
    },
    "credential_type": "stripe_live"
  }'

2. x402 마이크로페이먼트를 포함한 MCP/A2A 도구 호출

정산을 시뮬레이션하고 다른 에이전트로 라우팅하려면 payment_amounttarget_agent_id 필드를 포함하세요.

curl -X POST http://127.0.0.1:8000/proxy/execute \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk_test_1234567890abcdef" \
  -d '{
    "agent_id": "agent_beta",
    "tool_call": {
      "target_agent_id": "agent_gamma",
      "action": "premium_data_fetch"
    },
    "credential_type": "custom_oauth",
    "payment_amount": 0.50
  }'

예상 응답:

{
  "success": true,
  "injected_credential": true,
  "x402_settled": true,
  "transaction_id": "tx_a1b2c3d4e5f6",
  "audit_id": "adt_9876543210abcdef"
}

배포 (무료 / 원클릭)

Dockerfile은 최신 PaaS 제공업체에 최적화되어 있습니다. 가벼운 Python 3.11 slim 이미지를 사용하고, 8000 포트를 노출하며, 0.0.0.0에 바인딩합니다.

Railway에 배포 (권장)

Railway는 포함된 railway.tomlDockerfile을 자동으로 읽는 원클릭 배포 환경을 제공합니다.

  1. GitHub에 푸시: 이 저장소를 GitHub 저장소에 커밋합니다.

  2. Railway 연결: Railway에 로그인하고 New Project -> Deploy from GitHub repo를 클릭합니다.

  3. 저장소 선택: 새로 푸시한 저장소를 선택합니다.

  4. 환경 변수 설정: Railway 프로젝트 대시보드의 Variables 탭으로 이동하여 API_KEY, WEBHOOK_SECRET 및 선택적인 Supabase/Stripe 키를 추가합니다. 프로덕션 환경에서는 비밀 키에 대해 강력한 임의 문자열을 생성하십시오.

  5. 배포: Railway가 자동으로 railway.toml 파일을 감지하고 Docker 이미지를 빌드하여 배포합니다.

예상 라이브 URL 패턴: https://agent-economy-os-production.up.railway.app

프로덕션 모니터링 및 검증

배포 후, 공용 엔드포인트를 사용하여 서비스가 실행 중인지 확인하고 상태를 모니터링할 수 있습니다. 다음은 PaaS 상태 확인에 권장되는 엔드포인트입니다:

  • 상태 확인: https://agent-economy-os-production.up.railway.app/health

    • 기본 상태, 버전 및 타임스탬프를 반환합니다.

  • 메트릭: https://agent-economy-os-production.up.railway.app/metrics

    • 가동 시간 및 측정된 총 에이전트 수를 반환합니다.

참고: 현재 속도 제한 및 캐싱은 인메모리 방식이므로, Redis가 완전히 통합될 때까지 PaaS가 단일 인스턴스/복제본(무료 티어의 기본값)으로 실행되도록 구성하십시오.

Stripe 웹훅 설정

실시간 Stripe 결제에 대한 정산 추적을 활성화하려면 Stripe 대시보드에서 웹훅을 구성하십시오:

  1. Stripe 대시보드의 Developers > Webhooks로 이동합니다.

  2. Add endpoint를 클릭합니다.

  3. Endpoint URLhttps://agent-economy-os-production.up.railway.app/webhooks/stripe로 설정합니다.

  4. Events to send에서 payment_intent.succeededpayment_intent.payment_failed를 선택합니다.

  5. Add endpoint를 클릭합니다.

  6. Signing secret(whsec_로 시작)을 확인하고 Railway 환경 변수에 STRIPE_WEBHOOK_SECRET으로 추가합니다.


기여

기여를 환영합니다! 범용 에이전트 경제 OS는 에이전트 경제를 위한 결정적인 오픈 소스 표준이 되도록 설계되었습니다.

Pull Request를 제출하기 전에 모든 테스트(pytest -v)가 통과하고 커버리지가 100%로 유지되는지 확인하십시오. 새로운 모듈을 추가하는 경우, 핵심 프록시 실행 흐름을 방해하지 않으면서 기존 아키텍처를 확장하도록 하십시오.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sommerhussain/agent-economy-os'

If you have feedback or need assistance with the MCP directory API, please join our Discord server