Repository 指南 · 概覽 · v4
pydantic / pydantic-ai
“How Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.” — 作者自述
- AI Agents
- Python
- MIT · 開源授權
- 原始 repository
- pydantic/pydantic-ai
- 來源平台
- GitHub
- 擁有者 / 組織
- pydantic
- 授權
- MIT · 開源授權
- 分析的版本
- 5b73d7c0da119f12c65b015b15eba3e4d128fca9
- 最後驗證
原始專案有更新,但本指南引用的程式碼沒有變動。預設分支已前進到 f06bba53794d,2026-10-03 檢查。版本差異比對了 39 個變動的檔案,本指南引用的程式碼區域都沒有變動。本頁描述的仍是版本 5b73d7c0da11;整個 repository 的統計數字(檔案數、呼叫次數等)指的是那個版本。
本頁中文由負責的 AI 編輯依英文正式版本 v4 翻譯;程式碼名稱、路徑、行號與數字都經確定性檢查,與英文版一致。陳述與依據表保留英文原文,因為那是獨立驗證者核對過的紀錄。看英文原文
pydantic/pydantic-ai Repository 概覽說明
本頁用語說明
- Entrypoint record(進入點記錄)
- 分析器標記為「程式可能從這裡開始執行」的檔案。附有 __main__ guard 摘錄時,表示檔案裡有 if __name__ == "__main__": 區塊,摘錄顯示它呼叫了什麼;沒有摘錄時,只是依檔名判斷。
- Bounded static execution path(有界靜態執行路徑)
- 不執行程式、直接從原始碼重建出的呼叫鏈,走到固定步數就停。它說明在紙面上能追到多遠,不代表實際執行時會發生什麼。
- Unresolved boundary(未解析邊界)
- 靜態路徑停下的地方:下一個呼叫進入外部函式庫,或不執行就無法確定。這是本次分析的邊界,不是 repository 的缺陷。
- Static relations(靜態關係)
- 在原始碼中找到的呼叫與 import。「external or unresolved」表示指向分析範圍以外。
- Module role(模組角色)
- 分析器依呼叫進出次數推論的檔案標籤(例如 core、entry/orchestration、leaf)。它描述的是在呼叫圖中的位置,不是作者的設計意圖。
- Test-like files(類測試檔案)
- 名稱或位置看起來像測試的檔案。本次分析只計數,不執行。
- Observed · inferred · author-claimed · unresolved
- 每句話的依據:直接讀自分析的檔案;由分析器從檔案推論;repository 作者自述(metadata、README);或本次分析無法確定。
- Verified(已驗證)
- 本頁有兩種用法。在分析器的記錄裡(「verified provenance」「verified entrypoint」),它表示這筆記錄是直接從分析的檔案讀到的,也就是本指南所說的 observed;以進入點來說,就是檔案裡確實有 __main__ guard 的文字。分析器在 2026-10-04 修正後,只有 cli.py、main.py 這類像進入點的檔名、沒有 guard 的檔案,會記為 inferred(推測);在那之前分析的指南仍把這類檔案標成 verified,它依然只是對檔案用途的推測。它不代表程式被執行或測試過。「最後驗證」是這份指南最後一次通過本實驗室檢查的日期,檢查對象是所標示版本的分析記錄,不是對 repository 本身的審查。
一個採用 MIT 授權的大型 Python repository(分析了 4082 個檔案,最新 release 為 v2.54.0),已驗證的啟動點是分散在套件、腳本與範例裡的許多 __main__ 守衛。依靜態呼叫次數推得的角色指向 pydantic_ai_slim/pydantic_ai(agent、models、messages、exceptions)是函式庫的核心,另有各自獨立打包的 pydantic_evals 和 pydantic_graph、2514 個類測試檔案,以及來自清單檔、並寫明解析缺口的依賴證據。
它是什麼
平台 metadata 記錄的主要語言是 Python,有 34,234,401 個 Python 位元組,Makefile、PLpgSQL 和 Shell 的數量則小得多。它採用 MIT 授權;記錄到的最新 release 是 v2.54.0,發布於 2026-10-03,當時 repository 有 20385 個 stargazer。GitHub topics 包括 agent-framework、genai、harness、harness-engineering、llm、pydantic 和 python。
Repository 的描述「How Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.」(大意是:用 Python 做 AI;agent、即時語音、影像生成、embedding;每個模型、每個介面都從頭到尾有型別)和首頁 https://pydantic.dev/pydantic-ai 都是作者提供的 metadata,不是分析器的觀察。
在結構上,分析器統計了 4082 個分析過的檔案。
它怎麼啟動
可執行的啟動點以 Python __main__ 守衛的形式,分散在 pydantic_ai_slim 和 clai 套件、.github/scripts、examples 和 tests 裡。有兩個套件帶有 __main__ 守衛:pydantic_ai_slim/pydantic_ai/__main__.py 呼叫 cli_exit(),clai/clai/__main__.py 呼叫 _cli.cli_exit('clai')。.github/scripts/ 底下還有更多經驗證的守衛,包括 agent_provider_health.py、agent_spend_report.py 和 check_api_compatibility.py。
範例展示了使用方式:pydantic_model.py 執行 agent.run_sync('The windy city in the US of A.'),並印出 result.output 和 result.usage;data_analyst.py 以一段提示和一個 deps 物件呼叫 analyst_agent.run_sync。chat_app.py 為 pydantic_ai_examples.chat_app:app 啟動一個 uvicorn 伺服器,tests/ 底下也有一個模組呼叫 mcp.run()。
唯一被詳細追蹤的有界靜態流程從 .claude/skills/testing-skill/parse_cassette.py 開始,經過 main() 和 parse_cassette(),在 argparse.ArgumentParser 和 args.cassette.exists 這類未解析的外部邊界結束;分析器把它們標為 unresolved_boundary,所以在那之後的事都沒有確立。摘要裡的「偵測到的起點」examples/pydantic_ai_examples/slack_lead_qualifier/app.py 只是依檔名推測,並沒有確立為主要進入點。
結構
分析器把 docs、src 和 tests 指定為頂層子系統。依賴記錄引用的來源路徑有 pydantic_evals/pyproject.toml 和 pydantic_graph/pyproject.toml,以及根目錄的 pyproject.toml。
依靜態呼叫次數推得的角色(分析器的推論)勾勒出函式庫的樣貌:messages.py 有 403 個呼入、70 個呼出,exceptions.py 有 421 個呼入、沒有呼出,兩者看起來都是被廣泛共用的層。agent/__init__.py 的輪廓正好相反,4 個呼入、203 個呼出,被標為 service/core 候選。models/__init__.py(113 入、52 出)和 models/openai.py(8 入、151 出)位在兩者之間。
分析器總共記錄了 150000 條關係,其中 124623 條是呼叫、25377 條是 import;這些關係裡有 125702 條仍是外部或未解析的,24298 條解析到本地目標。
依賴與測試
根目錄的 pyproject.toml 宣告了一個龐大的 dev 群組:pytest、anyio、trio、coverage、dirty-equals、inline-snapshot、hypothesis、pytest-mock、pytest-xdist、pytest-split、mypy、pyright 和 ruff。子套件各有自己的清單檔:pydantic_graph 把 anyio、logfire-api、pydantic 和 typing-inspection 列為 runtime 依賴,pydantic_evals 則把 logfire 列為 optional。清單的涵蓋並不完整:解析器會讀 requirements 檔案和 pyproject.toml(PEP 621/735、Poetry 表格),但不讀 setup.py、setup.cfg、Pipfile 或 lock 檔,而且版本限制照原樣記錄。
這個 repository 有 2514 個類測試檔案和 8 個建置/依賴清單檔。tests/conftest.py 定義了 pytest_configure(第 101-113 行)和一個 anyio_backend 函式(第 367-370 行)。
涵蓋上有兩個缺口:有界分析讓超過 400 kB 的檔案、minified bundle 和 vendored 目錄不被解析;分析資料回報有五個檔案處於這種狀態,但沒有確立少了它們對這次分析的影響。
先讀什麼
- 先看 README.md:分析器把它歸為專案層級的重要檔案。
- 接著看 pyproject.toml 和 LICENSE,它們也是專案層級的重要檔案。
- 再看函式庫的核心:pydantic_ai_slim/pydantic_ai/agent/__init__.py,抽取出的 Agent 類別橫跨第 476-4290 行;接著看 messages.py 和 exceptions.py(例如 SystemPromptPart、ModelRetry)。
- 然後看一個可執行的範例 examples/pydantic_ai_examples/pydantic_model.py,在脈絡中觀察 run_sync 的用法和結果物件。
- 分析器建議的路徑也一致:先從清單檔和重要符號開始,追蹤有界執行路徑,並在修改程式之前檢查未解析的邊界。
這次分析的限制
這份概覽只建立在靜態分析上:反射、執行期依賴注入、動態 import、monkey-patching、產生的程式碼、框架的執行期接線和動態分派都沒有解析。這裡沒有任何內容確立執行時的行為:安裝/執行/建置的推論並不完整,安裝指令也沒有驗證。來自 README 的敘述即使被引用,也仍然只是作者的說法,因為抽取是逐行進行的,會略過標題、fenced code、HTML、徽章、表格和 shell 提示。
關係的涵蓋並不完整:記錄的 150000 條關係中有 125702 條仍是外部或未解析的,而記錄的總數正好等於文件寫明的每個 repository 150000 條上限。分析資料也回報有三條進入點路徑沒有靜態偵測到的呼叫步驟;那些進入點做什麼並沒有確立。
分析沒有解析任何外掛或擴充套件如何載入的接線;動態 import 和框架的執行期接線都受同樣的靜態限制。
值得注意的符號
- models/__init__.py 定義了 known_model_names(第 120-127 行)、Model 類別(第 454-1149 行)、StreamedResponse(第 1153-1417 行)和 parse_model_id(第 1645-1660 行)。
- pydantic_ai_slim/pydantic_ai/exceptions.py 定義了 ModelRetry(59-99)、ToolFailed(102-149)、CallDeferred(152-167)、ApprovalRequired(170-185)和 RunCancelled(270-449)。
- pydantic_ai_slim/pydantic_ai/messages.py 定義了 SystemPromptPart、FileUrl、VideoUrl、AudioUrl、ImageUrl、DocumentUrl 和 BinaryContent。
這次分析無法確定的事
這些是撰寫模型對分析記錄自己的說明。lim_3、exec_* 或 claim_… 這類識別碼指的是那次分析裡的記錄;陳述與依據表引用的也是同一批記錄。
- 沒有確立主要進入點:摘要裡的「偵測到的起點」只是依檔名推測,而唯一被追蹤的有界路徑從 .claude/skills/ 底下的一個腳本開始。
- 記錄的 150000 條靜態關係中有 125702 條是外部或未解析的;記錄的總數等於文件寫明的 repository 上限,所以這組關係是被截斷的。
- 有五個檔案被列入清單但沒有被解析(過大、minified 或 vendored);它們的內容不在這次分析之中。
- 執行時的行為沒有驗證:安裝/執行/建置的推論並不完整,安裝指令沒有驗證,而且有三條進入點路徑沒有靜態偵測到的呼叫步驟。
- 依模組呼叫次數推得的角色是靜態推論,不一定反映執行時的重要性。
- 依賴解析不包括 setup.py、setup.cfg、Pipfile 和 lock 檔;版本限制照原樣記錄。
陳述與依據 — 39 條陳述,39 條經獨立驗證者確認(英文原文)
上面每一句都是一條陳述,各自引用分析裡的依據編號。編號是這次分析內部的;表格列出每條陳述靠的是什麼、依據有多強。
Every substantive statement above is a claim bound to grounding IDs of the analyzed revision. Global grounding IDs are namespaced by the analysis run.
| Claim | Epistemic status | Verifier | Grounding (global IDs) |
|---|---|---|---|
| c1 Platform metadata records Python as the primary language; recorded language bytes are 34234401 Python plus smaller Makefile, PLpgSQL and Shell counts. | observed | supported | analysis_169ebfd40f3abfe7:meta_primary_language, analysis_169ebfd40f3abfe7:meta_language_bytes |
| c2 Platform metadata records an MIT license, a latest release v2.54.0 published 2026-10-03, and 20385 stargazers observed at 2026-10-03. | observed | supported | analysis_169ebfd40f3abfe7:meta_license, analysis_169ebfd40f3abfe7:meta_latest_release, analysis_169ebfd40f3abfe7:meta_stars |
| c3 GitHub topics recorded for the repository are: agent-framework, genai, harness, harness-engineering, llm, pydantic, python. | observed | supported | analysis_169ebfd40f3abfe7:meta_topics |
| c4 The repository description ('How Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.') and the homepage https://pydantic.dev/pydantic-ai are author-supplied metadata, not analyzer observations. | author_claimed | supported | analysis_169ebfd40f3abfe7:meta_description, analysis_169ebfd40f3abfe7:meta_homepage |
| c5 The analyzer's repository summary counts 4082 analyzed files. | inferred | supported | analysis_169ebfd40f3abfe7:claim_72d2b935d53e |
| c6 pydantic_ai_slim/pydantic_ai/__main__.py contains a __main__ guard calling cli_exit(), and clai/clai/__main__.py contains one calling _cli.cli_exit('clai'). | observed | supported | analysis_169ebfd40f3abfe7:py_entry_34c79207455c, analysis_169ebfd40f3abfe7:py_entry_ced396f72e87 |
| c7 Verified __main__ guards exist under .github/scripts/, including agent_provider_health.py, agent_spend_report.py and check_api_compatibility.py. | observed | supported | analysis_169ebfd40f3abfe7:py_entry_1a93f87ae56b, analysis_169ebfd40f3abfe7:py_entry_120add6b5d1d, analysis_169ebfd40f3abfe7:py_entry_6490561ef266 |
| c8 Examples run agents inside __main__ guards: pydantic_model.py calls agent.run_sync('The windy city in the US of A.') then prints result.output and result.usage; data_analyst.py calls analyst_agent.run_sync with a user prompt and a deps object. | observed | supported | analysis_169ebfd40f3abfe7:py_entry_e19dcd82aa60, analysis_169ebfd40f3abfe7:py_entry_09a800ee582e |
| c9 examples/pydantic_ai_examples/chat_app.py starts a uvicorn server (with reload) for pydantic_ai_examples.chat_app:app, and tests/example_modules/mcp_server.py calls mcp.run() under a guard. | observed | supported | analysis_169ebfd40f3abfe7:py_entry_2a02f95bcb6d, analysis_169ebfd40f3abfe7:py_entry_3676648a1457 |
| c10 The bounded static path from .claude/skills/testing-skill/parse_cassette.py's __main__ guard goes to main() and parse_cassette() and ends at unresolved external boundaries such as argparse.ArgumentParser and args.cassette.exists (terminal_reason unresolved_boundary). | inferred | supported | analysis_169ebfd40f3abfe7:py_entry_e9ef1059e87f, analysis_169ebfd40f3abfe7:exec_bb0400b95179, analysis_169ebfd40f3abfe7:exec_5f90db10d033 |
| c11 The summary names examples/pydantic_ai_examples/slack_lead_qualifier/app.py as a detected starting point, but that rests on a filename heuristic, so no primary entry is established. | inferred | supported | analysis_169ebfd40f3abfe7:entry_26, analysis_169ebfd40f3abfe7:claim_72d2b935d53e |
| c12 The analyzer treats docs, src and tests as top-level subsystems. | observed | supported | analysis_169ebfd40f3abfe7:subsys_1, analysis_169ebfd40f3abfe7:subsys_2, analysis_169ebfd40f3abfe7:subsys_3 |
| c13 Dependency records cite pydantic_evals/pyproject.toml, pydantic_graph/pyproject.toml and the root pyproject.toml as their source paths. | observed | supported | analysis_169ebfd40f3abfe7:dep_1, analysis_169ebfd40f3abfe7:dep_2, analysis_169ebfd40f3abfe7:dep_6 |
| c14 Static call-degree roles: pydantic_ai_slim/pydantic_ai/messages.py has 403 incoming and 70 outgoing calls (service/core candidate); exceptions.py has 421 incoming and 0 outgoing (leaf/data-boundary candidate). | inferred | supported | analysis_169ebfd40f3abfe7:role_190, analysis_169ebfd40f3abfe7:role_172 |
| c15 pydantic_ai_slim/pydantic_ai/agent/__init__.py has 4 incoming and 203 outgoing calls and is labeled a service/core candidate. | inferred | supported | analysis_169ebfd40f3abfe7:role_94 |
| c16 pydantic_ai_slim/pydantic_ai/models/__init__.py has 113 incoming and 52 outgoing calls; models/openai.py has 8 incoming and 151 outgoing calls. | inferred | supported | analysis_169ebfd40f3abfe7:role_191, analysis_169ebfd40f3abfe7:role_212 |
| c17 The analyzer recorded 150000 relations: 124623 calls and 25377 imports; 125702 are external or unresolved and 24298 resolved locally. | observed | supported | analysis_169ebfd40f3abfe7:relation_counts |
| c18 The root pyproject.toml dev group includes pytest, anyio, trio, coverage, dirty-equals, inline-snapshot, hypothesis, pytest-mock, pytest-xdist, pytest-split, mypy, pyright and ruff. | observed | supported | analysis_169ebfd40f3abfe7:dep_19, analysis_169ebfd40f3abfe7:dep_6, analysis_169ebfd40f3abfe7:dep_7, analysis_169ebfd40f3abfe7:dep_11, analysis_169ebfd40f3abfe7:dep_12, analysis_169ebfd40f3abfe7:dep_18, analysis_169ebfd40f3abfe7:dep_40, analysis_169ebfd40f3abfe7:dep_22, analysis_169ebfd40f3abfe7:dep_25, analysis_169ebfd40f3abfe7:dep_26, analysis_169ebfd40f3abfe7:dep_43, analysis_169ebfd40f3abfe7:dep_44, analysis_169ebfd40f3abfe7:dep_45 |
| c19 pydantic_graph/pyproject.toml lists anyio, logfire-api, pydantic and typing-inspection as runtime dependencies; pydantic_evals/pyproject.toml lists logfire as optional. | observed | supported | analysis_169ebfd40f3abfe7:dep_2, analysis_169ebfd40f3abfe7:dep_3, analysis_169ebfd40f3abfe7:dep_4, analysis_169ebfd40f3abfe7:dep_5, analysis_169ebfd40f3abfe7:dep_1 |
| c20 Dependency parsing covers requirements files and pyproject.toml (PEP 621/735, Poetry tables); setup.py, setup.cfg, Pipfile and lock files are not parsed, and version constraints are recorded as written. | observed | supported | analysis_169ebfd40f3abfe7:lim_3a |
| c21 The repository contains 2514 test file(s) or test-like file(s) and 8 build/dependency manifest file(s). | observed | supported | analysis_169ebfd40f3abfe7:ev_tests_1, analysis_169ebfd40f3abfe7:ev_manifest_1 |
| c22 tests/conftest.py defines pytest_configure (lines 101-113) and an anyio_backend function (lines 367-370). | observed | supported | analysis_169ebfd40f3abfe7:py_func_bb16171a4902, analysis_169ebfd40f3abfe7:py_func_f4fbd8cb1704 |
| c23 Bounded analysis leaves files over 400 kB, minified bundles and vendored directories inventoried but not parsed; relation extraction is capped at 2500 per file and 150000 per repository. | observed | supported | analysis_169ebfd40f3abfe7:lim_6 |
| c24 The packet reports five files as inventoried but not parsed; what those files contain and what their absence costs this analysis is not established. | unresolved | supported | analysis_169ebfd40f3abfe7:claim_f0da02ed20f8 |
| c25 README.md is classified as a project-level important file; start reading there. | observed | supported | analysis_169ebfd40f3abfe7:important_1 |
| c26 pyproject.toml and LICENSE are classified as project-level important files. | observed | supported | analysis_169ebfd40f3abfe7:important_2, analysis_169ebfd40f3abfe7:important_3 |
| c27 Read pydantic_ai_slim/pydantic_ai/agent/__init__.py, where the extracted Agent class spans lines 476-4290. | observed | supported | analysis_169ebfd40f3abfe7:py_class_79f0e588fd25 |
| c28 Read messages.py and exceptions.py for shared types such as SystemPromptPart and ModelRetry, then examples/pydantic_ai_examples/pydantic_model.py to see run_sync usage with result.output and result.usage. | observed | supported | analysis_169ebfd40f3abfe7:py_class_d8c3a02ec320, analysis_169ebfd40f3abfe7:py_class_d49faffe09ee, analysis_169ebfd40f3abfe7:py_entry_e19dcd82aa60 |
| c29 The analyzer's suggested learning path: start with manifests and important symbols, then trace the bounded execution path and inspect unresolved boundaries before changing code. | inferred | supported | analysis_169ebfd40f3abfe7:claim_e56db45165bf |
| c30 The analysis is static only: reflection, runtime dependency injection, dynamic imports, monkey-patching, generated code, framework runtime wiring and dynamic dispatch are not resolved. | observed | supported | analysis_169ebfd40f3abfe7:lim_1 |
| c31 Install/run/build inference is partial and installation commands are not verified, so runtime behavior is unestablished by this analysis. | observed | supported | analysis_169ebfd40f3abfe7:lim_2 |
| c32 README claim extraction is line-based, skipping headings, fenced code, HTML, badges, tables and shell prompts; README-derived statements remain author claims. | observed | supported | analysis_169ebfd40f3abfe7:lim_4a |
| c33 125702 of the 150000 recorded relations remain external or unresolved. | observed | supported | analysis_169ebfd40f3abfe7:relation_counts |
| c34 Recorded relations total exactly the documented 150000-per-repository cap (2500 per file also documented), so the recorded relation set is capped. | observed | supported | analysis_169ebfd40f3abfe7:lim_6, analysis_169ebfd40f3abfe7:relation_counts |
| c35 The packet reports three entrypoint paths with no statically detected call steps; what those entrypoints do is not established. | unresolved | supported | analysis_169ebfd40f3abfe7:claim_38330fcb3baf |
| c36 The analysis resolves no wiring for how plugin or extension content loads; dynamic imports and framework runtime wiring are outside static resolution. | observed | supported | analysis_169ebfd40f3abfe7:important_4, analysis_169ebfd40f3abfe7:lim_1 |
| c37 models/__init__.py defines known_model_names (lines 120-127), the Model class (lines 454-1149), StreamedResponse (lines 1153-1417) and parse_model_id (lines 1645-1660). | observed | supported | analysis_169ebfd40f3abfe7:py_func_16c786b72118, analysis_169ebfd40f3abfe7:py_class_60a18e1a7082, analysis_169ebfd40f3abfe7:py_class_ff8431d660fe, analysis_169ebfd40f3abfe7:py_func_b20321ee6970 |
| c38 pydantic_ai_slim/pydantic_ai/exceptions.py defines ModelRetry (lines 59-99), ToolFailed (102-149), CallDeferred (152-167), ApprovalRequired (170-185) and RunCancelled (270-449). | observed | supported | analysis_169ebfd40f3abfe7:py_class_d49faffe09ee, analysis_169ebfd40f3abfe7:py_class_eb835e57c589, analysis_169ebfd40f3abfe7:py_class_dcb9c601b016, analysis_169ebfd40f3abfe7:py_class_a42bb6b88176, analysis_169ebfd40f3abfe7:py_class_cb47d788aff7 |
| c39 pydantic_ai_slim/pydantic_ai/messages.py defines SystemPromptPart, FileUrl, VideoUrl, AudioUrl, ImageUrl, DocumentUrl and BinaryContent. | observed | supported | analysis_169ebfd40f3abfe7:py_class_d8c3a02ec320, analysis_169ebfd40f3abfe7:py_class_cbe4737a495b, analysis_169ebfd40f3abfe7:py_class_337a23459368, analysis_169ebfd40f3abfe7:py_class_e8d528a88774, analysis_169ebfd40f3abfe7:py_class_54b4119c54e7, analysis_169ebfd40f3abfe7:py_class_c0fc8af8d1b8, analysis_169ebfd40f3abfe7:py_class_7ec8af3b4ac7 |
來源、權利與說明 · attribution-license-templates/v0.1
權利聲明。原始 repository 託管於 GitHub。其原始碼、文件、名稱、媒體與相關素材的權利,仍屬各自的作者、貢獻者與其他權利人所有,並受該 repository 的授權條款約束。
Original repository hosted on GitHub. Repository source code, documentation, names, media, and related project materials remain subject to the rights of their respective authors, contributors, and other rights holders and to applicable repository license terms.
平台聲明。GitHub 是所連結 repository 的來源託管平台。GitHub 與相關標誌為 GitHub, Inc. 的商標。除非另有明確說明,EVEMISS Technology 與 GitHub 之間沒有隸屬或背書關係。
GitHub is the source hosting platform for the linked repository. GitHub and related marks are trademarks of GitHub, Inc. EVEMISS Technology is not affiliated with or endorsed by GitHub unless explicitly stated otherwise.
這一頁怎麼來的。本頁由對應版本的 repository 分析與 AI 輔助的編輯工具產生。技術陳述綁定所分析的版本;原始 repository 更新後,可能重新驗證。
This page was produced using revision-aware repository analysis and AI-assisted editorial tooling. Technical claims are tied to the analyzed repository revision and may be revalidated when the source repository changes.
本頁包含 AI 輔助分析,並經 EVEMISS Technology 人工與 AI 協力審閱。 · 回報權利疑慮 · 所有 repository 指南