LLM 优先的软件架构:源自 ArchGuard Co-mate 的四个基本设计原则
在优化 ArchGuard 的 AI 辅助架构治理工具 Co-mate 的架构时,发现有一些模式与之前设计 AutoDev、ClickPrompt 等颇为相似。便思考着适合于 ArchGuard Co-mate 的架构设计原则是什么,写下了初步的三条原则。
而正好要在公司内分享 LLM + 架构,便又整理了适合于更通用的四个架构设计原则。以此作为一个参考的架构原则基础,方便于我后续设计其它的 LLM 为核心的软件架构。
TL;DR 版本:
用户意图导向设计。设计全新的人机交互体验,构建领域特定的 AI 角色,以更好地理解用户的意图。简单来说,寻找更适合于理解人类意图的的交互方式。
上下文感知。构建适合于获取业务上下文的应用架构,以生成更精准的 prompt,并探索高响应速度的工程化方式。即围绕高质量上下文的 Prompt 工程。
原子能力映射。分析 LLM 所擅长的原子能力,将其与应用所欠缺的能力进行结合,进行能力映射。让每个 AI 做自己擅长的事,诸如于利用好 AI 的推理能力。
语言 API。探索和寻找合适的新一代 API ,以便于 LLM 对服务能力的理解、调度与编排。诸如自然语言作为人机 API,DSL 作为 AI 与机器间的 API 等。
作为一个参考性的架构原则,它在不同的场景之下是需要经过一定裁剪的。以上仅是一些初始想法,还需要进一步的研究和实践来完善。
引子:ArchGuard Co-mate 的三个设计架构原则
Co-mate 是基于 ArchGuard 的分析能力所构建的,并且是以 DSL、规范文档为核心来构建的。所以,我们设计了三条初步的设计原则:
DSL 作为统一语言。通过使用领域特定语言(DSL)来增强人机交互,实现高效的人机、机机、机人交流。
原子化 LLM 以用于编排。利用语言模型(LLM)的原子能力,在 DSL 中构建复杂的行为。即我们在上一篇文章《规范即治理函数》提到基于 LLM 原子能力的动态函数生成。
精心设计的分层动态上下文。通过将上下文分为不同的层次,使用 LLM 有效地处理复杂性。
总体关系如下图所示:
在 Co-mate 中,我们采用了 Kotlin Type-safe Builder 封装了基础的函数功能,以让 LLM 能根据文档、规范来编排治理函数。
原规范如下所示:
示例 DSL 如下所示: