Community写作与编辑github.com

SyntaxFear/bog-banking-skill

针对格鲁吉亚银行(Business Online)的只读银行操作技能,适用于Claude Code、Codex等AI编码代理。可通过对话查询余额、对账单、消费情况和外汇汇率。

bog-banking-skill 是什么?

该技能为AI代理(如Claude Code、Codex等兼容SKILL.md的代理)提供对格鲁吉亚银行(Bank of Georgia)Business Online账户的只读访问能力。它通过一个名为`scripts/bog.py`的本地工具(以JSON格式打印数据)与BOG API交互,然后由AI代理进行分析(如分类、求和、对账和标记异常)。用户可以通过对话请求执行余额查询、交易对账单、当日活动和外汇汇率等操作,但技能严格只读,无法进行任何资金转移操作。支持正常模式(连接真实银行)和模拟模式(使用示例数据演示功能)。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add SyntaxFear/bog-banking-skill

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

BOG 银行技能(只读)

通过对话帮助用户理解和管理其格鲁吉亚银行 Business Online 账户。附带工具(scripts/bog.py)负责数据访问并以 JSON 格式输出;您负责分析(分类、汇总、对账、标记异常)。适用于任何兼容 SKILL.md 的代理(Claude Code、Codex 等)。

严格规则

  1. 始终只读。 仅运行此处列出的 bog.py 命令。绝不发送付款、转账、签署文件或调用任何写入端点——因为没有。如果被要求转账,请说明此技能是只读的,他们必须自行在 BOG 应用中完成(您可以帮他们准备)。
  2. 谨慎处理财务数据;除非被要求,否则应总结而非直接转储原始表格。
  3. 索要凭证时,切勿在回复中回显客户端密钥,也不要打印它。该工具会将其存储在本地。

运行工具

python3 scripts/bog.py <command> [options]

每次运行都会打印一个 JSON 对象:command、mode(live/mock)、ok,以及 data 或 error+message。解析它,然后用通俗语言回答。

每次会话:先检查状态

在执行任何需要数据的操作之前,请运行:

python3 scripts/bog.py whoami
  • ok: true 且 data.accounts_configured > 0 → 已完成设置;直接处理用户的请求。切勿再次索要凭据或已存储的 IBAN。
  • ok: true 但 accounts_configured 为 0 → 密钥有效,但尚无账户 → 执行第 6 步的引导(添加 IBAN)。
  • error: "no_keys" → 全新用户 → 运行下方的首次设置。
  • error: "invalid_credentials" → 密钥被拒绝 → 参见第 5 步。

首次设置(引导)——引导用户一次完成此过程

态度要热情,一步一步来。完整的逐步说明(包含确切的 BOG 界面和链接)在 reference/getting-credentials.md 中——用自己的话转述,并向用户提供下面的链接。

第 1 步——解释并安慰。 告诉他们此技能是只读的(绝对不会转移资金),并且您需要从格鲁吉亚银行获取两样东西:一个客户端 ID 和一个客户端密钥。

第 2 步——登录。 要求他们使用 Business Online 凭据登录其商业银行网站 **https://bonline.bog.ge/**。

第 3 步——创建 API 密钥。 让他们打开 **https://bonline.bog.ge/admin/api**,点击**添加新**,然后:

  • 集成类型——选择客户端凭据流程(使用客户端 ID + 客户端密钥自动授权的类型,无需用户名或密码)。
  • API 客户端名称——任意名称(例如他们的网银用户名,或 Banking Assistant)。
  • 使用一次性验证码 (OTP) 确认。

第 4 步——复制密钥。 BOG 会显示一个客户端 ID 和一个客户端密钥(某些界面可能标记为公钥/ 密钥——值相同)。让用户粘贴两者,然后保存——通过 stdin 传递 JSON,这样密钥就不会出现在命令行上:

python3 scripts/bog.py save-credentials <<'JSON'
{"client_id":"<Client ID>","client_secret":"<Client Secret>"}
JSON

切勿回显客户端密钥。

第 5 步——确认登录。 再次运行 whoami。

  • ok: true → 密钥有效。继续执行第 6 步。
  • error: "invalid_credentials" → 要么密钥错误,或者用户的 BOG 银行客户经理尚未激活 API 访问权限。告诉他们这两种可能性,并提供重新输入选项(如果需要,先清除:python3 scripts/bog.py forget-credentials)。

第 6 步——添加第一个账户。 索要一个账户的 IBAN(例如 GE..BG...)。该信息在对账单和 BOG 应用中,而且不是秘密。不要索要币种。然后:

python3 scripts/bog.py add-account --iban <IBAN>
python3 scripts/bog.py discover --account <IBAN>

discover 会自动检测该 IBAN 持有的币种(GEL/USD/EUR/GBP)。

第 7 步——他们的第一个实时结果。 运行 balance 并以友好的方式呈现(参见呈现结果)。恭喜他们——设置完成——然后询问他们是否要添加另一个账户,并回答他们最初的问题。

想在密钥准备就绪前进行演示?python3 scripts/bog.py --mock balance 会返回逼真的示例数据,无需访问银行(始终说明这是示例数据)。

稍后设置/管理账户

BOG 无法列出公司的账户,因此您需要从用户那里收集 IBAN——一次一个,按需收集。添加始终是合并操作(现有 IBAN 会保留)。IBAN 会持久化,并在后续每次调用中重复使用——一旦 whoami 返回 ok,切勿再次索要已存储的 IBAN 或凭据。

  • “添加另一个账户 GE..” → add-account --iban <IBAN> 然后 discover --account <IBAN>(然后询问他们是否还要添加)
  • “移除/忘记账户 GE..” → remove-account --iban <IBAN>(仅在用户明确要求时)
  • “你有什么账户?” → accounts

只读命令

命令返回
whoami凭据是否存在及是否有效
add-account --iban GE.. [--currency GEL]添加一个 IBAN(合并;保留直至移除)
remove-account --iban GE.. [--currency GEL]移除一个 IBAN(或仅移除一个币种)
discover [--account IBAN] [--currencies GEL,USD]探测已存储 IBAN 的币种,保存它们
accounts已存储的 IBAN 及其币种
balance [--account IBAN] [--currency GEL]可用余额 + 当前余额
statement [--account IBAN] [--currency GEL] [--from YYYY-MM-DD] [--to YYYY-MM-DD]某段时间内的交易(自动分页)
today [--account IBAN] [--currency GEL]今天的当日活动
rates [--currency USD]NBG 官方汇率 + BOG 商业买入/卖出价

默认 = 全部。 如果您不传递 --account/--currency,命令会自动覆盖每个已配置的 IBAN 及其持有的所有币种(它会自动检测币种)。仅当用户指定时(例如“我的美元余额”、“账户 GE..123”),才传递 --account 和/或 --currency。这些命令返回一个列表(每个 IBAN+币种对应一个条目);对于该账户不持有的币种,条目可能带有 error——跳过这些条目即可。

进行汇总时,切勿对不同币种的金额求和——应分别报告每种币种(例如 GEL 总额和 USD 总额)。

示例

  • “我的余额是多少?”→ balance(覆盖所有账户和币种)
  • “我的美元余额?”→ balance --currency USD
  • “上个月的交易”→ statement --from 2026-05-01 --to 2026-05-31
  • “我支付给<供应商>多少钱?”→ 运行 statement,然后自行筛选/统计。
  • “有什么异常吗?”→ 运行 statement,然后标记重复项、整数金额、新的交易对手、意外的大额金额。
  • “美元汇率?”→ rates --currency USD

模拟模式

传递 --mock(或设置 BOG_MOCK=1)以返回逼真的示例数据,无需访问银行——在用户凭据就绪前用于演示技能。当结果为示例数据时,务必告知用户。

呈现结果

  • 金额使用千位分隔符加两位小数格式化(例如 18,430.75 GEL)。
  • 先给出答案,然后进行简短分解;说明分组假设。
  • 对于对账,明确标记可能的重复项、异常大额、新的/未知的交易对手以及整数付款。

完整的凭证操作指南请参见 reference/getting-credentials.md,底层 BOG 端点信息请参见 reference/endpoints.md。

相关技能