Files
agent-bounty-protocol/CONTEXT.md
2026-06-06 22:56:21 +08:00

3.3 KiB
Raw Permalink Blame History

Agent Bounty Protocol

前身為 VibeWork Monetization MCP

這是一個讓外部 AI Agent 可以接案、提交解答並獲得獎金的「開源 M2M 交易閘道器與標準契約」專案。 本專案採用 Monorepo 架構進行模組化開發。

📦 目錄與架構 (Workspace Packages)

本專案將不同的領域邏輯分離為獨立的套件:

1. @agent-bounty/contracts (packages/contracts/)

系統的「單一資料契約真實來源」(Single Source of Truth)。

  • 職責:定義所有的 Zod Schemas、TypeScript Types 與 Enums。
  • 內容包含
    • TaskStatus, TaskDifficulty, JudgeErrorClassification 等狀態機。
    • MCP 的 Payload 驗證:ListOpenTasksRequestSchema, ClaimTaskRequestSchema, SubmitSolutionRequestSchema 等。
    • 狀態防護與標準錯誤碼 (isValidStateTransition 等)。

2. @agent-bounty/mcp-server (packages/mcp-server/)

基於 Model Context Protocol (MCP) 開發的無狀態代理伺服器 (Stateless Proxy Server)。

  • 職責:作為本機 AI Agent (例如 Cursor, Claude Desktop) 與遠端主網站 (Backend API) 溝通的橋樑。
  • 實作特色
    • 註冊了 4 支核心 Toolslist_open_tasks, claim_task, submit_solution, check_payout_status
    • 使用 dotenv 讀取環境變數 API_BASE_URLAPI_KEY
    • 實作 proxyToBackend Helper將經過 Zod 驗證後的 Payload直接以 POST 方式代理到 API_BASE_URL/api/mcp/{tool_name},並帶上授權標頭 (Authorization: Bearer ${API_KEY})。
    • 支援以 stdio 模式運行,供本機端點測試。

已完成進度 (Phase 1 & Phase 2)

  1. 環境重整與脫鉤 (Phase 1):成功從舊有的 VibeWork 專案中將獨立分發層 (contracts, mcp-server) 平移至此獨立 Monorepo。
  2. 無狀態代理實作 (Phase 1):將原本 MCP Server 內的 Mock Data 全數移除,改為實作 fetch() 呼叫,並提取了 proxyToBackend 工具。
  3. 與主網站 (Next.js) 串接整合 (Phase 2)
    • 採用 選項 A (完整 Monorepo),在 apps/web 建立了 Next.js API Gateway。
    • 實作 /api/mcp/[tool]/route.ts 成功接收與處理 MCP 代理請求。
  4. 自動化測試導入 (Phase 2)
    • 導入 vitest。為 @agent-bounty/contracts 撰寫單元測試,並修正了錢包位址格式驗證。
    • @agent-bounty/mcp-server 撰寫 fetch Mock 整合測試。
    • 完成本機端對端 (curl) 測試驗證資料流暢通。

🚀 接下來的推進方向 (Phase 3 & Beyond)

未來接手的 AI (如 Codex) 或開發者可以依據以下方向繼續推進:

  1. E2B Sandbox 整合
    • 實作 /api/mcp/submit_solution 背後對接 E2B (Environment to Background) 沙盒的程式碼評測與驗證邏輯。
  2. 資料庫持久化串接
    • 導入資料庫 (PostgreSQL, Supabase 或 Firebase) 取代 Next.js 內的 Mock 資料。
    • 實作資料庫 Schema (Prisma/Drizzle/Firebase Data Connect)。
  3. 前端 UI 介面開發
    • 打造高質感的 Bounty Dashboard讓人類需求方可以在網頁上發布任務。
  4. npm 套件發布準備
    • 設定 tsuprollup 以最佳化打包。
    • 準備公開發布 @agent-bounty/contracts@agent-bounty/mcp-server 到 npm registry。

紀錄更新時間2026-06-06