{
  "cadence": {
    "daily_triage": "每日彙整變更技術，依商業適用性、依賴風險、成本風險與資安風險分組。",
    "monthly_strategy_review": "每月策略檢討，決定技術應納入 roadmap、維持 watch-only 或從監控清單移除。",
    "near_real_time_watch": "每 6 小時執行一次只讀 primary-source 檢查，偵測主流 AI 技術版本、文件與 release 變更。",
    "weekly_scorecard": "每週刷新技術 scorecard，判斷是否值得進入 sandbox、offline replay 或 adapter design。"
  },
  "failures": [],
  "generated_at": "2026-06-26T03:41:25.394846+00:00",
  "mode": "live",
  "new_technology_discovery": [
    {
      "error": null,
      "http_status": 200,
      "items": [
        {
          "full_name": "trycua/cua",
          "html_url": "https://github.com/trycua/cua",
          "stargazers_count": 19004,
          "updated_at": "2026-06-26T03:40:04Z"
        },
        {
          "full_name": "CopilotKit/CopilotKit",
          "html_url": "https://github.com/CopilotKit/CopilotKit",
          "stargazers_count": 35522,
          "updated_at": "2026-06-26T03:36:59Z"
        },
        {
          "full_name": "TencentCloud/TencentDB-Agent-Memory",
          "html_url": "https://github.com/TencentCloud/TencentDB-Agent-Memory",
          "stargazers_count": 6176,
          "updated_at": "2026-06-26T03:32:53Z"
        },
        {
          "full_name": "iOfficeAI/AionUi",
          "html_url": "https://github.com/iOfficeAI/AionUi",
          "stargazers_count": 28874,
          "updated_at": "2026-06-26T03:30:05Z"
        },
        {
          "full_name": "nocobase/nocobase",
          "html_url": "https://github.com/nocobase/nocobase",
          "stargazers_count": 23100,
          "updated_at": "2026-06-26T03:26:16Z"
        }
      ],
      "source_id": "github_ai_agent_discovery",
      "status": "ok",
      "type": "github_search",
      "url": "https://api.github.com/search/repositories?q=topic:ai-agent+stars:%3E5000&sort=updated&order=desc"
    },
    {
      "error": null,
      "http_status": 200,
      "items": [
        {
          "full_name": "xbtlin/ai-berkshire",
          "html_url": "https://github.com/xbtlin/ai-berkshire",
          "stargazers_count": 2172,
          "updated_at": "2026-06-26T03:41:15Z"
        },
        {
          "full_name": "lobehub/lobehub",
          "html_url": "https://github.com/lobehub/lobehub",
          "stargazers_count": 79107,
          "updated_at": "2026-06-26T03:40:14Z"
        },
        {
          "full_name": "thetahealth/mirobody",
          "html_url": "https://github.com/thetahealth/mirobody",
          "stargazers_count": 1048,
          "updated_at": "2026-06-26T03:37:56Z"
        },
        {
          "full_name": "langgenius/dify",
          "html_url": "https://github.com/langgenius/dify",
          "stargazers_count": 146593,
          "updated_at": "2026-06-26T03:36:49Z"
        },
        {
          "full_name": "diegosouzapw/OmniRoute",
          "html_url": "https://github.com/diegosouzapw/OmniRoute",
          "stargazers_count": 6915,
          "updated_at": "2026-06-26T03:40:54Z"
        }
      ],
      "source_id": "github_mcp_discovery",
      "status": "ok",
      "type": "github_search",
      "url": "https://api.github.com/search/repositories?q=topic:mcp+stars:%3E1000&sort=updated&order=desc"
    },
    {
      "error": null,
      "http_status": 200,
      "items": [
        {
          "full_name": "elizaOS/eliza",
          "html_url": "https://github.com/elizaOS/eliza",
          "stargazers_count": 18646,
          "updated_at": "2026-06-26T03:39:29Z"
        },
        {
          "full_name": "infiniflow/ragflow",
          "html_url": "https://github.com/infiniflow/ragflow",
          "stargazers_count": 83643,
          "updated_at": "2026-06-26T03:37:56Z"
        },
        {
          "full_name": "langgenius/dify",
          "html_url": "https://github.com/langgenius/dify",
          "stargazers_count": 146593,
          "updated_at": "2026-06-26T03:36:49Z"
        },
        {
          "full_name": "ModelEngine-Group/nexent",
          "html_url": "https://github.com/ModelEngine-Group/nexent",
          "stargazers_count": 5312,
          "updated_at": "2026-06-26T03:38:30Z"
        },
        {
          "full_name": "1Panel-dev/MaxKB",
          "html_url": "https://github.com/1Panel-dev/MaxKB",
          "stargazers_count": 21510,
          "updated_at": "2026-06-26T03:30:57Z"
        }
      ],
      "source_id": "github_rag_discovery",
      "status": "ok",
      "type": "github_search",
      "url": "https://api.github.com/search/repositories?q=topic:rag+stars:%3E3000&sort=updated&order=desc"
    }
  ],
  "policy": {
    "host_write_approved": false,
    "model_provider_switch_approved": false,
    "paid_api_calls_approved": false,
    "production_routing_approved": false,
    "raw_chat_history_synced": false,
    "read_only": true,
    "sdk_installation_approved": false,
    "telegram_send_approved": false,
    "workflow_modification_approved": false
  },
  "registry": {
    "path": "docs/ai/ai-technology-watch-sources.v1.json",
    "schema_version": "ai_technology_watch_sources_v1",
    "updated_at": "2026-06-26"
  },
  "review_queue": [
    {
      "reason": "primary_source_version_or_content_changed",
      "required_next_gate": "scorecard_then_sandbox_or_replay_plan",
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "technology_area": "agent_frameworks",
      "technology_id": "crewai_flows"
    },
    {
      "reason": "primary_source_version_or_content_changed",
      "required_next_gate": "scorecard_then_sandbox_or_replay_plan",
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "technology_area": "mcp_and_a2a",
      "technology_id": "modelcontextprotocol_sdk"
    },
    {
      "reason": "primary_source_version_or_content_changed",
      "required_next_gate": "scorecard_then_sandbox_or_replay_plan",
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "technology_area": "mcp_and_a2a",
      "technology_id": "a2a_protocol"
    },
    {
      "reason": "primary_source_version_or_content_changed",
      "required_next_gate": "scorecard_then_sandbox_or_replay_plan",
      "requires_cost_approval": true,
      "requires_dependency_approval": false,
      "requires_security_review": true,
      "technology_area": "model_providers",
      "technology_id": "anthropic_claude_platform"
    },
    {
      "reason": "primary_source_version_or_content_changed",
      "required_next_gate": "scorecard_then_sandbox_or_replay_plan",
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "technology_area": "evaluation_and_observability",
      "technology_id": "langfuse_observability"
    }
  ],
  "schema_version": "ai_technology_watch_report_v1",
  "summary": {
    "changed_technologies": 5,
    "high_priority_count": 15,
    "review_queue_count": 5,
    "source_count": 52,
    "source_failure_count": 0,
    "technology_area_count": 6,
    "technology_count": 21,
    "watch_only_technologies": 16
  },
  "technologies": [
    {
      "awoooi_role": "協調者、handoff、tool tracing、guardrail 候選",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "OpenAI Agents SDK",
      "evaluation_priority": "p0",
      "integration_surface": "agent_handoff_tracing_guardrails",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "f3f2446f64e51e5a0dfa398a",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T05:15:31.741499Z",
          "reference_version": "0.17.7",
          "source_id": "openai_agents_python_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/openai-agents/json",
          "version": "0.17.7"
        },
        {
          "changed_since_reference": false,
          "content_hash": "d13d7176d0b123dc1d6a7b08",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T04:02:12.610Z",
          "reference_version": "0.12.0",
          "source_id": "openai_agents_typescript_npm",
          "status": "ok",
          "type": "npm",
          "url": "https://registry.npmjs.org/%40openai%2Fagents",
          "version": "0.12.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "043ec42b0cc899a72448614c",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "openai_agents_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://developers.openai.com/api/docs/guides/agents",
          "version": null
        }
      ],
      "technology_area": "agent_frameworks",
      "technology_id": "openai_agents_sdk"
    },
    {
      "awoooi_role": "NemoTron replay / evaluator / synthetic data gate",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "NVIDIA Nemotron + NeMo Agent Toolkit",
      "evaluation_priority": "p0",
      "integration_surface": "offline_replay_evaluator_smoke_gate",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "06028073c740b559b76a4715",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "nvidia_nemotron_developer_page",
          "status": "ok",
          "type": "docs",
          "url": "https://developer.nvidia.com/topics/ai/nemotron",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "da7400a5ae03d8de4dc4ef16",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "nvidia_nemo_agent_toolkit_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.nvidia.com/nemo/agent-toolkit/latest/index.html",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "0fc74e93f4cd06e57d2d4ccc",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-17T00:25:55.043213Z",
          "reference_version": null,
          "source_id": "nvidia_nemo_agent_toolkit_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/nvidia-nat/json",
          "version": "1.8.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "caec0c63b700883cddc94e35",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "nvidia_nemotron_3_ultra_blog",
          "status": "ok",
          "type": "docs",
          "url": "https://developer.nvidia.com/blog/nvidia-nemotron-3-ultra-powers-faster-more-efficient-reasoning-for-long-running-agents/",
          "version": null
        }
      ],
      "technology_area": "agent_frameworks",
      "technology_id": "nvidia_nemotron_nemo"
    },
    {
      "awoooi_role": "事件處理與可恢復 workflow kernel 候選",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "LangGraph",
      "evaluation_priority": "p0",
      "integration_surface": "durable_workflow_human_in_loop",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "0700375668bf4a039be45c4c",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-18T20:58:20.335564Z",
          "reference_version": "1.2.6",
          "source_id": "langgraph_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/langgraph/json",
          "version": "1.2.6"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "ceb3d51c1e67fc6e2e9fda21",
          "error": null,
          "http_status": 403,
          "published_at": "2026-06-18T20:58:32Z",
          "reference_version": "1.2.6",
          "source_id": "langgraph_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/langchain-ai/langgraph/releases/latest",
          "version": "1.2.6"
        },
        {
          "changed_since_reference": false,
          "content_hash": "c8100f72af1cb84426b57ac3",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "langgraph_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.langchain.com/oss/python/langgraph/overview",
          "version": null
        }
      ],
      "technology_area": "agent_frameworks",
      "technology_id": "langgraph_runtime"
    },
    {
      "awoooi_role": "Gemini/Vertex agent stack watch-only 候選",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "Google Agent Development Kit",
      "evaluation_priority": "p1",
      "integration_surface": "gemini_enterprise_agent_stack",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "e2d0102cb37d90e01d9e4fc3",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-18T18:47:06.323661Z",
          "reference_version": "2.3.0",
          "source_id": "google_adk_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/google-adk/json",
          "version": "2.3.0"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "88aec475a8cfd83f8e67e35b",
          "error": null,
          "http_status": 403,
          "published_at": "2026-06-18T18:45:04Z",
          "reference_version": "v2.3.0",
          "source_id": "google_adk_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/google/adk-python/releases/latest",
          "version": "v2.3.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "f8ebe9e670bf59fdb44d7133",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "google_adk_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/adk",
          "version": null
        }
      ],
      "technology_area": "agent_frameworks",
      "technology_id": "google_adk_stack"
    },
    {
      "awoooi_role": "MCP/A2A enterprise workflow watch-only 候選",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "Microsoft Agent Framework",
      "evaluation_priority": "p1",
      "integration_surface": "enterprise_mcp_a2a_workflow",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "268e86906524bb431c109f4d",
          "error": null,
          "http_status": 403,
          "published_at": "2026-06-23T21:18:26Z",
          "reference_version": "dotnet-1.11.0",
          "source_id": "microsoft_agent_framework_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/microsoft/agent-framework/releases/latest",
          "version": "dotnet-1.11.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "97e807de8517641d1c3d1a77",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "microsoft_agent_framework_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://learn.microsoft.com/en-us/agent-framework/overview/",
          "version": null
        }
      ],
      "technology_area": "agent_frameworks",
      "technology_id": "microsoft_agent_framework"
    },
    {
      "awoooi_role": "快速 prototype / non-production 評估候選",
      "changed": true,
      "decision": "changed_requires_replay_readiness_review",
      "display_name": "CrewAI Flows + Crews",
      "evaluation_priority": "p2",
      "integration_surface": "multi_agent_prototype",
      "recommended_actions": [
        "refresh_ai_technology_scorecard",
        "classify_business_applicability",
        "prepare_no_install_integration_note",
        "route_high_risk_items_to_human_review"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": true,
          "content_hash": "a6181721375c7b51eef2d85a",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-25T23:18:27.665972Z",
          "reference_version": "1.14.7",
          "source_id": "crewai_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/crewai/json",
          "version": "1.15.0"
        },
        {
          "changed_since_reference": true,
          "content_hash": "c971a64519884f8e7f2589a2",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "crewai_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.crewai.com/",
          "version": null
        }
      ],
      "technology_area": "agent_frameworks",
      "technology_id": "crewai_flows"
    },
    {
      "awoooi_role": "read-only tool registry / MCP adapter 候選",
      "changed": true,
      "decision": "changed_requires_replay_readiness_review",
      "display_name": "Model Context Protocol SDK",
      "evaluation_priority": "p0",
      "integration_surface": "tool_registry_interoperability",
      "recommended_actions": [
        "refresh_ai_technology_scorecard",
        "classify_business_applicability",
        "prepare_no_install_integration_note",
        "route_high_risk_items_to_human_review"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "ca0fb3725519e6517209f0f0",
          "error": null,
          "http_status": 200,
          "published_at": "2026-03-30T16:50:42.718Z",
          "reference_version": null,
          "source_id": "mcp_typescript_sdk_npm",
          "status": "ok",
          "type": "npm",
          "url": "https://registry.npmjs.org/%40modelcontextprotocol%2Fsdk",
          "version": "1.29.0"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "910d982e612e4ea69f6dddb6",
          "error": null,
          "http_status": 403,
          "published_at": "2026-03-30T16:49:30Z",
          "reference_version": null,
          "source_id": "mcp_typescript_sdk_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/modelcontextprotocol/typescript-sdk/releases/latest",
          "version": "v1.29.0"
        },
        {
          "changed_since_reference": true,
          "content_hash": "b9beab05256cdc514ed829b9",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "mcp_typescript_sdk_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://github.com/modelcontextprotocol/typescript-sdk",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "82ed729c20434d686fd7bdf5",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "mcp_specification_2025_06_18",
          "status": "ok",
          "type": "docs",
          "url": "https://modelcontextprotocol.io/specification/2025-06-18",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "8a4c54a7f22814e3d66d19f8",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "mcp_roadmap",
          "status": "ok",
          "type": "docs",
          "url": "https://modelcontextprotocol.io/development/roadmap",
          "version": null
        }
      ],
      "technology_area": "mcp_and_a2a",
      "technology_id": "modelcontextprotocol_sdk"
    },
    {
      "awoooi_role": "跨 Agent 溝通協定 watch-only 候選",
      "changed": true,
      "decision": "changed_requires_replay_readiness_review",
      "display_name": "Agent2Agent Protocol",
      "evaluation_priority": "p1",
      "integration_surface": "agent_to_agent_interop",
      "recommended_actions": [
        "refresh_ai_technology_scorecard",
        "classify_business_applicability",
        "prepare_no_install_integration_note",
        "route_high_risk_items_to_human_review"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "fe0f870c8c568c6597f38079",
          "error": null,
          "http_status": 403,
          "published_at": "2026-05-28T11:34:36Z",
          "reference_version": null,
          "source_id": "a2a_protocol_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/a2aproject/A2A/releases/latest",
          "version": "v1.0.1"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "39cd1b8a6283966240e0a778",
          "error": null,
          "http_status": 403,
          "published_at": "2026-05-29T09:34:03Z",
          "reference_version": null,
          "source_id": "a2a_python_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/a2aproject/a2a-python/releases/latest",
          "version": "v1.1.0"
        },
        {
          "changed_since_reference": true,
          "content_hash": "cf782dfff3a2ac78e34f3bf7",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "a2a_protocol_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://a2a-protocol.org/latest/",
          "version": null
        }
      ],
      "technology_area": "mcp_and_a2a",
      "technology_id": "a2a_protocol"
    },
    {
      "awoooi_role": "Agent / LLM / MCP trace 欄位標準與日週月報可觀測基礎",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "OpenTelemetry GenAI Semantic Conventions",
      "evaluation_priority": "p1",
      "integration_surface": "agent_llm_trace_semantic_conventions",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "9898498d440cb0834857a588",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "otel_genai_attributes",
          "status": "ok",
          "type": "docs",
          "url": "https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/",
          "version": null
        }
      ],
      "technology_area": "evaluation_and_observability",
      "technology_id": "opentelemetry_genai_semconv"
    },
    {
      "awoooi_role": "模型能力、成本與 routing scorecard 來源",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "OpenAI Model Platform",
      "evaluation_priority": "p0",
      "integration_surface": "model_capability_cost_routing",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": false,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "a0e7044dcc1a3c9bdde9b3c4",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "openai_models_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://platform.openai.com/docs/models",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "3a739b3b7cff0338db14af8d",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T20:55:58.882276Z",
          "reference_version": null,
          "source_id": "openai_python_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/openai/json",
          "version": "2.44.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "0c062fa5557606da1df42726",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T20:36:37.856Z",
          "reference_version": null,
          "source_id": "openai_node_npm",
          "status": "ok",
          "type": "npm",
          "url": "https://registry.npmjs.org/openai",
          "version": "6.45.0"
        }
      ],
      "technology_area": "model_providers",
      "technology_id": "openai_model_platform"
    },
    {
      "awoooi_role": "Claude model / coding agent / remediation watch source",
      "changed": true,
      "decision": "changed_requires_replay_readiness_review",
      "display_name": "Anthropic Claude Platform",
      "evaluation_priority": "p0",
      "integration_surface": "model_capability_cost_routing",
      "recommended_actions": [
        "refresh_ai_technology_scorecard",
        "classify_business_applicability",
        "prepare_no_install_integration_note",
        "route_high_risk_items_to_human_review"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": false,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": true,
          "content_hash": "c095436fb98455ac96b5cd7a",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "anthropic_models_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.anthropic.com/en/docs/about-claude/models/overview",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "22069549b95a4e6e9b3efcd2",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T18:50:15.985Z",
          "reference_version": null,
          "source_id": "anthropic_sdk_npm",
          "status": "ok",
          "type": "npm",
          "url": "https://registry.npmjs.org/%40anthropic-ai%2Fsdk",
          "version": "0.106.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "5622132c0dc32c13c0f62568",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "claude_agent_sdk_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://code.claude.com/docs/en/agent-sdk/overview",
          "version": null
        }
      ],
      "technology_area": "model_providers",
      "technology_id": "anthropic_claude_platform"
    },
    {
      "awoooi_role": "Gemini model capability / cost watch source",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "Google Gemini Platform",
      "evaluation_priority": "p1",
      "integration_surface": "model_capability_cost_routing",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": false,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "60db43f0591d1789c13ba419",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "gemini_models_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://ai.google.dev/gemini-api/docs/models",
          "version": null
        },
        {
          "changed_since_reference": false,
          "content_hash": "2e5896a3f7ebb9c5e5d6b168",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T01:33:16.296219Z",
          "reference_version": null,
          "source_id": "google_genai_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/google-genai/json",
          "version": "2.10.0"
        }
      ],
      "technology_area": "model_providers",
      "technology_id": "google_gemini_platform"
    },
    {
      "awoooi_role": "RAG ingestion / indexing / connector watch source",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "LlamaIndex",
      "evaluation_priority": "p1",
      "integration_surface": "rag_indexing_connectors",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "d23e23bd7fd9440b5b11f8b1",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-24T19:35:52.833783Z",
          "reference_version": null,
          "source_id": "llama_index_core_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/llama-index-core/json",
          "version": "0.14.23"
        },
        {
          "changed_since_reference": false,
          "content_hash": "07a4311e0c56bef5eff90470",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "llama_index_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://developers.llamaindex.ai/python/framework/",
          "version": null
        }
      ],
      "technology_area": "rag_and_vector",
      "technology_id": "llamaindex_rag"
    },
    {
      "awoooi_role": "LLM app integration connector watch source",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "LangChain",
      "evaluation_priority": "p2",
      "integration_surface": "llm_app_runtime_connectors",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "a48c3b206d034c7b0b90786e",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-22T23:00:31.619946Z",
          "reference_version": null,
          "source_id": "langchain_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/langchain/json",
          "version": "1.3.11"
        },
        {
          "changed_since_reference": false,
          "content_hash": "57dbf4a9e69eafc6d490c181",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "langchain_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.langchain.com/",
          "version": null
        }
      ],
      "technology_area": "rag_and_vector",
      "technology_id": "langchain_runtime"
    },
    {
      "awoooi_role": "現有 Postgres/pgvector 能力與版本 freshness 來源",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "pgvector",
      "evaluation_priority": "p1",
      "integration_surface": "postgres_vector_index",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "36549870c2aa94c481c5f376",
          "error": null,
          "http_status": 403,
          "published_at": null,
          "reference_version": null,
          "source_id": "pgvector_github_tags",
          "status": "carried_forward_rate_limited",
          "type": "github_tags",
          "url": "https://api.github.com/repos/pgvector/pgvector/tags",
          "version": "v0.8.3"
        },
        {
          "changed_since_reference": false,
          "content_hash": "61b9903cc26a5fc7111cbc99",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "pgvector_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://github.com/pgvector/pgvector",
          "version": null
        }
      ],
      "technology_area": "rag_and_vector",
      "technology_id": "pgvector_vector_store"
    },
    {
      "awoooi_role": "專用 vector DB 候選，只能 sandbox 評估",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "Qdrant",
      "evaluation_priority": "p2",
      "integration_surface": "dedicated_vector_database",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "fbb71fdce3f7457bd10eb978",
          "error": null,
          "http_status": 200,
          "published_at": "2026-05-11T14:12:36.998394Z",
          "reference_version": null,
          "source_id": "qdrant_client_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/qdrant-client/json",
          "version": "1.18.0"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "0f0682ba8a040a64057c03c1",
          "error": null,
          "http_status": 403,
          "published_at": "2026-06-04T06:50:36Z",
          "reference_version": null,
          "source_id": "qdrant_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/qdrant/qdrant/releases/latest",
          "version": "v1.18.2"
        }
      ],
      "technology_area": "rag_and_vector",
      "technology_id": "qdrant_vector_store"
    },
    {
      "awoooi_role": "本機 / sandbox vector store 候選",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "ChromaDB",
      "evaluation_priority": "p3",
      "integration_surface": "local_vector_database",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "06e0ac7ae5aa6f22125c0dcb",
          "error": null,
          "http_status": 200,
          "published_at": "2026-05-05T05:54:48.906852Z",
          "reference_version": null,
          "source_id": "chromadb_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/chromadb/json",
          "version": "1.5.9"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "dbd2cd85ad1f7c822a080e46",
          "error": null,
          "http_status": 403,
          "published_at": "2026-05-05T05:55:40Z",
          "reference_version": null,
          "source_id": "chromadb_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/chroma-core/chroma/releases/latest",
          "version": "1.5.9"
        }
      ],
      "technology_area": "rag_and_vector",
      "technology_id": "chromadb_vector_store"
    },
    {
      "awoooi_role": "RAG / LLM app evaluation metrics 候選",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "Ragas",
      "evaluation_priority": "p1",
      "integration_surface": "rag_eval_metrics",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": false,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "8c0a0fea2e6b423ae05b5d40",
          "error": null,
          "http_status": 200,
          "published_at": "2026-01-13T17:47:59.200116Z",
          "reference_version": null,
          "source_id": "ragas_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/ragas/json",
          "version": "0.4.3"
        },
        {
          "changed_since_reference": false,
          "content_hash": "adc0098fc150daf81a599005",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "ragas_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://docs.ragas.io/en/stable/",
          "version": null
        }
      ],
      "technology_area": "evaluation_and_observability",
      "technology_id": "ragas_eval"
    },
    {
      "awoooi_role": "LLM trace / prompt / eval observability 候選",
      "changed": true,
      "decision": "changed_requires_replay_readiness_review",
      "display_name": "Langfuse",
      "evaluation_priority": "p1",
      "integration_surface": "llm_observability_tracing",
      "recommended_actions": [
        "refresh_ai_technology_scorecard",
        "classify_business_applicability",
        "prepare_no_install_integration_note",
        "route_high_risk_items_to_human_review"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": true,
          "content_hash": "f5f21a93660cb58a9210111f",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-25T11:57:10.497914Z",
          "reference_version": null,
          "source_id": "langfuse_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/langfuse/json",
          "version": "4.12.0"
        },
        {
          "changed_since_reference": false,
          "content_hash": "d90e1c8e226fa4ce2b45c22b",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "langfuse_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://langfuse.com/docs",
          "version": null
        }
      ],
      "technology_area": "evaluation_and_observability",
      "technology_id": "langfuse_observability"
    },
    {
      "awoooi_role": "自託管模型 serving 能力與版本 freshness 來源",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "Hugging Face Text Generation Inference",
      "evaluation_priority": "p2",
      "integration_surface": "self_hosted_model_serving",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "d6ea0096e24f7e441961e35a",
          "error": null,
          "http_status": 403,
          "published_at": "2025-12-19T14:35:25Z",
          "reference_version": null,
          "source_id": "tgi_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/huggingface/text-generation-inference/releases/latest",
          "version": "v3.3.7"
        },
        {
          "changed_since_reference": false,
          "content_hash": "c42a7871f12bcff3648aba61",
          "error": null,
          "http_status": 200,
          "published_at": null,
          "reference_version": null,
          "source_id": "tgi_docs",
          "status": "ok",
          "type": "docs",
          "url": "https://huggingface.co/docs/text-generation-inference/index",
          "version": null
        }
      ],
      "technology_area": "model_serving",
      "technology_id": "huggingface_tgi"
    },
    {
      "awoooi_role": "自託管 LLM inference 候選，需 GPU/成本/安全 gate",
      "changed": false,
      "decision": "watch_only_no_change",
      "display_name": "vLLM",
      "evaluation_priority": "p2",
      "integration_surface": "self_hosted_llm_inference",
      "recommended_actions": [
        "keep_watch_only_status"
      ],
      "requires_cost_approval": true,
      "requires_dependency_approval": true,
      "requires_security_review": true,
      "sources": [
        {
          "changed_since_reference": false,
          "content_hash": "df159e475abea07f118301ee",
          "error": null,
          "http_status": 200,
          "published_at": "2026-06-15T05:11:49.394364Z",
          "reference_version": null,
          "source_id": "vllm_pypi",
          "status": "ok",
          "type": "pypi",
          "url": "https://pypi.org/pypi/vllm/json",
          "version": "0.23.0"
        },
        {
          "carried_forward_from_previous": true,
          "changed_since_reference": false,
          "content_hash": "1fee977f40c7bef04a3bb2f9",
          "error": null,
          "http_status": 403,
          "published_at": "2026-06-15T05:27:20Z",
          "reference_version": null,
          "source_id": "vllm_github_release",
          "status": "carried_forward_rate_limited",
          "type": "github_release",
          "url": "https://api.github.com/repos/vllm-project/vllm/releases/latest",
          "version": "v0.23.0"
        }
      ],
      "technology_area": "model_serving",
      "technology_id": "vllm_serving"
    }
  ],
  "technology_area_counts": {
    "agent_frameworks": 6,
    "evaluation_and_observability": 3,
    "mcp_and_a2a": 2,
    "model_providers": 3,
    "model_serving": 2,
    "rag_and_vector": 5
  }
}
