搜索

搜索 HiAPI 模型、工具和资源。

返回博客
教程7 分钟阅读

agent 课看完跑不通?用一把 Key 把示例跑起来

X 上在讨论「花 500 刀买课的人现在能看免费的了」。课程不缺,缺的是把示例跑通的那一步。这篇讲最小可跑配置。

HiAPIAI Agent教程API 接入

X 上有一条帖子在调侃:花 500 美元买 AI Agent 课程的人,如今能看免费的了。原帖:https://x.com/deanwperkins/status/2116911546282733623 (作者 Dean W. Perkins,@deanwperkins)。底下讨论的共识是课程本身不稀缺,稀缺的是把课里的东西跑起来。

这句话说到点子上了。多数人卡住的地方不是听不懂 agent 循环,是第一步就动不了:示例代码用的模型 Key 没有,换了个模型协议又对不上,跑不起来也就无从验证。

这篇讲最小可跑配置,不讲 agent 理论。

最小 agent 只有三件事

抛开框架和抽象,一个能干活的 agent 就是三个组件:

  1. 一个能调用工具的模型
  2. 一组工具定义(名字、参数、说明)
  3. 一个循环:模型决定调什么工具,你执行,把结果给回模型,直到它说完了

课程里那些多智能体、记忆、规划,都是在这三件事上加东西。先把这三个跑通。

第一步:把 Key 准备好

大多数课程的第一个作业就是「去申请某个模型的 API Key」。这一步劝退率不低:注册、绑卡、等审核,有的还要申请额度。

用一个统一的入口就跳过这个环节。HiAPI 的 Key 一套鉴权,覆盖 Claude、GPT、Kimi、Grok、DeepSeek 等文本模型,走标准的 Chat Completions 协议。

拿到 Key 之后,先确认能通:

curl -s https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "messages": [{"role": "user", "content": "说一句你好"}]
  }'

能返回内容,Key 就没问题。

第二步:定义工具

工具定义是给模型看的说明书。它需要知道有哪些工具、每个工具要什么参数。

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询指定城市的当前天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "城市名,如 北京"}
            },
            "required": ["city"]
        }
    }
}]

要写的说明只有一句:模型靠 description 判断什么时候该用这个工具。写得越清楚,调错的概率越低。

第三步:写循环

import json, requests

API = "https://api.hiapi.ai/v1/chat/completions"
KEY = "YOUR_HIAPI_API_KEY"
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

def run_weather(city):
    return {"city": city, "temp": 18, "condition": "晴"}  # 示例实现

messages = [{"role": "user", "content": "北京今天多少度?"}]

for _ in range(5):  # 防止死循环
    resp = requests.post(API, headers=HEADERS, json={
        "model": "gpt-6.1-sol",
        "messages": messages,
        "tools": tools,
    }).json()

    msg = resp["choices"][0]["message"]
    messages.append(msg)

    if not msg.get("tool_calls"):
        print(msg["content"])
        break

    for call in msg["tool_calls"]:
        args = json.loads(call["function"]["arguments"])
        result = run_weather(args["city"])
        messages.append({
            "role": "tool",
            "tool_call_id": call["id"],
            "content": json.dumps(result, ensure_ascii=False),
        })

这段跑完会看到模型先决定调 get_weather,拿到结果后再组织成一句话回答。这就是完整的 agent 循环。

模型怎么选

同一个循环,换个 model 字段就能换模型。成本差得很远:

模型输入输出适合
GPT-6 Luna$0.025$0.125简单工具调用、分类、抽取
GPT-6.1 Terra$0.25$1.25日常 agent、代码任务
GPT-6.1 Sol$0.50$2.50复杂多步任务
Claude Opus 5.5$2.02$10.08长任务、需要深度推理

单次工具调用循环大概几千 token,按最便宜的 Luna 算,一次不到一厘钱。跟课程做实验,成本可以忽略。

课程里如果指定了某个模型,就按课程用;课程没指定或者你用不了,用同档位的替代不影响学习效果,因为循环逻辑是一样的。

课程里最容易卡住的三个点

工具调用返回格式不对。 不同模型厂商对 tool_calls 的字段组织有差异。用 Chat Completions 兼容协议的模型时格式统一,换模型不用改解析代码。

上下文越滚越长。 每一轮都把历史全带上,跑到第三十轮就顶到上限。课程后期会讲裁剪策略,前期先知道这个坑存在。

模型不调工具只回文字。 通常是工具描述写得太模糊,或者提示词没说清「你有工具可用」。把描述改具体,或者在系统提示里点明。

跑通之后做什么

先别急着上框架。

最小循环能跑之后,按顺序补这几样:

  1. 加错误处理:工具执行失败时把错误信息给回模型,让它重试或换路径
  2. 加用量统计:每次调用的 token 数记下来,才知道成本花在哪
  3. 加超时和重试:网络抖动是常态
  4. 再考虑框架:如果任务复杂到需要多智能体或者复杂状态机,再上框架不迟

课程教的架构通常面向生产,直接照着搭容易在第一步就卡住。先把三个组件跑起来,剩下的按需加。

常见问题

必须用某个特定模型吗?

不用。只要支持工具调用(function calling),循环逻辑就通用。课程指定的模型用不了时,同价位的替代不影响理解。

免费课程和付费课的差别在哪?

按 X 上那条讨论的说法,差别更多在结构和答疑,不在知识本身。跑通示例这件事,两边都要自己做。

工具能调真实 API 吗?

能。把 run_weather 换成真实的 HTTP 请求就行。注意把工具函数里的异常都接住,否则一次失败会让整个循环断掉。

跑一次要多少钱?

最小示例几千 token,最便宜的模型一次不到一厘钱,贵的也就几分。拿来做实验不用担心成本。

关键结论

agent 课程的卡点从来不是理论,是第一个示例跑不起来。三件事就能跑通一个完整循环:一把能用的 Key、一份工具定义、一个把结果喂回去的循环。跑通之后再补工程细节,比反过来容易十倍。

查看可用的文本模型和价格


资料来源

  • 话题起因:Dean W. Perkins(@deanwperkins),https://x.com/deanwperkins/status/2116911546282733623
  • 该帖未附具体课程链接,本文不指向任何特定课程,只讲跑通示例的通用配置
  • 代码示例与价格数据为本站整理,价格取自 HiAPI 生产环境(2026-11-02)

现在就用 HiAPI 生成

选一个模型,输入你的提示词,直接查看生成结果。

HiAPI Blog

相关文章

HiAPI

现在就用 HiAPI 生成

开始生成