Bankr代理API基础Skill BankrDev-APIBasics

Bankr Agent API 是一个提供异步作业模式的接口,用于程序化执行加密货币交易、市场数据分析和预测市场操作。它允许开发者通过自然语言提示与 Bankr 代理交互,适用于构建自动化交易系统、Web3 应用和量化金融工具。关键词:Bankr API, 加密货币交易, 异步作业, 预测市场, Web3, 量化策略。

Web3 0 次安装 0 次浏览 更新于 3/15/2026

name: Bankr 开发 - API 基础 description: 当用户询问“Bankr API”、“Bankr Agent API”、“Bankr 如何工作”、“Bankr 作业状态”、“Bankr 响应格式”或“基于 Bankr 构建”时,应使用此技能。提供端点文档、作业模式和 TypeScript 接口。 version: 1.0.0

Bankr 代理 API 要点

在回答关于 Bankr API 的问题时:

  1. 解释异步作业模式(提交-轮询-完成)
  2. 参考下面的端点文档和 TypeScript 示例
  3. 对于详细的响应结构,请查阅 references/job-response-schema.md
  4. 引导开发者查看 examples/ 目录中的工作示例

Bankr 代理 API 通过简单的异步作业模式,启用对加密货币交易、市场分析和预测市场的程序化访问。

核心概念:异步作业模式

所有 Bankr 操作都遵循提交-轮询-完成模式:

  1. 提交 一个自然语言提示以启动作业
  2. 轮询 作业状态,每 2 秒一次
  3. 接收 结果当状态为终端时(完成/失败/取消)

此模式处理可能需要 30 秒到 2 分钟以上的操作(交易、复杂分析)。

API 端点

基础 URL

https://api.bankr.bot

认证

所有请求都需要 x-api-key 头:

x-api-key: bk_your_api_key_here

API 密钥绑定到特定用户的 Bankr 账户和钱包。

端点 1:提交提示

POST /agent/prompt
Content-Type: application/json

{
  "prompt": "在 Base 上购买 50 美元的 ETH"
}

响应:

{
  "success": true,
  "jobId": "job_abc123",
  "status": "pending"
}

代码示例:

async function submitPrompt(prompt: string): Promise<{ jobId: string }> {
  const response = await fetch(`${API_URL}/agent/prompt`, {
    method: "POST",
    headers: {
      "x-api-key": API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ prompt }),
  });
  const data = await response.json();
  if (!data.success) throw new Error(data.error || "提交失败");
  return { jobId: data.jobId };
}

端点 2:获取作业状态

GET /agent/job/{jobId}

响应:

{
  "success": true,
  "jobId": "job_abc123",
  "status": "completed",
  "prompt": "ETH 的价格是多少?",
  "response": "以太坊 (ETH) 当前交易价格为 3,245.67 美元...",
  "transactions": [],
  "statusUpdates": [
    { "message": "正在获取价格数据...", "timestamp": "2024-01-15T10:00:02Z" }
  ],
  "createdAt": "2024-01-15T10:00:00Z",
  "completedAt": "2024-01-15T10:00:05Z",
  "processingTime": 5000
}

代码示例:

async function getJobStatus(jobId: string): Promise<JobStatusResponse> {
  const response = await fetch(`${API_URL}/agent/job/${jobId}`, {
    headers: { "x-api-key": API_KEY },
  });
  return response.json();
}

有关完整的 TypeScript 接口,请参阅 references/job-response-schema.md

端点 3:取消作业

POST /agent/job/{jobId}/cancel
Content-Type: application/json

响应:

{
  "success": true,
  "jobId": "job_abc123",
  "status": "cancelled",
  "prompt": "在 Base 上购买 50 美元的 ETH",
  "cancelledAt": "2024-01-15T10:00:15Z"
}

何时取消:

  • 用户请求停止长时间运行的操作
  • 超时并希望干净地中止
  • 检测到使作业不必要的错误条件

代码示例:

async function cancelJob(jobId: string): Promise<JobStatusResponse> {
  const response = await fetch(`${API_URL}/agent/job/${jobId}/cancel`, {
    method: "POST",
    headers: {
      "x-api-key": API_KEY,
      "Content-Type": "application/json",
    },
  });
  return response.json();
}

// 用法:如果作业耗时过长则取消
const timeout = setTimeout(async () => {
  console.log("作业耗时过长,正在取消...");
  await cancelJob(jobId);
}, 60000); // 60 秒后取消

作业状态

状态 含义 操作
pending 作业已排队,未启动 继续轮询
processing 作业运行中 继续轮询,检查 statusUpdates
completed 作业成功完成 阅读 response 和 transactions
failed 作业遇到错误 检查 error 字段
cancelled 作业被取消 无进一步操作

您可以做什么

Bankr API 接受自然语言提示用于:

加密货币交易:

  • “在 Base 上购买 50 美元的 ETH”
  • “在 Solana 上卖出 100 USDC 换取 SOL”
  • “将 0.1 ETH 交换为 BNKR”

价格和市场数据:

  • “比特币的价格是多少?”
  • “给我看 ETH 价格图表”
  • “今天涨幅最大的有哪些?”

Polymarket 预测:

  • “下次选举的赌率是多少?”
  • “赌 10 美元老鹰队赢”
  • “给我看趋势预测市场”

DeFi 操作:

  • “Aave 上的 TVL 是多少?”
  • “给我看 USDC 的最佳收益率”
  • “检查我的投资组合余额”

轮询最佳实践

async function waitForCompletion(jobId: string): Promise<JobStatus> {
  const POLL_INTERVAL = 2000; // 2 秒
  const MAX_POLLS = 120; // 最多 4 分钟
  for (let i = 0; i < MAX_POLLS; i++) {
    const status = await getJobStatus(jobId);
    // 终端状态
    if (['completed', 'failed', 'cancelled'].includes(status.status)) {
      return status;
    }
    // 记录进度更新
    if (status.statusUpdates?.length) {
      console.log('进度:', status.statusUpdates.at(-1)?.message);
    }
    await new Promise(r => setTimeout(r, POLL_INTERVAL));
  }
  throw new Error('作业超时');
}

关键响应字段

当作业完成时,响应包括:

  • response: Bankr 的文本回答
  • transactions: 执行交易的数组,包含链/代币详情
  • richData: 图像或图表(base64 或 URL)
  • statusUpdates: 执行期间的进度消息
  • processingTime: 持续时间(毫秒)

有关完整的字段文档,请参阅 references/job-response-schema.md

错误处理

处理这些错误情况:

  1. 缺少 API 密钥:在发出请求前检查 BANKR_API_KEY
  2. HTTP 错误:API 返回 4xx/5xx 并附带错误文本
  3. 作业失败:检查 status === 'failed' 并读取 error 字段
  4. 超时:实现最大轮询次数(建议:4 分钟)

示例:完整流程

// 1. 提交提示
const { jobId } = await submitPrompt("ETH 的价格是多少?");
// 2. 轮询直到完成
const result = await waitForCompletion(jobId);
// 3. 处理结果
if (result.status === 'completed') {
  console.log(result.response);
  // "以太坊 (ETH) 当前交易价格为 3,245.67 美元..."
} else if (result.status === 'failed') {
  console.error('错误:', result.error);
}

额外资源

参考文件

  • references/job-response-schema.md - 完整的 TypeScript 接口和字段文档

示例文件

  • examples/basic-client.ts - 简单的 API 客户端实现
  • examples/polling-with-updates.ts - 带状态更新处理的轮询