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 |
curl 和 jq 用于 API 检查和额外操作 |
| 一个终端 + 编辑器 | VS Code 推荐 — 该 repo 包含 .vscode/mcp.json |
开始之前请先验证:
核心的 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。
相关¶
- Python 应用 README
- .NET轨道
- 演示 — 通过这些实验触及的 Python 代码 walkthrough
- 突围 — 结构、智能体、钩子和故障排查
- 解决方法 — 当一个步骤失败时,从这里开始