前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
AI 热点
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
AI 热点
开发者导航
返回 AI 情报前线
All News · 全部资讯4085
  • AI 代理开发如何改变程序员工作流:从编码转向审查
  • Kimi K3 发布:百万 token 长上下文与强编程能力
  • 开源自媒体工具链:跨 10+ 平台内容发布全自动化
  • Qwen3.8-Max:2.4T参数如何改变开发工具选择
  • IBM 报告:AI 攻击占数据泄露 1/4,防御需加速漏洞修复
  • LLM 总成本对比:自托管 Llama vs 云 API 真实成本
  • AI 编码助手的设计系统赋能:从通用到专业
  • 网络爬虫工程实战:反爬虫对抗的完整方案
  • Rust 高性能 AI 代码审查工具:系统编程最佳实践
  • Ops Agent 的安全漏洞:提示注入即远程代码执行
  • 80% 降价反而成本上升:AI 账单的 Jevons 悖论
  • Google Gemini Robotics 2发布,人形机器人控制API开放
  • Qwen3.8-27B仅需17GB显存运行验证
  • 通义千问 3.8-Max 模型通过 OpenAI 兼容 API 可用
  • AI Agent 误删 45 个文件的真实事故复盘
  • Qwen3.8-Max官宣:全模态创作力对标顶级模型
  • 在 Next.js 中架构 AI 异步处理:避免请求阻塞的完整方案
  • MCP新规范正式版:一键审计服务器兼容性
  • Prompt设计最佳实践:精简上下文优于巨型提示
  • MiniMax H3开源多模态模型Day-0适配国产GPU,成本优化40倍
  • 用 Claude 和 CoinGecko 构建实时加密货币分析 Agent
  • Agent 系统的紧凑记忆优化:降低上下文成本
  • Qwen 3.8 发布,编程与推理能力升级
  • OpenAI Agents Python框架14天实战测评
  • 用AI编程工具远程部署服务器的无密钥方案
  • Agent 系统设计:从 Prompt 工程转向上下文工程
  • C++ 高效加载机器学习模型的完整实现
  • Word 提示注入漏洞:Copilot 被劫持 144 天未修
  • 12个AI自动化案例详解:如何集成AI到实际工作流
  • AI 框架选型完全指南:分类体系与决策方法论
  • Agent AI vs 生成式 AI:本质区别与应用边界实战指南
  • 阿里发布通义千问3.8-Max大模型
  • Agent管道的隐形故障:Fallback陷阱案例
  • 生产级流式 LLM API 客户端实现指南
  • Agent 系统中的批准陷阱:为什么状态转移需要重新验证
  • LLM 成本感知路由:用 Flash 模型减少 60% 支出的系统设计
  • AI 代码迁移引入 Bug:COBOL→Java 实验分析
  • 用 AI 助手开发浏览器扩展踩过的坑:验证比相信更重要
  • RAG 系统检索失败根本原因:数据分块策略而非模型能力
  • AI Agent 失控成本爆炸:防护实战指南
  • 开源视频生成模型 MiniMax H3
  • 华为诺亚开源 Agent 记忆系统 MindMemOS
  • Python AI Agent Prompt 注入防护三层架构
  • 从零实现经典技术:高价值学习路线合集
  • OpenClaw 语音 Agent 的实用场景评估
  • 千问 3.8-Max 正式发布:24 万亿参数待开源
  • OpenAI Astra 解决 10 个前沿研究问题
  • 阿里开源通义千问3.8-27B轻量模型
  • RAG系统8大架构模式与决策指南
  • Agent-Reach:AI Agent 一键获得互联网视野
  • DwarfStar:DeepSeek V4 专用本地推理引擎
  • 已加载 51 / 4085
8.0
热点
AI SCORE
技术实践2026-08-03 13:05

用 Claude 和 CoinGecko 构建实时加密货币分析 Agent

dev.to · AI#Claude#Agent#API集成
Editor brief · 编辑速览

