skillify-runtime

给 AI Agent 用的第三方 API 执行层

托管凭证、统一 tool-calling 接口、一个 URL 接入任何 MCP 客户端。 Action 目录不是自动生成的——每一条都从真实调用里验证过,连带记下了官方文档没写清楚的坑。

是什么

Agent 不用再自己写 HTTP 客户端代码——凭证托管、重试、错误归一化、审计留痕都在网关这一层做掉。

凭证托管

信封加密存储,密文从不回显明文;网关代你处理 token 换取、刷新、header 格式这些容易踩坑的细节。

统一执行

不同平台的错误形状被归一化成同一种结果——不用再单独学"这个平台信不信 HTTP 状态码"这种细节。

MCP 一键接入

Claude Code、Cursor、Claude Desktop 等任何支持自定义 MCP server 的客户端,配一个 URL 就能用。

真实踩过的坑,不是编的例子

每个 action 的行为都对着真实 API 调用验证过,下面是几个已经在网关这一层挡掉、或者明确记录下来的例子。

bigmodel-cn

tool_choice 只接受 "auto",其它值平台会静默降级——网关在请求发出前就拦下来,返回明确的校验错误,而不是让 Agent 自己在事后发现模型没按预期强制调用工具。

feishu

多维表格的日期字段要求毫秒级时间戳,传人类可读格式会被当成不合规数据——网关接受 date_fields 参数,替调用方做单位转换,不用在业务代码里手写这段容易出错的换算。

feishu

发消息接口的 receive_id_type 没有默认值,漏传直接失败——MCP 工具 schema 把它标成必填枚举字段,模型在决定怎么调用之前就会被提醒。

目前支持的平台

规模不是这个项目要追的指标——每一条都经过真实调用验证,比自动生成的大而全目录更值得信任。

平台凭证模型Action
bigmodel-cn(智谱 GLM)静态 API Keybigmodel_chat_completion
飞书app 级 token,网关自动续期feishu_send_message、feishu_bitable_batch_create_records
Firecrawl静态 API Keyfirecrawl_scrape

怎么用

注册

邮箱密码或 Auth0 登录,自动开一个属于你的账号空间。

连接账号

在控制台挂上第三方平台的凭证——加密存储,密文从不回显。

调用

REST API、MCP、或者命令行 CLI,选一种顺手的方式接入 Agent。

看审计日志

每次调用的参数、结果、耗时都留痕,出问题不用靠猜。

给 Agent:不用人先注册

上面"怎么用"那四步是给人看的。如果你是一个 Agent,不需要先等人给你开账号——自己调一个接口就能拿到能用的凭证, 机器可读版本在 /llms.txt。

先解一道工作量证明

GET /v1/auth/pow-challenge 拿一个 challenge,算出一个 solution 让 sha256(challenge + ":" + solution) 前面有足够多的 0 比特——默认难度在普通机器上一般 2 秒以内能解出来。这一步和按 IP 限流(每小时 5 次)是两道独立的防刷关卡,同时生效,换 IP 绕不过工作量证明。完整算法和代码示例见 /llms.txt。

自主注册

POST /v1/auth/agent-register,附上上一步的 challenge 和 solution,不用邮箱密码。返回一个 tenant_id 和一次性显示的 api_key,立刻就能拿去调 /v1/tools、/mcp。

未认领 ≠ 可长期依赖

这样开出来的 tenant 处于"未认领"状态——没有邮箱找回,丢了这把 key 就找不回来了。这个项目对外报的 tenant/调用数字只统计已认领的,不靠未认领账号刷量。

认领(可选,转正)

想长期用的话,用这把 api_key 当 Bearer token 调 POST /v1/auth/claim,附上邮箱密码,转成正式账号——这一步通常该由人来做,而不是 Agent 替自己做主创建密码。

curl https://skillify.carbonleft.com/v1/auth/pow-challenge
# -> {"challenge": "...", "difficulty_bits": 20, "expires_at": ...}

# ...solve it (see /llms.txt for the algorithm + a worked example)...

curl -X POST https://skillify.carbonleft.com/v1/auth/agent-register \
  -H "Content-Type: application/json" \
  -d '{"name": "your-agent-name", "description": "what you do", "challenge": "...", "solution": "..."}'

# -> {"tenant_id": "...", "api_key": "sk_live_...", "claimed": false}

MCP 接入

在支持自定义 MCP server 的客户端里配置,把 <your api key> 换成控制台里生成的 API Key: