资讯详情

资讯详情

AI 结对、真实仓库、评审闭环:拆解这份爆火作业集每道题背后的『AI 协作』设计

AI 结对、真实仓库、评审闭环拆解这份爆火作业集每道题背后的『AI 协作』设计【免费下载链接】modern-software-dev-assignmentsAssignments for CS146S: The Modern Software Dev (Stanford University Fall 2026/2025)项目地址: https://gitcode.com/GitHub_Trending/mo/modern-software-dev-assignments如果一份大学课程的作业仓库能冲上 GitHub Trending那它教的必然不是怎么写代码。modern-software-dev-assignments是斯坦福 CS146S《现代软件开发者》The Modern Software Developer, 2026 秋季的作业集三周作业的主题分别是把 Claude Code 的真实会话放到代理后面抓包解剖、为第三方 API 亲手写一个 MCP Server、为一个可复用工作流编写 Agent Skill。没有一道题是请实现一个排序算法。每一道题都在训练同一种能力——和 AI 结对干活而不是向 AI 抄答案。本文将从题目设计出发拆解这套作业如何在AI 结对、真实仓库、评审闭环三个支点上把一次作业变成一场可验证的工程训练。从传统结对编程到 AI 结对差异在哪要理解这套作业的激进之处先看软件工程教育此前的标准答案。国内大量现代软件工程课程脱胎于邹欣《构建之法》的教学体系其核心是做中学在 16 周内通过个人、结对与团队三层项目覆盖软件过程、需求分析、设计开发、测试维护与创新管理。社区中流传甚广的课程作业汇总2021 年一篇获收藏 4 次的总结专门讨论过如何从数据、需求、用户和软件构建等维度增加作业丰富性以及如何防抄袭。而到了 2025 年围绕《构建之法》的学生提问作业里AI 工具对软件工程的冲击AI 在软件测试中的潜力已经成为最高频的问题——学生开始在问而课程还没开始答。这正是 CS146S 切入的缝隙它把AI 协作从讨论对象变成了训练对象。传统结对编程是两个工程师共享一个键盘一个写一个审靠的是人的实时反馈。AI 结对则完全不同你的搭档是一个只看到你写的 schema 和 docstring、其他什么都看不到的模型。这意味着协作的界面不再是对话本身而是你为 AI 暴露的接口。CS146S 的作业设计者显然深谙此道——三周作业层层递进恰好对应 AI 结对的三层能力Week 1读懂搭档。把 Claude Code 的真实请求抓下来逐字段解剖系统提示词与工具 schemaWeek 2给搭档造接口。为 AI 消费方设计 MCP 工具让模型能选对工具、调对参数、出错能自己恢复Week 3给搭档写手册。把重复性工作流编码成 Skill让模型在该触发的时候触发跑起来不出岔子。逐题拆解题目如何逼你调用 AI 而非抄答案Week 1解剖一次真实的 Claude Code 会话week1/assignment.md 的开篇定调非常直白You are not building anything new. You are reading someone elses production system at the level of detail where its design decisions become visible.——不写新东西而是把别人的生产系统读到设计决策显形为止。这道题的第一层设计是强制真实。捕获会话必须同时满足四个硬性条件多文件、至少失败一次、长到足以让 Agent 显式做计划、且必须是你自己的仓库。注意至少失败一次不是偶然要求——题目直接给出建议Breaking a test on purpose is the reliable way to get one.故意弄坏一个测试来诱发错误恢复序列。这是把AI 会犯错从新闻里的抽象概念变成你亲眼观察过的具体数据点。第二层设计是证据纪律。Part IV 要求每个行为分析结论必须标注[OBSERVED]或[INFERRED]并引用证据第几个请求、第几条消息、哪个工具调用observed 意味着你能在抓包里指出它inferred 意味着你从定义推断但没亲眼看到。两者都接受不标注不得分。同时作业明确要求脱敏Never paste raw flows or HTTP headers因为x-api-key就藏在那里请求体也可能回放.env里的密钥引用前必须检查工具结果。这三条合起来训练的是 AI 时代最稀缺的素养对模型输出的每一个断言都能追溯到证据对每一条要外发的数据都知道它可能包含什么。第三层是从 schema 学接口设计。Part III 要求先报数字多少工具、内置/MCP/延迟搜索各多少、会话中如何变化再选两个差异足够大的工具做接口设计分析为什么是这套参数、哪些被刻意不暴露、描述里哪句话只因为模型老做错事才存在——题目原话是 Tool descriptions in a mature agent are largely accumulated scar tissue成熟 Agent 的工具描述大多是累积的伤疤组织。能读懂伤疤才懂得接口设计本质上是与错误的历史博弈。Week 2为 AI 消费方设计接口如果说 Week 1 是读别人的接口week2/assignment.md 就是写自己的接口而且点明了评分重心The API work is the easy part. What is graded is agent ergonomics.——Agent 人机工程学。这道题提出了五条可操作的接口设计准则每一条都是反直觉的约束进 schema不要进散文。题目原话sort: Literal[stars, forks]beatssort: strplus a docstring sentence.如果 schema 和 docstring 互相矛盾模型会收到它无法解释的校验失败。塑形你的输出。不要把第三方 API 的原始 JSON 直接透传只保留 Agent 需要的字段——Raw payloads are token-heavy and couple your contract to someone elses API。错误是数据不是 traceback。一道 traceback 会终结 Agent 的回合而{error: rate limited, retry after 42s}能让它继续。错误信息必须足以让模型区分不要重试ID 错误和重试限流、网络抖动。Docstring 就是契约。要写明 ID 从哪来the numeric ID fromlist_templates让工具能链式调用。写工具要装刹车。读工具加readOnlyHint注解不可逆操作要么给dry_run参数要么拆成预览-确认两步。再加上 OAuth 部分的最小化 scope令牌第一版就只从环境变量读、绝不进仓库以及token 会话中途失效时不能弹浏览器、要返回可操作的错误——这些约束放在一起就是在模拟真实生产环境里把内部 API 交给 AI 使用的全部卫生标准。作业还要求提交一份你看了 Agent 误用工具后改了什么的记录把观察驱动迭代写进了评分表。Week 3把判断力编码进可复用的 Skillweek3/assignment.md 把 AI 结对推进到第三层Agent 已经会干活了怎么让它稳定地、正确地干活答案是 Skill——the checklist you would otherwise paste into chat every time。这道题最锋利的地方在于区分了步骤和判断单条固定命令只是 shell alias不是 SkillSkill 必须至少包含一个真实的决策点。题目给出的候选工作流issue 转实施计划、PR 评审、bug 复现、依赖升级、截图转实现每一个都内含判断比如 bug 复现要求先构建最小复现、形成假设、跑定向测试、最后才提修复方案。Part II 明确要求Judgment, not just steps——遇到歧义时如何决策、以及不该做什么A restatement of the tool documentation teaches nothing。最值得称道的是 Part III 的触发测试三个应该触发 Skill 的 prompt加一个几乎触发但不应触发的 near-miss然后报告实际结果——If the near-miss fired it, your description is too broad.把提示工程从玄学变成了可证伪的实验。这一部分本质上是在训练工程师对模型何时会错误调用工具的敏感性是 Week 1 抓包分析的镜像练习。评审与反馈环节如何闭环这套作业的闭环设计藏在每个 writeup 模板和评分细则里。三份 writeup.mdweek2、week3都以 TODO 占位符铺满整个模板提交前唯一的自检动作是⌘F搜索 TODO找不到才算完成——把自查程序化杜绝了我以为我写完了的模糊状态。评审粒度则细到可审计Week 1的 rubric 按五部分 15/25/25/25/10 分配并有两条明确扣分项引用的片段里出现未脱敏的凭证、以及把推断冒充观察claims presented as observation that your trace does not support。这等于把证据链完整变成了可执行的评分规则。Week 2要求展示一段真实的端到端 transcriptprompt → 哪些工具以什么参数触发 → 结果外加一个被刻意诱发的失败路径还必须有一个走 MCP 协议而非直接调用 Python 函数的测试。失败演示与成功演示等权这在作业设计里相当罕见。Week 3的触发测试本身就是反馈环near-miss 触发说明描述过宽触发失败说明描述过窄测试结果直接驱动你重写 description。值得注意的是三份作业都要求把mihail911、isaackann、vdaita三个助教添加为仓库协作者再通过 Gradescope 提交。也就是说评审者看的是你的提交记录、你的抓包证据、你的失败演示而不是一份看起来对的总结。同时 Week 1 反复强调session.flows不能进任何 git 仓库、用后删除.claude/settings.json里的ANTHROPIC_BASE_URL——作业的闭环还包括用完之后干净离场。这套设计对在职工程师的复用价值抛开课堂这套作业其实是三份可以直接迁移到日常工作的能力清单把 AI 当搭档先学会读它的接口。大多数工程师对 AI 编程助手的使用停留在描述需求→粘贴结果出了问题只能归因于模型太笨。Week 1 训练的是另一种归因方式看请求结构、看工具 schema、看系统提示词的分段与顺序结构、语气、何时不行动、环境上下文、看system-reminder为何要在对话中途注入。看懂这些你才具备诊断一次失败的 AI 会话的能力。给自己团队的内部系统写AI 卫生标准。Week 2 的五条准则——schema 级约束、输出塑形、结构化错误、可链式调用的 docstring、写工具刹车——可以直接复用到任何把内部 API 暴露给 LLM的场景。团队里如果有人在给 Copilot 或自建 Agent 接内部服务这份作业就是现成的接口审查清单。把团队 SOP 编码成 Skill并用 near-miss 测试验证。很多团队有代码评审 checklist上线前检查单但从来没人验证过AI 会不会在错误的时机触发它。Week 3 的触发测试三个应触发 一个不应触发是成本最低的验证手段而判断力而非步骤的要求则提醒我们能被编码进 Skill 的应该是那些你愿意让 AI 替你反复执行的决策框架。CS146S 这套作业真正的价值不在于教会学生使用某个具体工具而在于它把AI 协作从一句口号拆解成了可训练、可评分、可复用的工程能力。GitHub Trending 上的热度或许来自斯坦福开课教 Claude Code的新鲜感但能留下来的是 Week 1 的证据纪律、Week 2 的接口卫生、Week 3 的可证伪触发测试——这三样东西在任何一家 AI 辅助开发已经常态化的公司里都是稀缺技能。【免费下载链接】modern-software-dev-assignmentsAssignments for CS146S: The Modern Software Dev (Stanford University Fall 2026/2025)项目地址: https://gitcode.com/GitHub_Trending/mo/modern-software-dev-assignments创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →