论文
重新思考LLM集成应用的复杂度度量:超越源代码
Rethinking Complexity Metrics for LLM-Integrated Applications: Beyond Source Code
摘要
LLM集成应用将自然语言提示与程序代码混合,其运行时行为很大程度源自提示层而非代码本身。然而现有复杂度度量仅在代码层运作,完全忽略了这部分行为逻辑。我们提出HECATE——首个评估此类应用提示层与代码层复杂度的工具。HECATE的核心是提示即规约(Prompt-as-Specification)——一种受Hoare逻辑启发的形式化方法,将每条提示解释为预期行为的规约。基于已发表分类学中识别的25个复杂度维度,该工具生成52个候选度量。我们在从18个开源仓库收集的118个组件上评估每个度量——以版本历史导出的维护活动作为复杂度的经验代理——并丢弃一旦计入代码规模就失去显著性的度量。仅10个度量通过该检验。其中7个属于我们新引入的集合:每个都统计结构上不同的元素——如LLM调用点、记忆属性与提示模板——而非单纯度量体量——我们将该属性称为结构广度(structural breadth)。幸存的3个传统度量中,RFC表现出类似的广度导向特征,而Halstead N与V仅作为规模的残余效应幸存;我们表现最好的度量超过这三者。关键的是,即使加入最强代码层度量作为协变量,提示层度量仍保持显著性——确立提示复杂度作为独立维度。最后在横跨6个留出仓库的20个组件上的验证显示两个最佳度量继续预测维护工作量——支持其超出训练集的泛化性。
