跳至内容

Python 实验

动手实践课程关于 AI Genius S5E2 — Agent HQ Demo专注于 GitHub Copilot SDK这是 Python 轨道选择 一个 Python track 或 .NET track .NET — 以及按照顺序完成它。因为Python使用 5070 以及 .NET 使用 5050/5051.

前置条件

需求 备注
Python 3.11+ python3 --version 应报告 3.11 或更高版本
uv 安装依赖项并运行 Python 命令
GitHub Copilot CLI 已通过Copilot登录;SDK与此相关
git, curl, jq curljq 用于 API 检查和额外操作
一个终端 + 编辑器 VS Code 推荐 — 该 repo 包含 .vscode/mcp.json

开始之前请先验证:

python3 --version   # 3.11+
uv --version
copilot --version   # 1.x

核心的 Python 命令,从应用目录运行:

cd src/AgentOrchestrator-python
uv sync
uv run uvicorn app.main:app --port 5070   # API + UI on one port
uv run pytest                             # 30 tests
uv run ruff check .

🎯 SDK的路径

The 核心路由。 约两小时全程。

# 实验 你将要做什么 用时
01 环境配置 安装依赖项,运行 FastAPI 应用程序,并对 SDK 示例进行烟雾测试 ~15 分钟
02 第一次聊天 流式传输响应;在运行时发现模型 约20分钟
03 工具 让模型调用你的 Python 代码,使用 @define_tool ~20 分钟
04 事件 读取真实的会话事件生命周期 ~20 分钟
05 会话 持久并恢复跨重启的对话 ~20 分钟
06 MCP 附加一个MCP服务器来使用你没有编写的工具 ~20 分钟
07 总结 整合、清理、选择下一步 ~10 分钟

可运行示例

Labs 03–06 都基于真实的 Python 模块,每份实验对应一个子命令:

cd src/AgentOrchestrator-python
uv run python -m sdk_labs tools
uv run python -m sdk_labs events
uv run python -m sdk_labs sessions
uv run python -m sdk_labs mcp

这些示例命令是基于真实模块的, sdk_labs. 模型文本和 diagnostic警告可能会因账户、SDK版本和本地 Copilot CLI 设置而有所不同。

📎 附加实验 — 不是 SDK

有用,但它们涵盖了GitHub Copilot CLI和一般的App开发,而不是SDK。可选的,并且独立于编号路径。

实验 内容概要 为什么它是额外的
扩展 API FastAPI, SQLModel, pytest Copilot 作为编码助手;不触及任何 SDK
自定义代理 .agent.md 文件,智能体辅助审查 A Copilot CLI 功能,适用于所有技术路线——归类于 突围
治理钩子 Shell hooks, 安全闸门, 审计日志 一个 Copilot CLI 功能;SDK 相等的等价物在 实验 03

只有扩展API是Python-specific的。自定义代理和治理钩子是语言无关的CLI实验,因此网站将其列在专题 → 动手拓展而不是每个技术路线都重复列出。

约定

  • 命令可以从仓库根目录复制粘贴,除非实验指示执行 cd src/AgentOrchestrator-python
  • 预期输出显示,以便您可以确认每一步
  • ⚠️ 标记了如果跳过将会带来问题的内容
  • 💡 表示可选的额外分

⚠️ 在你‘修复’ anything 之前

The Python实现故意包含四个有缺陷的代码模式在app/services/retail_analytics.py,用于代码审查演示:

  • N+1 查询在 get_transactions_with_segments
  • 缺少空值检查 get_transaction
  • add_transaction 没有进行任何输入验证
  • predict_segment 中硬编码阈值

它们完全复制了 .NET 的异味,因此两者的技术路线都适用相同的答案键。Extra — 自定义智能体 要求你找到它们。不要修复它们——复习练习仍然依赖它们的存在。请参阅 AGENTS.md