跳转至

08 · 7 天个人项目实验

目标是在一周内形成能运行、能解释、能被追问的个人实验。建议每天安排 45–90 分钟。先用本仓库 examples/agent_lab 的 README 启动离线教学示例,确认其当前命令与能力。

离线示例使用脚本策略和本地替身工具展示控制循环。清单包括基线运行与扩展实现任务:先检查当前代码,再逐步完成模型接入、任务集和故障恢复等练习。

第 1 天:界定任务,跑通基线

  • [ ] 阅读示例 README 并运行其中的演示与测试命令。
  • [ ] 写清输入、工具、状态、输出及终止条件。
  • [ ] 保存一份成功运行记录,标出策略决定与真正工具执行的边界。
  • [ ] 写出至少 3 项该示例不能证明的能力。

验收证据: 运行命令、Python 版本、当前 commit、演示输出和一张自己画的控制流程图。能回答 Q053 的 4 句介绍。

第 2 天:工具合同和错误路径

  • [ ] 选一个现有工具,列出允许字段、类型、取值范围和返回状态。
  • [ ] 用替身输入测试缺失字段、非法工具名、畸形参数和空结果。
  • [ ] 检查校验发生在执行前;记录工具真正被执行的次数。
  • [ ] 把异常转换成明确错误状态,避免无条件继续循环。

验收证据: 一张输入与预期结果表;至少一个失败用例必须证明“无副作用”,而不只是返回了错误文本。关联 Q041–Q045。

第 3 天:预算、循环与停止

  • [ ] 注入持续要求调用同一工具的策略替身。
  • [ ] 验证步数上限,记录耗尽时的最终状态和已完成工作。
  • [ ] 若自行实现总期限或取消,分别测试工具执行前、执行中和执行后的停止。
  • [ ] 说明哪些限制已实现,哪些只在设计文档里。

验收证据: 一个能稳定终止的循环故障案例;预算账本或状态变化记录。关联 Q047–Q048。

第 4 天:建立自己的任务集

  • [ ] 设计 12 个小任务:4 个正常、4 个边界、4 个失败/越权请求;这是起步数量,不能代表全面覆盖。
  • [ ] 每条记录输入、预期终态、允许调用、禁止副作用和所属类别。
  • [ ] 留出部分任务,不参与规则修改;同源近重复题按组划分。
  • [ ] 分开报告任务完成、正确拒绝与错误执行,不只展示总通过率。

验收证据: 机器可读任务集与评测结果,所有数字写明分母。关联 Q033–Q036。

第 5 天:故障恢复与写操作设计

  • [ ] 如果示例没有写工具,先用本地内存或临时文件设计一个“创建模拟工单”替身,禁止连接真实系统。
  • [ ] 给一个业务意图设置稳定操作 ID;重复请求不能新增第二个对象。
  • [ ] 模拟“提交成功但返回超时”,再通过查询已有状态完成对账。
  • [ ] 区分纯内存去重与跨重启持久去重;没有做持久化就明确标注。

验收证据: 外部替身中的对象数量、重复调用次数与最终状态。只记录返回字符串不足以证明幂等。关联 Q042、Q046。

第 6 天:比较一个可解释的改动

  • [ ] 选一个具体失败类别,只改一项策略或边界处理。
  • [ ] 在相同任务集、环境与统计口径下比较基线和新版。
  • [ ] 记录逐题成功/失败、调用数与耗时;未接入模型就不报告模型 token 费用。
  • [ ] 保留退步的案例,写出改动带来的权衡。

验收证据: 一张前后对照表和复现命令;小样本结果写成“该教学集合上的观察”。本地毫秒级演示不能外推线上 p95。关联 Q038–Q040。

第 7 天:整理可分享的项目证据

  • [ ] 用 1 分钟演示成功路径,再用 1 分钟演示失败路径。
  • [ ] README 明确安装、运行、测试、已实现、未实现、数据来源和许可证。
  • [ ] 写一段真实项目介绍:任务→个人职责→关键决策→证据→局限。
  • [ ] 回答 3 次追问:为什么这样做?失败时怎样?如何知道改动有效?

验收证据: 可供别人按命令复现的 commit、两条运行轨迹和一段录音/讲解稿。不要使用不属于自己的公司经历、用户规模或业务指标。

可选扩展:接入真正 LLM

以下是后续工作,不属于离线示例已经具备的能力。

  1. 选择供应商并阅读其当前官方工具调用文档,明确模型、SDK 和计费版本。
  2. 将模型适配器和工具执行器分离;模型返回工具意图,由执行器校验并执行。
  3. 凭据从环境或密钥管理服务读取,不写入代码或提交记录。
  4. 复用相同任务集合,另评工具选择、参数正确性、多轮稳定性和证据质量。
  5. 记录全部调用成本、错误、上下文和版本;先连接只读替身工具,再逐项增加权限。
  6. 通过真实调用验证后才写“已接入 LLM”;离线测试继续保留以复现故障。

完成自检

要回答的问题 合格证据
到底实现了什么? 可定位的代码和能运行的命令
哪些是模型能力,哪些是确定性代码? 清楚的适配器边界与说明
为什么说没有重复副作用? 工具替身终态、操作 ID 与故障测试
为什么说新版更好? 固定集合、明确分母、前后差异与反例
还有哪些没有验证? 与 README 一致的待办和限制

参考资料

评测参考资料 · 可靠性参考资料

配套面试练习

先合上正文讲一分钟,再用追问和案例检查理解。每题都可以跳回对应学习内容。

展开本章相关面试题