)
教程文档AI Agent人工智能大模型【免费下载链接】awesome-agentic-ai-zhA trilingual (繁中 / English / 简中) learning roadmap for agentic AI: from LLM basics to multi-agent systems, with 240 curated resources and hands-on examples. 中文 AI agent 學習地圖。项目地址https://gitcode.com/gh_mirrors/aw/awesome-agentic-ai-zh点击查看免费下载同一句 promptClaude、GPT、Gemini 三家模型的回答风格、长度与 token 消耗往往差异显著。本篇基于 awesome-agentic-ai-zh 学习地图 Stage 1 的 Cross-Provider 对比练习examples/stage-1/04-cross-provider/README.zh-Hans.md带你完整跑通一个可运行的跨厂商比较器用同一个 dataclass 统一三家 SDK 的响应结构缺 key 自动跳过不崩溃并用量化指标in/out token、latency支撑风格与成本对比。读完你将掌握多厂商 SDK 的差异处理、skip-on-missing-key 的生产级 guard 写法、用 mock 零成本验证调用逻辑以及扩展第四家Ollama 本地模型的完整路径。为什么要在 Stage 1 就做跨厂商比较在进入 agent 框架之前先用同一个 prompt 同时喂给三家 LLM是建立模型行为直觉成本最低的方式。本练习对应的 Stage 1 — LLM 基础 第 4 节明确指出其成果目标用同一个提示比较不同供应商的输出记录差异不把单次结果当成排名。也就是说这份练习刻意训练的不是哪家更强而是同一输入在不同模型下会产生哪些可观察的差异。同样是解释 AGI vs narrow AI这个 prompt三家 LLM 的默认倾向就不同Claude通常倾向先给结构定义 → 例子、语气中性GPT倾向先给简短答案、再展开type-A 风格Gemini倾向 list / bullet 排列、example 多。自己跑一次比读论文更有体感顺带还能量化token / 成本 / latency三个维度。这也是 Stage 1 从 LLM 基础迈向模型选择与路由的第一步在后续做 production routing 或模型质量评测时这份对比框架可以直接复用。环境准备与运行方式安装依赖pip install -r requirements.txt依赖清单见 examples/stage-1/04-cross-provider/requirements.txt版本区间都有上限约束anthropic0.40,1.0 openai1.50,2.0 google-genai1.0,2.0设置 API key至少设一个没设的自动跳过# 至少设一个。没设的会 skip、不会 crash export ANTHROPIC_API_KEYsk-ant-... export OPENAI_API_KEYsk-... export GOOGLE_API_KEY...三个 key 均为可选哪家缺 key哪家就会被跳过程序照常运行。这是本练习刻意设计的容错语义skip-on-missing-key而不是 raise。从源码看这一 guard 实现在 starter.py 的每个 caller 开头def call_claude(prompt: str) - Reply | None: if not os.environ.get(ANTHROPIC_API_KEY): return Nonecall_openai与call_gemini结构相同starter.py 与 starter.py。运行对照python starter.py预期看到样本输出来自 README 与 starter.py 的__main__打印逻辑prompt: 用 1-2 句话解释 AGI 跟 narrow AI 的差别。 ⚠ skip call_gemini没有对应 API key [Anthropic / claude-haiku-4-5] latency823ms in21 out58 AGI通用人工智能能跨领域学习与解题narrow AI 只擅长单一任务... [OpenAI / gpt-5-mini] latency612ms in24 out49 Narrow AI 专精于特定任务如下棋、辨识、AGI 则具备... ✅ 练习 4 通过 — 收到 2 家 provider 回应、可比较风格 / 长度 / 成本程序末尾的自我验证starter.py包含三条断言至少一家 provider 回应、每条回复文本长度大于 5、input token 大于 0。也就是说即使只有一家 key程序也能通过并给出可比较的基线。学习模式先跑通、再只改一件事本仓库的练习方法论是每次只改一件事完整说明见 docs/HOW_TO_USE.md先运行python starter.py再只改一个小地方然后重新运行现有测试python test.py如果测试失败就撤销或修正这一个改动再试一次。不需要重命名文件也不需要重写整份解答。你可以试着改的第一个点就是PROMPT常量starter.py观察同一组比较逻辑在不同输入下如何工作。不花钱验证程序逻辑四个 mock 测试python test.py4 个测试全部使用unittest.mock.patch取代 SDK不打任何 API因此零费用即可验证程序逻辑详见 test.py✅ test_skip_when_no_key ✅ test_compare_returns_only_valid_replies ✅ test_reply_dataclass_shape ✅ test_compare_one_provider_set 全部通過 — Cross-provider 邏輯正確skip-on-missing-key 已驗逐个拆解这四个测试的验证目标测试验证内容关键手段test_skip_when_no_key没设任何 key 时三个call_xxx都该返回Nonepatch.dict(os.environ, {}, clearTrue)清空环境变量test.pytest_compare_returns_only_valid_repliescompare()跳过没 key 的 provider、不 raise空环境变量下compare(hi)返回空 listtest.pytest_reply_dataclass_shapeReply数据结构正确手工构造实例并断言字段可读、token 可相加test.pytest_compare_one_provider_set只设一个 key 时只返回对应 provider 的结果patch(starter.call_claude, return_valuefake_reply)把 caller 替换为固定返回值test.py这套测试设计有一个值得在生产中复用的思路把是否调用 SDK和调用逻辑是否正确解耦。环境变量由patch.dict控制、SDK 调用由patch替换测试完全不依赖网络与密钥却把 skip 语义、dataclass 形状、单 provider 分支全部覆盖。仓库的 examples/README.zh-Hans.md 也把这类文件夹定位为Provider 切换形状只用 OpenAI-compatible client 比较 endpoint所以只有starter.py和test.py没有多余的starter_anthropic.py变体。程序结构走查统一的 Reply dataclass 是核心段在做什么Replydataclass统一三家 SDK 各自 Response 对象、抽出 4 个共通字段text/in/out/latencycall_claude / call_openai / call_gemini各家 SDK 包装、没 key 就 returnNonecompare(prompt)跑三个 caller、跳过 None、回 valid replies list__main__印对照表、自我验证核心定义见 starter.pydataclass class Reply: provider: str model: str text: str in_tokens: int out_tokens: int latency_ms: intcompare()是编排核心starter.py依次调用三个 callerNone结果打印 skip 提示其余收进replieslist 返回。调用顺序固定为 Claude → OpenAI → Gemini保证对照输出顺序稳定可复现。各 caller 的 SDK 调用形态各不相同从源码可以精确看到三家的差异Anthropicclient.messages.create(modelclaude-haiku-4-5, max_tokens200, messages[...])token 字段为msg.usage.input_tokens / output_tokens文本取msg.content[0].textstarter.pyOpenAIclient.chat.completions.create(modelgpt-5-mini, max_tokens200, messages[...])token 字段为r.usage.prompt_tokens / completion_tokens文本取r.choices[0].message.content or starter.pyGoogleclient.models.generate_content(modelgemini-3.5-flash, contentsprompt)token 字段为usage.prompt_token_count / candidates_token_count并且代码对usage_metadata做了getattr防御starter.py。latency 一律用int((time.time() - t0) * 1000)在调用前后计时得出三家口径一致因此可比。常见坑跨厂商集成必须正视的四个问题三家 SDK API shape 差很多Anthropic 用messages.create、OpenAI 用chat.completions.create、Google 用models.generate_content。用 dataclass 统一才能比较——这是本练习最核心的工程结论比较的前提是先做一次结构归一化。Token 计算字段名不一样Anthropic 是input_tokens / output_tokens、OpenAI 是prompt_tokens / completion_tokens、Google 是prompt_token_count / candidates_token_count。统一进Reply.in_tokens / out_tokens后成本估算与路由决策才有统一输入。没设 key 应该 skip 而非 raiseproduction code 一定要做这层 guard、production agent 不能因为一家 down 就全死。这也是本练习用test_skip_when_no_key和test_compare_returns_only_valid_replies双重验证的语义。没抓 latency跑完才知道哪家慢、production routing 需要这 data。latency 与 token 一样都是后续模型路由决策如 Stage 7 的 observability的基础观测量。想加更多家OpenRouter、Groq 等 OpenAI-compatible endpoint 的边界OpenRouter、Mistral、Cohere、Groq 等服务可以提供 OpenAI-compatible endpoint但不能假设只改base_url就完全兼容。至少还要确认model ID、认证、支持的参数、tool schema、responseusage 字段、rate limit 和错误格式。以 Groq 为例client OpenAI( base_urlhttps://api.groq.com/openai/v1, api_keyos.environ[GROQ_API_KEY], )这条路径能复用call_openai的 OpenAI-compatible client但上线前必须用本练习的测试思路逐一核对上述六项兼容面——尤其是 usage 字段影响 token 计量与成本估算和错误格式影响 skip/retry 逻辑。Path B加上本机 Ollama 当第 4 家对照call_openai已经使用 OpenAI-compatible client。换成 Ollama 时要改base_url和model也要用本题测试确认 response、usage 和 tool support。完整的call_ollama实现如下来自 READMEdef call_ollama(prompt: str) - Reply | None: 本机 Ollama (gemma4:e4b 或 qwen2.5:3b)。没装就 return None、不 crash。 import requests try: requests.get(http://localhost:11434/api/tags, timeout2) except Exception: return None # Ollama 没跑 from openai import OpenAI client OpenAI(base_urlhttp://localhost:11434/v1, api_keyollama) t0 time.time() r client.chat.completions.create( modelgemma4:e4b, max_tokens200, messages[{role: user, content: prompt}], ) return Reply( providerOllama-local, modelgemma4:e4b, textr.choices[0].message.content or , in_tokensr.usage.prompt_tokens, out_tokensr.usage.completion_tokens, latency_msint((time.time() - t0) * 1000), )这段代码延续了本练习的两条设计原则先探测再调用/api/tags健康检查失败就 returnNone与缺 key 语义一致和统一进ReplyOpenAI 的 response 字段恰好与本地端点兼容。把call_ollama加进compare()的 caller list就能看到 4 家对照for fn in (call_claude, call_openai, call_gemini, call_ollama):需要提醒的边界本地路径没有供应商模型 API 账单但仍有下载、硬件、电力和等待成本latency 与质量要用同一组固定测试在你的电脑上实测。另外仓库的 examples/README.zh-Hans.md 标注了各阶段默认本地模型 tagStage 1–2 默认gemma4:e4b对话与 prompt 练习Stage 3–6 默认qwen2.5:3b工具调用练习可按需调整call_ollama中的 model 参数。延伸从对照走向成本、方差与质量评测成本对照接上 Stage 1 的计价练习 的 PRICING dict、印 dollar cost column。Stage 1 的 Path B 起手码给出每 1M token 的 USD 定价表如claude-haiku-4-5为 input $1.00 / output $5.00单次成本公式为(in_tok * rates[input] out_tok * rates[output]) / 1_000_000见 stages/01-llm-basics.zh-Hans.md。把Reply.in_tokens / out_tokens套进这套费率即可为每家 provider 输出可比较的单次美元成本列。同 prompt 跑 N 次取平均在compare()内加 for-loop、看 latency stdev——单次 latency 噪声很大多次取均值与标准差才是可用的路由依据。加 quality eval加第四家 LLM 当 judge、给每家的响应打分这在 Stage 7 练习 2 会教见 stages/07-multi-agent-production.zh-Hans.md。小结这个练习虽然只有约 130 行源码却浓缩了跨厂商 LLM 集成最关键的三件事结构归一化dataclass 统一异构 SDK 响应、容错默认值缺 key / 服务不可达一律 skip 不 crash、可验证性mock 测试零成本锁定逻辑。这套模式可以直接平移到生产环境的多厂商路由、成本核算与质量评测管线。想继续深入可以按 docs/HOW_TO_USE.md 的每次只改一件事循环依次尝试修改 prompt、替换模型 ID、追加第四家 caller逐步建立自己的模型对照基线。赞分享教程文档AI Agent人工智能大模型【免费下载链接】awesome-agentic-ai-zhA trilingual (繁中 / English / 简中) learning roadmap for agentic AI: from LLM basics to multi-agent systems, with 240 curated resources and hands-on examples. 中文 AI agent 學習地圖。项目地址https://gitcode.com/gh_mirrors/aw/awesome-agentic-ai-zh点击查看免费下载相关推荐深入解析 Dopamine JAX 中的 PPOActorCriticOutputPPO 演员-评论家网络输出契约与实战用法深入解析 Dopamine JAX 中的 PPOActorCriticOutputPPO 演员 评论家网络输出契约与实战用法 导读 PPOActorCriti教程文档AI Agent人工智能大模型CodeAct 与 JSON Tool 双路线实战Smolagents 安全执行边界解析awesome-agentic-ai-zh Stage 4 练习 4CodeAct 与 JSON Tool 双路线实战Smolagents 安全执行边界解析awesome agentic ai zh Stage 4 练习 4教程文档AI Agent人工智能大模型GHelper 奥创替代快速上手静音模式切换、电池限充 80%、不装后台服务GHelper 奥创替代快速上手静音模式切换、电池限充 80%、不装后台服务 视频会开到一半风扇突然炸响你想按 Silent 静音。奥创中心先弹出来转了教程文档AI Agent人工智能大模型上一篇Stable Diffusion 2 社区资源实用指南下一篇如何快速上手Expert Kit面向新手的MoE模型推理完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考