第12章 协同交付一个跨专业AI系统
工作阶段: 可靠交付——综合前十一章,把一个边界明确的专业问题做成可由别人复现、接手和维护的系统。
公共核心项目: 完成“小型企业设备运维与巡检站”:把环境感知、文字分类、指定资料检索、状态权限、人工确认和审计重放集成为可复现的低风险闭环。
核心技术: 系统集成、项目结构、依赖与版本、数据卡和模型卡、接口契约、现场测试、交接复现、维护计划与人机协作。
输入输出链: 真实委托 → 任务与验收合同 → 授权数据 → 高风险独立门 → 模型或规则 → 可运行程序或设备 → 固定测试与现场证据 → 交付包 → 另一组复现和维护。
应用中的AI: 参考系统使用本地环境偏离小模型;文字分类和最小人工表单作为透明基线,专业迁移可替换一个主要模型,但不要求堆叠全部技术。
协助开发的AI: 帮助建立项目结构、生成和解释多文件代码、适配接口、分析日志、补充测试和整理运行文档。
人的责任: 确定问题价值、数据授权、专业规范、验收责任和上线边界;审查每次变更并完成交接。
主要交付物: 可运行代码库、任务与团队合同、接口合同、环境与模型、冻结数据、系统卡、集成测试和真实报告、交接清单与维护计划。
明确边界: 综合项目不以功能数量评价,不直接控制危险设备;未经审核的运行经验不得在线改变模型、规则、权限或物理行为。
跨章关系: 综合使用前十一章;至少复用一个模型、一个人工或规则基线、一个失败集和一个人工接管点。
学习目标
学完本章,你将能够:
- 从真实委托中确定一个可完成的最小闭环,并建立团队任务、数据和验收合同;
- 选择必要的模型、规则、资料、程序或设备模块,解释为什么没有堆叠其他技术;
- 用统一项目目录、版本和运行入口形成可复现基线;
- 在真实或模拟现场根据日志和固定测试开展受控迭代;
- 组织另一组完成安装、运行、故障处理和交接复现,并根据暴露的问题补充交付包;
- 说明系统后续监测、更新、回滚和人工责任。
项目导入
综合项目不是把前十一章所有技术拼在一起。一个有价值的系统可以只使用一个视觉模型、一组规则和一份记录工具,也可以使用资料检索、语言模型与人工确认。技术选择取决于工作问题、输入条件、错误后果和维护能力。功能越多,接口和失效点也越多;无法解释和交接的复杂性不属于成果。
公共题目是“小型企业设备运维与巡检站”。全体先完成同一参考闭环:观察环境数据是否偏离参考范围,理解脱敏巡检文字,从指定检查卡返回带来源的候选说明,并在指定角色确认后生成本地事件记录。完成公共基线后,各专业只能替换一个主要输入或模型形成迁移版本,并保持状态、权限、安全和测试合同。系统只观察、提示和记录,不控制电源、门锁、交通、加热或机械装置。
每组需要完成最小工作闭环,并由另一组按照交付包从头复现。另一组不是观看演示,而是拿到一个干净副本,在另一台电脑或独立环境中安装、运行固定样例、制造一个故障并找到恢复方法。复现失败会暴露原组没有写出的路径、依赖、密钥、数据或专业假设,这正是交接学习的价值。
本章成果
- 一份由委托人、使用者、团队和专业责任人共同确认的任务与验收合同;
- 一套结构清楚、环境可重建、入口唯一的项目代码库;
- 一份包含来源、授权、处理和版本的数据卡,以及说明任务、指标和边界的模型或规则卡;
- 一份正常、边界、陌生和故障测试报告及至少一轮受控修改差异;
- 一套经另一组复现后修订的用户手册、交接清单、故障指南和维护计划。
AI协同开发路线
团队先向协助开发的AI提交真实委托、专业材料、数据条件、现有设备、禁止事项和学时边界。AI追问使用者、最小输出、验收样例、依赖、责任人和失败去向,提出不超过必要范围的系统方案。学生删减不需要的功能,冻结任务合同和接口。AI生成最小可运行系统及完整代码库,团队在干净环境运行,逐层保存日志,并在增加功能前冻结代码、模型、数据、配置和固定测试基线。每次现场问题都转成限定变更请求,成员审查文件差异并运行全部回归。达到内部验收后,把交付包交给另一组复现;原组只能根据书面反馈补充或修正,不能代替接手组操作。最后共同签署通过、限用、继续试运行或退回结论。
第一节 从真实委托建立团队任务、数据和验收合同
一、选择一个真正需要完成的工作结果
“做一个AI巡检站”仍然过于含糊。团队要把它改写成具体结果,例如:“在教学楼公共区域的授权图片中,把明显外观异常列为待人工复核,显示模型分数和资料依据,经过指定角色确认后生成本地记录。”这句话限定了输入、输出、使用范围和人工接管,没有承诺模型判断故障,也没有自动执行处置。
判断AI是否必要时先建立基线。若固定阈值或人工检查已经快速、稳定地完成任务,就不必增加模型;若图像、声音或复杂文本变化较大,模型能够减少候选筛查工作,可以作为辅助。团队在立项卡中写明模型带来的价值和增加的维护负担。
二、建立团队任务合同
任务合同包括委托人、使用者、目标、输入、输出、限制、不做事项、成功标准、高代价错误、数据授权、专业责任人和交付日期。跨专业团队按工作模块分工,不按专业名称机械切块。建议角色包括任务与专业规范、数据与授权、模型与基线、程序或设备、测试与交接;一个人可承担多项,但关键审查不能只由代码生成者完成。
接口也要进入合同。数据组交付什么字段和版本,模型组输出什么类别和分数,程序组怎样处理低置信度,测试组使用什么封存样例,交接组怎样判断复现成功,都要写成可检查约定。口头默契无法被另一组复现。
三、冻结最小范围与变更规则
最小闭环只解决一个问题,使用一种主要模型或模型路径,保留一种基线和一个人工确认点。立项后新增功能先进入“以后考虑”,除非它修复验收失败。每个变更写明原因、修改范围、预期结果和需要重跑的测试;AI不能因为看到更多资料就自动扩展需求。
控制变量实验选择系统中的一个关键量,例如感知阈值、检索前若干条或时序窗口。固定数据、程序和其他配置,先写出预测,再用同一测试比较质量、人工复核量和延迟。综合项目仍需保持实验可解释。
第二节 集成数据、模型、程序或设备形成可复现基线
一、用项目目录表达责任
建议目录包含README.md、config/、data/、models/、src/、tests/、docs/和logs/。原始或授权数据与处理数据分开,模型文件和标签一起保存,运行配置不包含密钥,测试数据不混入训练。README给出唯一启动入口和期望输出,数据卡、模型卡、系统图、安全边界和交接清单放在docs/。
版本清单记录操作系统、Python和主要依赖的大版本、模型及资料版本。项目应提供最小样例,避免接手者必须访问私有平台或真实敏感数据才能启动。云端模型作为可替换模块时,提供离线响应样例或本地基线,明确哪些结果不能由离线路径证明。
二、集成一个可运行的参考基线
配套工程位于resources/ch12/project/,固定项目是“小型企业设备运维与巡检站”。它不是让各组随意拼装几个页面,而是先提供一条能运行、能失败、能验收的参考闭环:带资产编号的脱敏工单文字先经过独立高风险门;普通工单再读取虚拟或预录环境窗口,校验输入,用本地小模型计算环境偏离分数,文字分类器判断工单类别,检索器返回指定检查卡;边界规则决定是否停止或转人工;运营主管确认后才形成持久仅追加记录,程序重启后仍可重放。学生在这条基线上做一次限定修改,并由另一组真实复现。
参考项目面向小型企业行政运营团队,主要工作角色是运维技术员和运营主管。输入是工单编号、资产编号、地点、现象文字以及温度、湿度、光照和质量标记;输出是环境分数、候选类别、可追溯检查依据、工作状态和审计事件。完成标准不是“界面亮了”,而是正常、边界、陌生、安全、设备故障、模型故障、知识故障、输入越界、权限、幂等和日志故障全部得到规定结果。系统只观察、提示、记录和转交,不控制电源、门锁、消防或设备。
工程用文档与代码共同表达责任。TASK_CONTRACT.md定义任务边界,TEAM_CONTRACT.md把任务与专业、数据与模型、程序与接口、测试与交接四类责任分开;INTERFACE_CONTRACT.md冻结跨模块字段;DATA_CARD.md和MODEL_CARD.md说明数据与模型来源和限制;ARTIFACT_MANIFEST.json锁定场景、知识、配置和模型摘要;SYSTEM_CARD.md说明用途与限制;AUDIT_LOG_SCHEMA.md说明持久记录;HANDOFF_CHECKLIST.md区分自动预检和真实复现;MAINTENANCE_PLAN.md规定以后怎样更新。完整代码放在src/,模型和资料分别放在models/与data/,固定结果放在reports/。这些文件使接手者不必从聊天记录猜项目是怎样做出来的。
感知模块沿用第9章的本质,但保持本章工程独立可运行。虚拟传感器公开read_window();输入校验检查三个字段、单位约定的有效范围和quality;冻结JSON模型保存参考中心、尺度和权重,用加权绝对偏离得到分数。分数大于0.80为REVIEW,距门槛不超过0.05为BOUNDARY。边界不是“差一点就确定”,而是系统对阈值敏感的区域,所以直接转人工。真实设备接入必须另行依据准确型号建立适配器,默认工程不提供任何接线猜测。
服务模块把文字分为meeting_display、office_network、water_supply、unknown和high_risk。它是透明教学基线,将来可以在接口不变的前提下替换为语言模型。检索器只从三条冻结检查卡返回doc_id、标题和操作说明;没有依据或知识库不可用时,不允许模型凭常识补齐。高风险词在读取传感器、加载模型和访问知识库之前进入EMERGENCY_HANDOFF,即使设备、模型、知识库或日志同时故障,也不得把这一转交改写成普通模块故障;但转交只表示进入企业既有应急责任链,学生程序不执行应急处置。
集成主链的核心顺序如下:
text = classify(event["report"])
if text["label"] == "high_risk":
return emergency_handoff() # 先于可选设备、模型和知识模块
window = sensor.read_window()
validate_window(window) # 无效则 STOP_BAD_INPUT
score = model.score(window) # 本地、离线
sensing = sensor_state(score, threshold, margin)
if text["label"] == "unknown" or sensing == "BOUNDARY":
return move_to("MANUAL_REVIEW")
evidence = retriever.find(text["label"])
if evidence is None:
return move_to("MANUAL_REVIEW")
move_to("EVIDENCE_FOUND")
move_to("AWAITING_CONFIRMATION") # 尚未形成正式记录
只有operations_supervisor能调用confirm()把等待状态变成COMMITTED或CLOSED_NO_ACTION;maintenance_technician可以提交工单但不能批准。同一工单编号和相同负载再次提交时直接返回当前状态,不增加记录;同一编号携带不同负载时进入STOP_ID_CONFLICT。EventStore(path)把每个事件写成UTF-8 JSONL,刷新到磁盘,程序重新打开后可由replay()重建最终状态。设备无新数据、模型文件不存在、日志不可写都有不同停止状态,不能统一吞掉异常。应用中的AI是环境偏离小模型;文字分类、状态、权限、安全和审计是透明基线与确定性控制,最终决定由人负责。
学生在工程根目录执行:
python acceptance.py
python -m src.main
src.main用一条带资产编号的会议显示屏无画面工单走过环境评分、文字分类、证据检索、等待确认和运营主管接受,并把可重放日志写入output/demo_audit.jsonl。acceptance.py检查必需文件、冻结制品摘要、全部Python语法、7个单元测试、完整集成评估和临时干净目录复现预检。工程只使用Python标准库,不访问网络,不要求云账号和真实硬件,默认数秒完成。
固定集成包共有12条:两个正常样例到达AWAITING_CONFIRMATION;门槛边界样例和陌生表述进入MANUAL_REVIEW;普通冒烟事件以及冒烟与设备、模型、知识故障的三个组合事件都进入EMERGENCY_HANDOFF;单独的设备断开、模型缺失、知识库不可用和温度越界分别进入STOP_DEVICE_LOST、STOP_MODEL_MISSING、MANUAL_REVIEW和STOP_BAD_INPUT。真实运行的实际结果为12/12通过。
同一评价还实际运行最小人工表单基线。它把显式高风险交给应急人工链,其他全部进入人工队列,因而安全处理12/12,但自动找到证据为0;助手在两个普通工单中自动返回可定位依据,其价值是减少常见事件的初步查找,不是替代人工安全底座。七项操作测试继续验证相同负载重复提交不产生第二次副作用、同编号不同负载被拒绝、运维技术员不能确认、运营主管可以确认、JSONL重新打开后能重放到COMMITTED、普通工单日志不可写时停止,以及高风险在日志不可写时仍保持应急转交。
这些结果只证明参考工程的自动技术门。项目的reproduce.py会新建临时目录,只复制最小运行包,再从头启动并走到COMMITTED;这能发现绝对路径、原目录缓存和漏带文件,却不能扮演真实接手者。报告因此同时写明automatic_clean_reproduction=checked_by_reproduce_py和independent_team_reproduction=PENDING_CLASSROOM。在另一组真正按README安装、运行、制造知识库故障、恢复并提交问题单之前,只能形成“课堂参考基线通过、真实交接待完成”的限用结论,不能写“项目已交付上线”。
三、在干净环境冻结基线
原开发电脑能运行,可能依赖未记录的缓存、环境变量和本地文件。冻结基线前,团队使用新目录或另一台电脑,按README创建环境、安装依赖、运行三条固定样例并核对结果。任何人工复制但未写入说明的文件都属于交付缺陷。
基线冻结后记录代码、模型、数据、资料、配置和测试版本。新增功能建立新版本,不覆盖已验收基线。协助开发的AI生成依赖清单后,学生还要实际重建环境验证,不能只相信文本说明。
团队还要保存一份“最小成功证据”:一条输入样例、完整执行命令、期望状态、关键日志和结果文件校验值。接手者先复现这一证据,再运行更多测试。若连最小证据都无法重复,继续讨论模型精度或界面功能没有意义。
第三节 在真实或模拟现场测试并受控迭代
一、三类现场证据
固定测试用于版本比较;回放或虚拟现场用于稳定复现设备和时间过程;真实现场用于发现环境、人员和工作负荷差异。硬件不足时可以完成前两类,但报告必须说明不能证明真实传感器稳定性、长期漂移和现场行为。
公共项目至少记录输入来源、环境条件、模型分数、规则状态、人员修改、端到端延迟和最终结果。真实现场只使用授权数据,摄像头和麦克风说明采集范围、保存位置和删除方式。任何高风险发现直接转交专业责任人,不由学生系统处置。
二、让失败推动一次限定修改
团队从失败集中选择一个有代表性问题,例如相似背景造成误报、资料无命中仍出现候选说明、设备断开后沿用旧值或接手者无法找到模型文件。先定位错误属于数据、模型、检索、规则、接口、设备、文档还是人,再向AI提交限定请求。
请求应写:“固定任务合同、接口和测试集;只修改src/device_adapter.py,当读取超时时返回STOP_DEVICE_LOST,不得沿用上次值;列出文件差异并运行全部测试。”修改后团队逐行审查关键差异,运行正常和故障回归,并记录是否产生副作用。若失败来自数据授权或专业定义,不能用改代码掩盖。
三、验收系统而不是单个模型
综合验收同时查看任务价值、基线比较、模型错误、证据来源、状态权限、故障恢复、人工工作量、资源成本和可复现性。模型指标通过但交接失败,系统仍不能通过;模型略逊于复杂方案但规则基线稳定、成本低,团队可以选择基线。
验收结论包括通过、限定场景试运行、退回修改或停止。限定使用要明确对象、时间、数据范围和人工监督。任何变更都进入第11章的回归门和回滚流程。
四、专业迁移卡
专业迁移卡A:商贸与设计服务站。 输入改为商品资料、用户需求和授权素材,应用AI协助分类需求或生成候选传播内容;高代价错误是价格事实错误、权利材料缺失和未经批准发布。交付物增加事实清单、品牌规范、内容版本和业务负责人签字。
专业迁移卡B:制造与交通巡检站。 输入改为零件、道路或车辆的授权图像、声音和传感数据;高代价错误是漏报明显异常、设备失效仍给正常结论和越权控制。交付物增加设备事实包、按批次测试、旁路试运行和专业责任人接管,不连接生产或交通控制。
专业迁移卡C:生物与风景园林环境站。 输入改为实验或养护记录、植物图像和环境时序;高代价错误是单位、批次和校准错误,或把相关性写成因果处置。交付物增加数据批次、校准记录、专业规程来源和现场复核,系统只观察与建议。
第四节 完成复现、交接、展示和维护答辩
一、由另一组独立复现
接手组获得代码库、最小数据、模型或基线、环境说明、测试集和交接清单,但不接受原组现场代操作。接手组记录开始时间、环境、执行命令、首次失败、缺失说明和最终结果。至少完成四项:在干净环境启动;运行正常和失败样例;制造一个约定故障并恢复;说明系统的人工接管点。
原组观察但不替接手组修复。复现结束后,接手组提交问题单,区分文档缺失、依赖错误、数据或模型缺失、接口不清和专业假设。原组根据问题单修改交付包,再由接手组重试。只有接手者能继续工作,才算完成交接。
二、交付包说明“怎样继续”,也说明“不要做什么”
用户手册写常规运行,故障指南写停止和恢复,维护计划写资料、数据、模型、规则、设备和依赖的检查周期。风险边界列出未经专业批准不能扩展的功能。模型卡说明训练或调用范围、测试表现和陌生输入;数据卡说明来源、授权、处理和删除;系统卡说明模块、权限、监测和回滚。
展示不只演示最佳样例。团队应演示一次正常输入、一次失败停止、一次人工拒绝和一次重放日志,说明为何采用当前模型或规则。答辩人员可以要求更换输入、询问数据来源或让系统恢复故障,团队不能只播放预录成功视频。
三、维护答辩与前沿拓展
维护答辩回答:场景变化怎样被发现;谁审核新资料和新数据;什么条件触发回归;谁批准新版本;如何回滚;项目停止后怎样删除或归档数据。AI可以协助整理问题和生成检查脚本,不能代替责任人签署。
强化学习或经验更新只放在拓展学习中。学生可以在仿真环境定义状态、动作和奖励,或用离线日志比较候选策略;任何经验必须经过授权、清洗、审核、离线训练和固定验收后,才可能进入新版本。终端和工作流不得在真实现场根据即时反馈自行改变权限、安全规则或物理行为。
四、形成最终交付结论
最终结论不必是“正式上线”。对于课程项目,更合理的结果可能是“通过H0复现,允许在指定场景旁路试运行”“视觉模型需增加跨设备数据后再验收”或“规则基线已经满足需要,暂不部署模型”。结论要引用测试、复现和专业责任人的证据。
本章小结
跨专业项目的目标不是堆叠模型,而是把真实委托转成边界清楚、能够复现和交接的最小系统。统一目录、版本、接口、数据卡、模型卡和固定测试,使AI生成的代码从个人电脑中的结果变成别人可以继续工作的成果。
现场失败必须转成限定修改和完整回归。另一组独立复现是本章最重要的验收:它能够暴露未记录的依赖、路径、数据和专业假设。仿真和审核后的经验更新可以作为前沿拓展,但运行系统不能未经验证自行改变关键行为。
关键术语
- 最小闭环:从真实输入到有责任人的可用输出所需的最小完整链路。
- 可复现基线:在记录环境与版本后,另一环境能够得到相同期望结果的初始版本。
- 项目交付包:代码、环境、数据、模型、测试、风险、使用和维护资料的完整集合。
- 数据卡:说明数据来源、授权、处理、结构、限制和版本的文档。
- 模型卡:说明模型任务、数据、指标、失败模式和使用边界的文档。
- 系统卡:说明系统模块、接口、权限、监测、恢复和责任的文档。
- 交接复现:由接手者独立安装、运行、测试和恢复项目的验收活动。
- 受控迭代:限定变更范围、审查差异并通过固定回归的修改方式。
- 维护计划:规定资料、模型、程序、设备、监测和回滚责任的安排。
目标测试
一、单项选择题
- 综合项目选择技术的首要依据是( )。A.模型数量 B.真实任务、输入条件和错误后果 C.界面动画 D.代码行数
- 判断项目达到交接要求的最佳证据是( )。A.原作者演示成功 B.另一组按交付包独立复现并处理故障 C.模型文件很大 D.使用热门框架
- 下列最符合最小闭环原则的是( )。A.一次加入全部技术 B.完成一个输入到人工确认输出的边界明确链路 C.只画概念图 D.只交生成代码
- 运行经验进入新版本前必须( )。A.自动在线学习 B.经过授权、审核、离线更新和固定验收 C.删除旧版本 D.绕过责任人
二、判断并改错
- “跨专业项目功能越多,越能证明系统质量高。”请判断并改正。
- “原组能在自己的电脑上运行,就说明交付包已经可复现。”请判断并改正。
三、简答与操作题
- 将“做一个企业AI巡检站”改写成包含使用者、输入、输出、边界和人工责任的任务描述。
- 为综合项目设计一个目录结构,并说明数据卡、模型卡、固定测试和日志分别放在哪里。
- 写出接手组复现项目的四个必做步骤,以及原组在复现期间不能代替完成的事项。
- 设计一次只修改设备适配层或模型阈值的受控迭代,列出修改申请、差异审查、回归和回滚证据。
答案编号:A2-12-01—A2-12-10。完整答案与评分要点统一放入书后“目标测试参考答案”。