如果你要的是一支可以合法申請、讓學生 agent 呼叫開源模型的免費 API Access Token,ModelScope API-Inference 是一個值得單獨認識的入口。它和前面幾篇的資源包型方案不同:ModelScope 官方目前把 API-Inference 定位成讓註冊使用者免費體驗模型的服務,主要以每日請求次數、單模型請求次數、併發與平台負載管理,而不是發給每個帳戶一個固定的免費 token 餘額。這個差異會直接影響主要 agent 的預算設計。

因此本文的結論是「可以作為低量、可停止的學生實驗燃料」,不是「取得一支 token 就能無限使用」。官方限制頁目前列出每位註冊使用者每日總共 2,000 次 API-Inference 呼叫、單一模型最多 200 次,但特定大型模型可能只有 100 次,實際數字與併發還會動態調整。這些數字應在每次請求的回應標頭中讀回,不應寫死成 agent 永久不變的保證。
本系列只整理合法公開方案,不代收、不交換、不分享任何人的 Access Token,不用多帳戶或多 token 輪替規避限制,也不把 ModelScope 的免費 API 與外部 API-Provider 綁定後的付費資源混在一起。若你要先理解整個學生 agent 的憑證、資料與停止原則,可以一併查看 AI agent 使用 FAQ。
當日敲門模型:Qwen3.5-35B-A3B
如果今天要替學生 agent 選一個起手式,本文先把 Qwen/Qwen3.5-35B-A3B 列為候選。ModelScope 官方 API-Inference 介紹與這個模型頁目前都提供相容 API 的使用示例;模型卡顯示它是 35B 總參數、約 3B activated 的多模態模型,原生 context length 為 262,144。這些資訊讓它適合拿來做短文字、程式理解與多模態入口的第一輪教學,但「官方示例」不等於平台保證今天一定有配額,也不等於所有帳戶都能使用。
啟動流程仍要先讀模型頁的 API-Inference 標誌、目前 Model ID、剩餘模型配額與 response headers;若模型不在當日清單、模型剩餘量低於安全餘量,或回應格式與課程 adapter 不相容,就停在 REVIEW_REQUIRED。不要因為名稱相近便自動切換到 Qwen3.5 的其他量化版、Base 版或新 alias;替代模型必須重新通過課程 allowlist、模型授權與資料邊界。
這支免費 token 真正代表什麼
ModelScope Access Token 首先是一種身分憑證,不是額度本身。它讓 API-Inference 知道請求屬於哪個 ModelScope 使用者,平台再根據帳戶、模型、當日剩餘量與當下資源狀況決定是否接受請求。即使 token 沒有過期,也可能因為單模型額度用完、總量用完、併發過高、模型暫時降載或模型已不再支援而收到錯誤。
官方文件目前提供的主要數字是請求次數,不是 input token 與 output token 的總和。一次請求可能含有很長的上下文,也可能使用串流輸出;在本系列的燃料帳本中,我們仍要記錄估算 token 供自己的預算管理,但不能把它誤報成 ModelScope 官方提供的免費 token 額度。對學生 agent 來說,最安全的設計是同時設定每日請求上限、單次輸入長度、輸出上限與本地估算 token 上限。
官方目前列出的免費配額
- 每位註冊 ModelScope 使用者目前每日總 API-Inference 呼叫上限為 2,000 次。
- 單一模型目前最多 200 次每日呼叫,但特定模型可以有更低的獨立限制。
- 官方限制頁以大型模型為例,部分模型目前限制為每日 100 次;不能把 200 次套用到每一個模型。
- 併發會依平台負載動態限流,原則上以開發者的正常單併發體驗為界,不適合高併發或需要 SLA 的線上任務。
- 模型清單會更新,舊模型可能逐步下架,移除期間也可能先降低可用配額。
官方還說 AIGC 模型有額外的限流策略;某個 AIGC 模型的配額用完時,其他仍支援 API-Inference 的模型可能還能使用總量額度。這不能解讀成可以任意跳到別的模型繞過限制。agent 應先檢查模型是否被課程批准、是否在同一個免費服務範圍內,再決定是否停止或交給人工。
使用前的帳戶資格
ModelScope 官方 API-Inference 文件目前要求註冊帳戶先綁定阿里雲帳戶,並完成實名驗證,才能正常使用免費推理 API。這不是學生 agent 可以自動化或代辦的步驟,也不是可以用重複註冊來避開的限制。若學生沒有符合資格的帳戶,應請課程管理者提供合規入口,或改用學校已批准的服務。
綁定帳戶也不代表可使用阿里雲所有產品,更不代表已獲得可扣款的雲端信用額度。本文只討論 ModelScope 的 API-Inference 免費體驗服務;不要因為頁面提到阿里雲計算資源,就把 Cloud trial、雲端付款帳戶或其他產品的額度接到主要 agent。任何需要付費、建立雲端資源、設定付款方式或啟用外部 API-Provider 的動作,都要另外確認授權。
先確認模型真的支援 API-Inference
ModelScope 的模型庫很大,但不是每一個模型都能直接經由 API-Inference 呼叫。官方限制頁建議在模型頁查看 API-Inference 的標誌與使用入口;模型頁提供的範例才是該模型目前較可靠的參數參考。文件中的模型名稱只是示範,隨著新模型發佈,舊模型可能停止支援,所以 agent 不應永久硬編碼某一個示範模型。
學生工作流可以建立一份很小的模型 allowlist,例如只保留課堂測試已確認的文字模型。啟動時從模型頁或經批准的設定讀回目前 model ID,再和 allowlist 取交集;若沒有交集就停止。不要因為某個模型名稱看起來相近,就自動把它當成新版本或替代品。模型能力、上下文、輸出格式與模型授權都要重新確認。
Access Token 的保存方式
Access Token 應放在本機或課程代理層的 secret store,只透過環境變數注入 server-side 程式。不要把它放進前端 JavaScript、公開 Git repository、notebook 輸出、截圖、課堂聊天室或 agent 長期記憶。文章與教學只保留變數名稱,不保留任何可登入或可呼叫的憑證。
如果 token 疑似外洩,先在 ModelScope 個人 Access Tokens 頁面依官方提供的管理選項停用、刪除或重新建立,再檢查最近的呼叫紀錄與本地日誌。不要把疑似洩漏的 token 貼到客服群組請別人測試,也不要用新 token 取代後繼續隱瞞原本的外洩。學生共享環境應由管理者負責撤銷與重新分發,不把管理憑證交給每一個 notebook。
第一道閘門是讀回配額標頭
ModelScope 官方限制頁列出四個很重要的回應標頭:使用者每日上限、使用者剩餘量、目前模型每日上限、目前模型剩餘量。名稱分別是 modelscope-ratelimit-requests-limit、modelscope-ratelimit-requests-remaining、modelscope-ratelimit-model-requests-limit 與 modelscope-ratelimit-model-requests-remaining。agent 應在每一次成功或失敗回應後保存數值與時間,不應只在登入時讀一次。
function readModelScopeQuota(response) {
const number = (name) => Number(response.headers.get(name));
return {
userLimit: number('modelscope-ratelimit-requests-limit'),
userRemaining: number('modelscope-ratelimit-requests-remaining'),
modelLimit: number('modelscope-ratelimit-model-requests-limit'),
modelRemaining: number('modelscope-ratelimit-model-requests-remaining'),
observedAt: new Date().toISOString()
};
}
function assertQuotaForStudentRun(quota, reserve = 2) {
if (!Number.isFinite(quota.userRemaining) || !Number.isFinite(quota.modelRemaining)) {
throw new Error('ModelScope quota headers unavailable');
}
if (quota.userRemaining <= reserve || quota.modelRemaining <= reserve) {
throw new Error('ModelScope quota is below the safety reserve');
}
}
標頭讀不到時不要把它當成「沒有上限」。某些錯誤或代理層可能會移除標頭;在這種情況下,agent 只保留本地保守計數,或直接交給人工。安全餘量應至少保留給重新讀回與收尾,不要把最後一個請求用到零。當總量和單模型餘量衝突時,採用較小的數字。
最小 OpenAI 相容請求
官方 API-Inference 目前提供 OpenAI API 相容的文字模型介面,base URL 是 https://api-inference.modelscope.cn/v1/。請求中的 model 必須是目前支援的 ModelScope Model ID。第一次測試使用公開或合成文字、短訊息、較小輸出上限與單併發;不要一開始就把長篇對話或整個 repository 送上去。
async function callModelScope(prompt) {
const token = process.env.MODELSCOPE_ACCESS_TOKEN;
const model = process.env.MODELSCOPE_APPROVED_MODEL || 'Qwen/Qwen3.5-35B-A3B';
if (!token || !model) throw new Error('ModelScope secret or approved model is missing');
const response = await fetch('https://api-inference.modelscope.cn/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model,
messages: [{ role: 'user', content: prompt.slice(0, 4000) }],
max_tokens: 192,
temperature: 0.2,
stream: false
})
});
const quota = readModelScopeQuota(response);
if (!response.ok) throw Object.assign(new Error(`ModelScope HTTP ${response.status}`), { status: response.status, quota });
const data = await response.json();
return { text: data.choices?.[0]?.message?.content ?? '', usage: data.usage ?? null, quota };
}
官方文件提醒,推理模型的參數可能與一般 OpenAI 相容範例有細微差異,所以模型頁範例優先於通用範例。若要使用視覺模型或 AIGC 圖像介面,必須另外讀該模型頁的輸入格式、圖片大小、非同步任務與配額規則;不要把文字模型的請求限制直接套到影像任務。本文的學生燃料批准範圍先限於短文字任務。
把每次請求當成一次消耗
因為官方免費額度按呼叫次數描述,agent 的任務設計要避免無限重試與隱藏的多輪迴圈。一個看似簡單的回答若觸發工具、規劃器、反思器與重寫器,可能實際消耗多個請求。課堂作業應預先指定每個任務最多幾次 API 呼叫,並在每一層把剩餘總量與剩餘模型量傳回主控制器。
串流輸出不會讓配額消失;它只是改變回應傳輸方式。實驗若需要穩定計數,可以先使用非串流請求,等單次任務與錯誤處理成熟後再測試串流。無論哪種方式,都要在完成、超時、連線中斷與部分輸出時保存 quota header 和本地請求 ID,避免重試時不清楚上一個請求是否已被平台計數。
429、併發與模型下架
- 429 或限流:停止立即重試,降低併發與頻率,保存 response header;不能用另一支 token 或多個帳戶繞過平台限制。
- 模型剩餘量為零:停止該模型,等待官方下一個配額週期或人工選擇已批准的替代模型;不能任意切換到未讀過模型條款的模型。
- 總量接近零:停止整個學生 agent,因為換模型也不會增加使用者總量。
- 模型下架或不再支援:重新讀模型頁與 allowlist,不以名稱猜測替代品。
- 連線逾時:只允許有 request ID 與狀態判定的有限重試;不確定請求是否已計數時先停下來。
function modelScopeRetryPolicy(error) {
if (error?.status === 429) return { action: 'WAIT_AND_RECHECK_HEADERS', retry: false };
if (error?.status === 404) return { action: 'STOP_AND_REFRESH_MODEL_ALLOWLIST', retry: false };
if (error?.status === 401 || error?.status === 403) return { action: 'STOP_AND_REVIEW_TOKEN_OR_ACCOUNT', retry: false };
if (error?.code === 'ETIMEDOUT') return { action: 'STOP_UNTIL_REQUEST_STATE_IS_KNOWN', retry: false };
return { action: 'STOP_AND_ESCALATE', retry: false };
}
把 retry: false 當成安全預設,是因為主要 agent 不應在配額狀態不明時自行放大消耗。若課程確實需要重試,應由外層控制器給出有限次數、等待時間與新的配額讀回,並把每一次嘗試記成獨立事件。失敗不等於沒有消耗,成功也不等於仍有免費安全餘量。
資料與模型授權不能只看免費
ModelScope 隱私政策說明平台可能處理使用者在社群服務中的個人資訊、操作紀錄與其他日誌。API-Inference 又會把請求送到雲端推理服務,所以學生 agent 的預設輸入應是公開內容、自己編造的資料或經明確批准的匿名資料。不要把個資、未公開作業、公司機密、憑證、cookie 或受限制的原始碼送給免費公有推理服務。
「開源模型」也不等於所有模型都使用同一個商業授權。ModelScope 模型頁可能附帶不同的 license、限制與 attribution 要求;在課堂外分享輸出、建立產品或作商業用途前,要閱讀實際模型卡與授權文件。官方 API-Inference 限制頁本身把服務定位為非商業、非營利的體驗產品,並提醒不要用於需要高併發或 SLA 的線上任務。
學生 agent 的建議架構
把 ModelScope 放在「實驗 provider」而不是「永遠可用的主 fallback」。外層控制器保存本地請求計數、估算 token、最後一次 quota header、已批准模型、任務截止時間與停止原因;真正的 Access Token 只在 server-side adapter 內可見。每個學生任務先拿到一份小預算,完成後即釋放,不讓子 agent 自己建立新 token 或改寫 provider 設定。
- 開始前:檢查 token 存在、模型在 allowlist、剩餘總量與單模型量都高於保留值。
- 請求中:單併發、短上下文、低輸出上限、有限 timeout,不自動切換未批准模型。
- 完成後:保存狀態碼、quota header、usage 若有、估算 token 與任務結果摘要。
- 停止時:清除暫存內容、保留不含秘密的審計事件,將 provider 標記為需要人工檢查。
- 多人使用:由管理者控制配額與撤銷,不把一支長期 token 貼進每個學生環境。
和資源包型免費方案的差異
前面的部分供應商提供「資源包」,會以 token 或其他單位顯示剩餘量;ModelScope API-Inference 則以請求數、模型數與動態併發為主要界線。前者要防止資源包用完轉付費,後者要防止無限重試、單模型耗盡與平台動態限流。兩者都需要 secret 管理與資料治理,但監測欄位不同,不能把資源包計數器直接套來當 ModelScope 的官方額度。
對學生課程來說,ModelScope 的好處是不用先建立付費雲端資源就能做低量模型體驗;代價是每日呼叫上限與模型覆蓋會變動,不能承諾穩定吞吐量。若主要 agent 需要固定延遲、長上下文、大批量或全天候服務,就應進入正式的供應商選型與付費審核,不應把免費 API-Inference 當作生產基礎設施。
今天的放行條件
ModelScope 只有在以下條件全部成立時,才放入學生 agent 的人工批准清單:帳戶已合法完成必要的 ModelScope 與阿里雲綁定、實名要求已由本人完成;Access Token 只保存在 server-side secret store;模型頁明確顯示 API-Inference 可用;模型 license 與資料範圍已讀過;啟動前後都能讀到 quota header;單併發、每日請求、單模型請求與本地 token 預算都有保留值;429、401、403、404、timeout 都會停機或交人工;沒有 fallback 到未批准模型;沒有多帳戶輪替或 token 分享。
只要配額標頭缺失、模型來源不明、帳戶資格未完成、服務條款不適用,或學生要求把 token 直接放在前端,狀態就應是 REVIEW_REQUIRED,而不是 FREE_READY。這支 Access Token 可以幫助學生學習 API 整合與配額治理,但它不應被描述成每月固定、永久或無限的免費 token。
還要把「每天重置」與「每次請求能用多少 token」分開。官方目前公布的是每日呼叫窗口,沒有在這個限制頁承諾所有模型共享同一個 context window、輸出長度或 token 單次上限;這些要從實際模型頁和回應錯誤讀回。課程可以自己設一個更小的上下文預算,例如先截斷公開文章、先做摘要再進入下一輪,讓請求次數與 token 估算都能被學生看懂。當模型輸出突然變長或輸入包含工具結果時,立即重新計算預算,不要因為當日呼叫次數還剩很多就繼續送出。
若要做多學生的課堂實驗,建議把每日總量拆成每人更小的本地配額,並由一個受控 adapter 統一記錄,不要讓每個人直接取得同一支長期憑證。adapter 可以在總量剩餘、模型剩餘、課堂截止時間或資料類型不符合時拒絕請求;管理者只需要撤銷一個入口,便能停止整個批次。這種設計比把免費服務當成共享公共水龍頭更容易追查,也更容易在平台規則變動時安全收斂。
每次實驗結束後,刪除暫存的原始提示與模型回應,只保留去識別化的請求數、錯誤類型、模型 ID、配額讀回與品質分數。這樣既能教學生看懂 API 治理,也不會為了追蹤免費額度而建立另一份不必要的個人資料庫。
官方來源與最後判斷
本文的資格、介面與配額判斷以 ModelScope 官方 API-Inference 介紹、API-Inference 使用限制、Access Token 頁面、OpenAPI 文件、隱私政策 與實際模型頁為依據。官方頁面會更新,使用前應重新讀回模型支援與配額標頭;不要只依賴本文的日期快照。
最後結論:ModelScope Access Token 是目前可以列入學生 agent 實驗清單的免費 API 憑證,但燃料單位是受動態限制的呼叫次數,不是固定 token 餘額。它適合公開資料、短文字、單併發、低量課堂任務;不適合 production、商業 SLA、高併發或無人值守 fallback。先讀回模型支援與配額標頭,再送出每一次請求;只要狀態不明,就停止。
本文沒有代為註冊 ModelScope、綁定阿里雲、完成實名、建立 Access Token、呼叫真實 API 或發布 WordPress;本機只保存官方研究與不含秘密的程式結構。下一篇將依同一門檻繼續尋找另一個可驗證的免費 API 入口,先分清楚它提供的是 token、請求次數、試用金額或純速率限制,再決定是否納入學生燃料。
KEEP READING
接著讀什麼?
從同一主題繼續閱讀,或回到 YOLO LAB 的完整文章索引,找到下一個值得投入時間的問題。


發表迴響