GitHub Copilot Cookbook 实战指南用 Copilot SDK 菜谱构建多语言 AI Agent 应用【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot导读本指南围绕 awesome-copilot 仓库中的 cookbook/README.md 展开系统梳理 GitHub Copilot Cookbook 的组织结构与使用方式。它以 GitHub Copilot SDK 为核心收集了横跨 .NET、Go、Java、Node.js、Python 五种语言的 7 大核心菜谱Ralph Loop、错误处理、多会话管理、本地文件管理、PR 可视化、会话持久化、无障碍报告每份菜谱都配有可直接复制运行的代码与可执行示例。读完本文你将掌握如何按语言目录快速定位菜谱、用各语言工具链运行示例并理解 Ralph Loop 自主开发循环、会话生命周期管理、MCP 服务集成等底层实现原理具备在生产项目中落地 Copilot SDK 应用的基础能力。Cookbook 是什么定位与设计理念根据 cookbook/README.md 的定义GitHub Copilot Cookbook 是一个实用菜谱集合a collection of practical recipes and examples面向使用 GitHub Copilot 工具与特性完成常见任务的开发者。它的核心设计原则是聚焦focused每个菜谱只解决一个具体任务即拷即用copy-paste-ready代码片段可直接复制真实可运行runnable附带真实世界的示例与可执行样例而不是伪代码。Cookbook 按工具/产品 → 语言两级组织目前唯一的核心分区是 copilot-sdk/其下再按 .NET (C#)、Node.js/TypeScript、Python、Go、Java 五种语言分子目录。从 cookbook.yml 这份网站清单文件可以看到Copilot SDK Cookbook 被标记为featured: true即官网 Samples 页面的主推内容其菜谱还带有 tags如errors、sessions、mcp、wcag用于分类检索。快速上手四步找到并运行你的第一个菜谱cookbook/README.md 给出了简洁的四步上手流程浏览目录进入与你目标匹配的工具/产品文件夹定位菜谱找到解决你用例的那一份复制代码或查看recipe/子目录菜谱文档内的内联代码片段可直接复制完整可运行示例放在recipe/子文件夹中查阅语言专属文档按对应语言的 README 完成环境配置与执行。以 Python 的 Ralph Loop 菜谱为例ralph-loop.md 给出了从仓库根目录直接运行的命令pip install -r cookbook/copilot-sdk/python/recipe/requirements.txt python cookbook/copilot-sdk/python/recipe/ralph_loop.py其中requirements.txt声明了 Copilot SDK 的 Python 依赖recipe/ralph_loop.py 则是带完整参数解析的可执行入口。五种语言的运行方式一览cookbook/copilot-sdk/README.md 汇总了各语言的运行命令这里完整保留并补充说明语言进入目录安装依赖运行示例.NET (C#)cd dotnet/cookbook/recipe无需额外安装dotnet run filename.csNode.jscd nodejs/cookbook/recipenpm installnpx tsx filename.tsPythoncd python/cookbook/recipepip install -r requirements.txtpython filename.pyGocd go/cookbook/recipe无需额外安装go run filename.goJavacd java/recipe依赖 jbangjbang FileName.java需要注意的是Node.js 与 Python 菜谱需要显式安装依赖Node 的package.json/package-lock.json与 Python 的requirements.txt均已在 recipe 目录中提供Java 示例采用 jbang 单文件运行方式省去了传统 Maven/Gradle 项目搭建。七份核心菜谱全景根据 cookbook/copilot-sdk/README.md五门语言共享同一套菜谱矩阵共 7 个主题Python 语言分区还额外扩展了 2 个专属菜谱见 python/README.md。下表是对照 cookbook.yml 中 tags 整理的完整清单菜谱核心能力标签Ralph Loop自主 AI 编码循环每轮全新上下文含规划/构建双模式与回压机制agentsError Handling优雅处理连接失败、超时与资源清理errors、basics、reliabilityMultiple Sessions同时管理多个相互独立的会话sessions、advanced、concurrencyManaging Local Files借助 AI 分组策略按元数据组织文件files、organization、ai-poweredPR Visualization基于 GitHub MCP Server 生成交互式 PR 年龄图表github、visualization、mcpPersisting Sessions跨重启保存并恢复会话sessions、persistence、state-managementAccessibility Report借助 Playwright MCP 服务生成 WCAG 无障碍报告accessibility、playwright、mcp、wcagError Recovery Hooks仅 Python分类工具失败并引导 LLM 继续排查而非放弃—PyInstaller Frozen Build仅 Python用 PyInstaller 将 SDK 应用打包为独立可执行文件—其中 MCPModel Context Protocol集成类菜谱PR Visualization 与 Accessibility Report展示了 Copilot SDK 与外部 MCP Server 协同的能力——前者对接 GitHub 生态数据后者对接浏览器自动化测试能力。深入菜谱一Ralph Loop 自主 AI 任务循环Ralph Loop 是 Cookbook 中分量最重的菜谱python/ralph-loop.md它描述一种自主开发工作流AI Agent 在相互隔离的上下文窗口中循环执行挑选任务 → 实现 → 用回压测试/构建验证 → 提交 → 重复。核心洞察状态在磁盘不在模型上下文Ralph Loop 最关键的设计理念是state lives on disk, not in the models context状态存在于磁盘而非模型的上下文。每一轮迭代都从零开始创建全新会话避免上下文累积让模型始终处于聪明区smart zone从IMPLEMENTATION_PLAN.md等磁盘文件读取当前状态完成一个任务后把结果写回磁盘再退出下一轮以全新上下文重新读取。简化版SDK 版的最小循环简化版是while :; do cat PROMPT.md | copilot; done的 SDK 等价物——每轮新建会话、发送提示词、销毁会话import asyncio from pathlib import Path from copilot import CopilotClient, MessageOptions, SessionConfig, PermissionHandler async def ralph_loop(prompt_file: str, max_iterations: int 50): client CopilotClient() await client.start() try: prompt Path(prompt_file).read_text() for i in range(1, max_iterations 1): print(f\n Iteration {i}/{max_iterations} ) # Fresh session each iteration — context isolation is the point session await client.create_session( SessionConfig(modelgpt-5.1-codex-mini, on_permission_requestPermissionHandler.approve_all) ) try: await session.send_and_wait( MessageOptions(promptprompt), timeout600 ) finally: await session.destroy() print(fIteration {i} complete.) finally: await client.stop() # Usage: point at your PROMPT.md asyncio.run(ralph_loop(PROMPT.md, 20))这段代码展示了 SDK 的核心 API 骨架CopilotClient客户端负责启动/停止 CLI 连接、create_session创建会话、SessionConfig会话配置、MessageOptions消息选项、send_and_wait同步等待回复、destroy销毁会话、PermissionHandler.approve_all自动批准工具调用权限。完整版规划/构建双模式完整版在 recipe/ralph_loop.py 中实现支持通过命令行参数选择模式与迭代次数如python ralph_loop.py plan 5。其要点包括模式选择mode plan时读取PROMPT_plan.md否则读取PROMPT_build.md工作目录锁定通过working_directorystr(Path.cwd())将会话钉在项目根目录确保工具操作解析路径正确权限自动批准on_permission_request回调返回{kind: approved, rules: []}让 Agent 在无人值守下可调用工具工具调用可视化监听tool.execution_start事件并打印工具名便于观察 Agent 行为def log_tool_event(event): if event.type.value tool.execution_start: print(f ⚙ {event.data.tool_name}) session.on(log_tool_event)两种模式的项目文件约定完整版要求项目目录具备以下结构来自 ralph-loop.mdproject-root/ ├── PROMPT_plan.md # Planning mode instructions ├── PROMPT_build.md # Building mode instructions ├── AGENTS.md # Operational guide (build/test commands) ├── IMPLEMENTATION_PLAN.md # Task list (generated by planning mode) ├── specs/ # Requirement specs (one per topic) │ ├── auth.md │ └──>try: response await session.send_and_wait( MessageOptions(promptComplex question...), timeout30.0 ) print(Response received) except TimeoutError: print(Request timed out)请求中止先用非阻塞的session.send()发起请求满足条件后调用await session.abort()中断优雅关闭注册signal.SIGINT处理器在 CtrlC 时通过loop.create_task(client.stop())异步关闭客户端。四条最佳实践总是用 try-finally 清理资源、处理 CLI 未安装/未运行的连接错误、用timeout参数设置合理超时、记录错误日志以便调试。这些模式对 Ralph Loop 这类长时运行会话尤其关键参见 ralph-loop.md 末尾的 See Also 交叉引用。深入菜谱三多会话并行管理python/multiple-sessions.md 解决同时运行多个独立对话各自持有独立上下文与历史的需求。核心模式是创建多个Session并分别发送消息每个会话维护自己的对话历史后续消息自动落入对应上下文例如会话 1 聊 Python 虚拟环境、会话 2 聊 tsconfig、会话 3 聊 Go module 初始化。配套的会话管理 API自定义会话 IDSessionConfig(session_iduser-123-chat, ...)创建后session.session_id即返回该自定义 ID便于追踪列出会话await client.list_sessions()遍历所有会话信息删除会话await client.delete_session(user-123-chat)删除指定会话。典型使用场景包括多用户应用每用户一个会话、多任务工作流不同任务分会话、A/B 测试不同模型对比回复如示例中同时使用gpt-5与claude-sonnet-4.5。深入菜谱四会话持久化与恢复python/persisting-sessions.md 解决应用重启后用户继续对话的需求核心是用有意义的自定义session_id创建会话之后用同一 ID 恢复# 创建带记忆点的 ID session await client.create_session(SessionConfig( session_iduser-123-conversation, modelgpt-5, on_permission_requestPermissionHandler.approve_all)) # 恢复resume_session 重建会话并还原上下文 session await client.resume_session(user-123-conversation, on_permission_requestPermissionHandler.approve_all) await session.send_and_wait(MessageOptions(promptWhat were we discussing?))配套能力list_sessions()列出可恢复的会话delete_session()从磁盘永久移除会话及其全部数据区别于destroy()的销毁句柄但保留磁盘数据session.get_messages()拉取历史消息用于回显或审计。三条最佳实践会话 ID 要包含用户 ID 或业务上下文、恢复前先检查会话是否存在、定期清理不再需要的旧会话。其余菜谱速览以下菜谱在 cookbook/copilot-sdk/README.md 及各语言 README 中有一句话能力说明细节以对应文档为准Managing Local Files利用 AI 分组策略按元数据组织本地文件适合文件归档与智能整理类应用PR Visualization接入 GitHub MCP Server 拉取 PR 数据生成交互式 PR 年龄age图表用于代码审查积压监控Accessibility Report借助 Playwright MCP 服务抓取页面并生成符合 WCAG 标准的无障碍报告将浏览器自动化能力注入 Copilot 应用Error Recovery Hooks仅 Python对工具调用失败分类并引导 LLM 继续排查而非直接放弃是错误处理菜谱的进阶版PyInstaller Frozen Build仅 Python演示如何将 Copilot SDK 应用用 PyInstaller 打包为独立可执行文件便于分发部署对应 recipe 中的pyinstaller_frozen_build.py。源码与测试参考验证与扩展的入口cookbook/copilot-sdk/README.md 指出各菜谱文档之外还有两类可运行的参考资产recipe/子目录每个菜谱的完整可运行示例。以 Python 为例recipe 下除 7 份菜谱对应脚本外还包含requirements.txt与两个扩展示例error_recovery_hooks.py、pyinstaller_frozen_build.pyNode.js 侧则是 TypeScript 源码加package.json/package-lock.json的标准工程结构测试与端到端示例文档提及 Node.js 的examples/basic-example.ts以及go/e2e、python/e2e、nodejs/test/e2e、dotnet/test/Harness等 E2E 测试位置可作为菜谱正确性验证与二次开发的参考。未来的扩展方向cookbook/README.md 明确声明 Cookbook 会随 GitHub Copilot 生态共同演进计划中的扩展方向包括更多 Copilot 工具与集成Additional Copilot tools and integrations进阶模式与工作流Advanced patterns and workflows外部服务与 API 集成Integration with external services and APIs语言专属的优化与最佳实践Language-specific optimizations and best practices。结合 cookbook.yml 可以看到清单中还有一个community-samples社区示例分区当前featured: false收录了社区贡献的完整项目如基于 Copilot SDK 的全栈聊天应用、Java 示例等说明 Cookbook 体系未来会同时容纳官方菜谱与社区成品两种形态。如何为 Cookbook 贡献菜谱如果你想提交自己的菜谱cookbook/README.md 指向仓库根目录的 CONTRIBUTING.md 获取提交规范cookbook/copilot-sdk/README.md 则明确了贡献方式在对应语言的cookbook/文件夹中新建 Markdown 菜谱文档并在recipe/中提供可运行示例然后在语言 README 的菜谱列表中加入链接。当前 Cookbook 状态为7 个菜谱已在全部 5 门支持语言中完成每份菜谱都同时包含文档与可运行示例。小结GitHub Copilot Cookbook 以文档 可运行示例 E2E 测试三件套的形式为 Copilot SDK 的常见开发任务提供了可直接照搬的解决方案Ralph Loop 给出了构建无人值守自主开发循环的完整方法论错误处理与会话系列菜谱覆盖了健壮性的两大关键面MCP 集成菜谱则展示了扩展现有能力的路径。无论你使用 .NET、Go、Java、Node.js 还是 Python都能在 cookbook/copilot-sdk 找到对应的开箱即用实现。【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