完整实战教程展示如何结合 Anthropic Claude 和 CoinGecko API 构建智能 agent,涵盖市场分析、投资告警、交易信号生成等四大场景的代码实现。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

在波动剧烈的加密货币世界里,实时数据可能决定一笔交易究竟能否盈利,也可能让你错失机会。对于开发者、交易者和爱好者来说,构建能够获取、分析市场数据并据此采取行动的自动化工具,已经变得不可或缺。在这篇实战指南中,我们将结合 CoinGecko API 与 Anthropic 的 Claude AI,逐步构建一个实时加密货币情报 Agent。

为什么选择 CoinGecko + Claude?

CoinGecko API 是使用最广泛的免费加密货币数据 API 之一,覆盖数千种代币,提供实时价格、市值、交易量、历史数据等信息。另一方面,Claude 擅长推理、总结和工具调用。将两者结合起来,你就能构建一个不只是展示数字,还能解读数据、解释情况并给出建议的 Agent。

Anthropic API key(console.anthropic.com)

CoinGecko API key(可选;免费套餐:每分钟 50 次调用)

requests、anthropic、python-dotenv

第 1 步:从 CoinGecko 获取实时数据

CoinGecko 的 /simple/price endpoint 是最常用的核心接口。下面是一个简洁的封装:

import requests

def get_crypto_price(crypto_id='bitcoin', vs_currency='usd'):
    url = "https://api.coingecko.com/api/v3/simple/price"
    params = {
        'ids': crypto_id,
        'vs_currencies': vs_currency,
        'include_market_cap': 'true',
        'include_24hr_vol': 'true',
        'include_24hr_change': 'true'
    }
    headers = {'accept': 'application/json'}
    if COINGECKO_API_KEY:
        headers['x-cg-demo-api-key'] = COINGECKO_API_KEY

    resp = requests.get(url, params=params, headers=headers)
    return resp.json() if resp.status_code == 200 else None

# Usage
btc = get_crypto_price('bitcoin')
print(f"BTC: ${btc['bitcoin']['usd']}")
{
  "bitcoin": {
    "usd": 67300,
    "usd_market_cap": 1320000000000,
    "usd_24h_vol": 28000000000,
    "usd_24h_change": 2.35
  }
}

第 2 步:让 Claude 获得获取价格的能力(Tool Use)

Claude 的 tool use(function calling)功能允许它自行决定何时调用外部 API。我们定义一个工具 schema,再让 Claude 负责调度调用:

import anthropic

client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)

price_tool = {
    "name": "get_crypto_price",
    "description": "Get live price, market cap, 24h volume and change for any crypto",
    "input_schema": {
        "type": "object",
        "properties": {
            "crypto_id": {
                "type": "string",
                "description": "CoinGecko ID, e.g. 'bitcoin', 'ethereum', 'solana'"
            },
            "currency": {
                "type": "string",
                "description": "Fiat currency, default 'usd'"
            }
        },
        "required": ["crypto_id"]
    }
}
def chat_with_crypto_agent(user_message):
    messages = [{"role": "user", "content": user_message}]

    while True:
        response = client.messages.create(
            model="claude-3-5-sonnet-20241022",
            max_tokens=1024,
            messages=messages,
            tools=[price_tool]
        )

        if response.stop_reason == "tool_use":
            # Claude wants to call our tool
            block = next(b for b in response.content if b.type == "tool_use")
            if block.name == "get_crypto_price":
                data = get_crypto_price(
                    block.input["crypto_id"],
                    block.input.get("currency", "usd")
                )
                messages.append({
                    "role": "user",
                    "content": [{
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": str(data)
                    }]
                })
        else:
            return response.content[0].text
print(chat_with_crypto_agent(
    "What's Ethereum at right now, and how's it performing vs yesterday?"
))

Claude 会识别用户意图,调用 get_crypto_price('ethereum'),接收返回的数据,然后生成类似下面这样的自然语言回答:

“Ethereum 当前价格为 3,450 美元,过去 24 小时上涨了 4.1%。其市值为 4,140 亿美元,24 小时交易量为 220 亿美元。这是一个表现强劲的上涨日——4.1% 的涨幅表明市场动能积极,可能是由……”

第 3 步:构建实时价格缓存

每次请求都调用 API 会白白消耗 rate limit。下面构建一个后台价格缓存,每 30 秒刷新一次:

import threading, time

price_cache = {}
cache_lock = threading.Lock()

def fetch_prices_for_coins(coin_ids=['bitcoin','ethereum','solana']):
    url = "https://api.coingecko.com/api/v3/simple/price"
    params = {
        'ids': ','.join(coin_ids),
        'vs_currencies': 'usd',
        'include_market_cap': 'true',
        'include_24hr_vol': 'true',
        'include_24hr_change': 'true'
    }
    headers = {'accept': 'application/json'}
    if COINGECKO_API_KEY:
        headers['x-cg-demo-api-key'] = COINGECKO_API_KEY

    try:
        resp = requests.get(url, params=params, headers=headers)
        if resp.status_code == 200:
            with cache_lock:
                price_cache.clear()
                price_cache.update(resp.json())
    except Exception as e:
        print(f"Cache update error: {e}")

def start_price_refresh(interval=30):
    def loop():
        while True:
            fetch_prices_for_coins()
            time.sleep(interval)
    t = threading.Thread(target=loop, daemon=True)
    t.start()

现在,你的 Agent 可以在几毫秒内作出响应,无须等待 API 返回结果。

第 4 步:添加热门代币与市场广度信息

CoinGecko 的 /search/trending endpoint 可以揭示当前最热门的代币:

def get_trending():
    url = "https://api.coingecko.com/api/v3/search/trending"
    resp = requests.get(url, headers={'accept': 'application/json'})
    coins = resp.json()['coins']
    return [{
        'name': c['item']['name'],
        'symbol': c['item']['symbol'],
        'market_cap_rank': c['item']['market_cap_rank'],
        'score': c['item']['score']
    } for c in coins[:7]]

把它作为第二个工具添加到 Claude Agent 中,你就可以提出这样的问题:

“今天最热门的代币有哪些?快速告诉我当前的市场脉搏。”

第 5 步:整合所有功能——一个可用于生产环境的 Agent

下面是完整的架构:

┌─────────────┐     ┌─────────────────┐     ┌──────────────┐
│   User      │────▶│  Claude Agent   │────▶│ CoinGecko    │
│  Question    │     │  (Tool Router)  │     │ API + Cache  │
└─────────────┘     └─────────────────┘     └──────────────┘
                            │
                    ┌───────▼───────┐
                    │  Natural      │
                    │  Language     │
                    │  Response     │
                    └───────────────┘

完整代码大约 150 行。这个 Agent 可以:

  • 获取任意代币的实时价格
  • 报告 24 小时涨跌幅、交易量和市值
  • 展示热门代币
  • 回答有关市场的自然语言问题
  • 使用后台缓存,实现亚秒级响应

超越基础功能:扩展思路

将 CoinGecko 丰富的市场数据与 Claude 的推理能力结合起来,只需不到 200 行 Python 代码,就能构建一个真正实用的加密货币情报 Agent。这两项服务的免费套餐都相当慷慨,足以满足个人项目和原型开发的需求。

真正的威力来自 Claude 的 tool use:它知道何时获取数据,也知道如何解读数据,因此你不需要构建复杂的规则引擎。这种模式(LLM + 实时数据 API)的用途远不止加密货币:股票市场、天气、新闻、体育比分——任何需要将实时数据与自然语言结合起来的场景,都可以使用它。

Anthropic Tool Use 指南

你会用这种模式构建什么?欢迎在下方留言!🚀

如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
MiniMax H3开源多模态模型Day-0适配国产GPU,成本优化40倍
下一篇
Agent 系统的紧凑记忆优化:降低上下文成本