← 所有文章
2026-04-30 · Multi-Agent · AI Agent · API Key 管理 · LangChain · CrewAI
Multi-Agent 系統的 API Key 管理:自動註冊、預算隔離與費用追蹤
Orchestrator + Research + Code + QA + Report 五個 agent 怎麼管理 API Key?BazaarLink 的 /api/v1/agents/register 讓 agent 啟動時自我註冊,配合 Management API 批量核發 + 獨立預算上限,每個 agent 的費用清楚歸戶。
Multi-Agent 系統的 API Key 管理問題
當你從「一個 AI 功能」升級到「多個 Agent 協作」,API Key 管理會迅速失控。
典型的 Multi-Agent 系統可能有:
- Orchestrator Agent:分配任務、協調其他 agent
- Research Agent:搜尋資料、整理摘要
- Code Agent:撰寫和審查程式碼
- QA Agent:測試和驗證輸出
- Report Agent:產出最終報告
如果每個 Agent 用同一把 Key,你就無法追蹤哪個 Agent 在燒錢。如果每個 Agent 用不同的 Provider Key,你就要管理 5 個不同的 dashboard 和帳單。
更根本的問題是:Agent 怎麼取得 API Key?
在自動化程度高的系統裡,Agent 需要在執行時動態取得憑證——不是由人類複製貼上,而是透過程式自動完成。
Agent 自動取得 API Key 的正確做法
BazaarLink 提供了 /api/v1/agents/register endpoint,讓 Agent 在啟動時自我註冊並取得 API Key:
import httpx
def agent_bootstrap(agent_name: str, referral_code: str | None = None) -> dict:
payload = {"name": agent_name}
if referral_code:
payload["referral_code"] = referral_code
response = httpx.post(
"https://bazaarlink.ai/api/v1/agents/register",
json=payload,
)
return response.json()
# Agent 啟動時自動呼叫
creds = agent_bootstrap("ResearchAgent-v2")
api_key = creds["api_key"] # sk-bl-xxxxxxxxxxxxxxxx
claim_url = creds["upgrade_url"] # 讓人類 owner 認領這把 Key
print(f"Agent key: {api_key}")
print(f"Owner 認領連結: {claim_url}")
這個流程讓:
- Agent 立即可用:取得 Key 後馬上開始工作,不需要等人類操作
- 人類保有控制權:透過
upgrade_url認領,Key 轉移到 owner 帳號 - 費用可歸戶:每個 Agent 有獨立 Key,費用清楚分開
用 Org Key 替代人工核發
在生產環境,更穩健的做法是用組織 Management Key 批量建立 Agent Keys:
import httpx
MGMT_KEY = "sk-bl-YOUR_MANAGEMENT_KEY" # 由人類管理的 org key
BASE_URL = "https://bazaarlink.ai/api/v1"
def provision_agent_key(agent_name: str, monthly_budget_usd: float) -> str:
response = httpx.post(
f"{BASE_URL}/keys",
headers={"Authorization": f"Bearer {MGMT_KEY}"},
json={
"name": agent_name,
"monthlyBudgetUsd": monthly_budget_usd,
},
)
return response.json()["key"]
# 批量建立 agent keys,各自有獨立預算
orchestrator_key = provision_agent_key("Orchestrator", 50.0)
research_key = provision_agent_key("ResearchAgent", 30.0)
code_key = provision_agent_key("CodeAgent", 40.0)
qa_key = provision_agent_key("QAAgent", 20.0)
report_key = provision_agent_key("ReportAgent", 10.0)
這樣每個 Agent 有:
- 獨立 API Key(費用可分開追蹤)
- 獨立月預算上限(某個 Agent 失控不影響其他 Agent)
Multi-Agent 費用監控
用 BazaarLink 的報表 API,隨時查詢每個 Agent 的消耗:
def get_agent_usage(org_id: str, mgmt_key: str) -> list[dict]:
response = httpx.get(
f"https://bazaarlink.ai/api/v1/orgs/{org_id}/reports/by-member",
headers={"Authorization": f"Bearer {mgmt_key}"},
)
return response.json()
# 輸出範例:
# [
# {"name": "Orchestrator", "spend": 12.50, "tokens": 450000},
# {"name": "ResearchAgent", "spend": 28.30, "tokens": 890000},
# {"name": "CodeAgent", "spend": 35.10, "tokens": 1100000},
# ]
與 LangChain / CrewAI 整合
無論你用什麼 Agent framework,只需要換掉 base_url 和 api_key:
# LangChain
from langchain_openai import ChatOpenAI
# 每個 Agent 用自己的 Key
research_llm = ChatOpenAI(
base_url="https://bazaarlink.ai/api/v1",
api_key=research_key,
model="openai/gpt-4o",
)
# CrewAI
from crewai import Agent
from langchain_openai import ChatOpenAI
research_agent = Agent(
role="Senior Researcher",
llm=ChatOpenAI(
base_url="https://bazaarlink.ai/api/v1",
api_key=research_key,
model="anthropic/claude-sonnet-4-6",
),
)
結論:Multi-Agent 需要 Multi-Key 管理
| 需求 | 解法 |
|---|---|
| Agent 動態取得 Key | /api/v1/agents/register |
| 批量核發 + 預算 | Management Key + provision API |
| 費用按 Agent 拆分 | 每個 Agent 獨立 Key |
| 某個 Agent 失控 | 個別預算上限,自動 429 |
| 月底成本報告 | By-member 報表匯出 CSV |
Multi-Agent 架構的複雜度在 Orchestration,不應該再被 API Key 管理拖累。BazaarLink 讓每個 Agent 有獨立的憑證和預算,同時在一個 dashboard 看到全局費用。