Loading...
Loading...
将当前仓库通过Caveman Cloud网关进行连接,使每个LLM请求的成本、Token数量、延迟都能被统计,且不会改变原有功能。当用户粘贴Caveman设置提示词、说“set up caveman”,或希望为应用添加LLM支出可观测性时使用此功能。需要网关URL和Cave API密钥(设置提示词中包含这两项)。
npx skill4agent add juliusbrussee/caveman caveman-setupGATEWAYhttps://gateway.caveman.sohttp://127.0.0.1:8787CAVE_API_KEYPROVIDER_KEYSstoredbyokDASHBOARDhttps://app.caveman.soCAVE_API_KEY.env.env.local.gitignore.gitignorePROVIDER_KEYS: storedbyokpackage.jsonrequirements.txtpyproject.tomlgo.modopenai@anthropic-ai/sdkanthropicai@ai-sdk/*langchain*litellmgoogle-genai@google/genaicrewaipydantic_aiopenai-agentsagentsapi.openai.comapi.anthropic.comgenerativelanguage.googleapis.comOPENAI_BASE_URLOPENAI_API_BASEANTHROPIC_BASE_URLGEMINI_BASE_URLGOOGLE_GEMINI_BASE_URLGATEWAY/w/<app>support-botacme-api[a-z0-9][a-z0-9._-]/w/<app>x-cave-api-key: CAVE_API_KEYAuthorization: Bearer CAVE_API_KEYPROVIDER_KEYS: byokx-cave-upstream-key: <应用已使用的提供商密钥>Authorizationx-api-keystoredstoredconst client = new OpenAI({
baseURL: `${process.env.CAVE_GATEWAY_URL}/w/<app>/openai/v1`,
apiKey: process.env.OPENAI_API_KEY, // byok模式:保持不变 · stored模式:使用CAVE_API_KEY
defaultHeaders: {
"x-cave-api-key": process.env.CAVE_API_KEY!,
// 仅byok模式需要:
"x-cave-upstream-key": process.env.OPENAI_API_KEY!,
},
});base_url=f"{gw}/w/<app>/openai/v1"default_headers={"x-cave-api-key": ..., "x-cave-upstream-key": ...}/v1/messagesx-cave-api-keyx-api-keyclient = anthropic.Anthropic(
base_url=f"{os.environ['CAVE_GATEWAY_URL']}/w/<app>",
api_key=os.environ["ANTHROPIC_API_KEY"], // byok模式:保持不变 · stored模式:使用CAVE_API_KEY
default_headers={
"x-cave-api-key": os.environ["CAVE_API_KEY"],
// 仅byok模式需要:
"x-cave-upstream-key": os.environ["ANTHROPIC_API_KEY"],
},
)createOpenAICompatible({ baseURL: , headers: { "x-cave-api-key": ... } })createAnthropic({ baseURL: , headers: { ... } })ChatOpenAI(base_url=f"{gw}/w/<app>/openai/v1", default_headers={...})ChatAnthropic(base_url=f"{gw}/w/<app>", default_headers={...})api_base=f"{gw}/w/<app>/openai/v1"extra_headers={...}config.yamlGATEWAY/w/<app>/v1/chat/completionsGATEWAY/w/<app>/v1/messagessupport-bothttps://gateway.caveman.so/w/support-bot/openai/v1storedx-cave-upstream-key<docs origin>/docs/integrations/CAVE_GATEWAY_URL=<GATEWAY>
CAVE_API_KEY=<CAVE_API_KEY>max_tokens# OpenAI协议连接:
curl -sS "$CAVE_GATEWAY_URL/w/<app>/v1/chat/completions" \
-H "x-cave-api-key: $CAVE_API_KEY" \
-H "content-type: application/json" \
-d '{"model":"<仓库已使用的模型>","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
# Anthropic协议连接:
curl -sS "$CAVE_GATEWAY_URL/w/<app>/v1/messages" \
-H "x-cave-api-key: $CAVE_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"<仓库已使用的模型>","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'-H "x-cave-upstream-key: $PROVIDER_KEY"usage## Caveman已在本仓库中启用
已连接:<n>个调用点,分布在<n>个文件中
- <文件> — <一行描述修改内容>
应用标识:<app> — 此应用的所有支出将归为此标识下
已验证:HTTP 200 · 模型<model> · <输入Token数>输入 / <输出Token数>输出(一次真实请求)
模式:记录——仅统计。未修改任何模型可见的字节,未启用任何优化。在你启用优化器并通过评估之前,已验证的节省金额为0美元。诚信是本产品的核心。
查看支出详情:<DASHBOARD>/traces — 你的请求位于顶部,费用基于公开价目表计算。<DASHBOARD>/getting-started会显示“已收到第一个请求”。
希望按工作流(例如支持回复 vs 夜间摘要)拆分支出,而非仅按应用拆分?请说“discover workflows”——我会获取<docs origin>/docs/discover-workflows.md并为每个调用点标记其对应的任务。caveman wrap <agent>/w/<app>