# Guidance：为大型语言模型打造的结构化控制语言

> Guidance 是一个用于控制大型语言模型的专用编程语言，通过声明式语法实现精确的输出格式控制、多模态交互和流式处理，解决了传统提示工程难以约束模型输出的痛点。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-06T16:15:32.000Z
- 最近活动: 2026-05-06T16:21:01.829Z
- 热度: 152.9
- 关键词: Guidance, LLM控制, 结构化生成, 微软研究院, 提示工程, 多模态, 流式处理, JSON生成, Agent系统
- 页面链接: https://www.zingnex.cn/forum/thread/guidance
- Canonical: https://www.zingnex.cn/forum/thread/guidance
- Markdown 来源: ingested_event

---

# Guidance：为大型语言模型打造的结构化控制语言\n\n## 背景：为什么需要 Guidance？\n\n随着大型语言模型（LLM）能力的不断提升，开发者们越来越依赖这些模型来完成复杂的任务。然而，传统的提示工程（Prompt Engineering）存在一个根本性的痛点：模型输出往往是自由形式的文本，难以精确控制其结构和格式。这在需要可靠、可解析输出的生产环境中尤为突出。\n\n想象一下，你希望模型生成一个结构化的 JSON 对象，或者按照特定的格式输出多步骤推理过程。传统的方法是通过精心设计的提示语来"引导"模型，但这种方法既脆弱又不可预测。模型可能会偏离预期的格式，或者在输出中包含额外的解释性文字，导致后续的解析和处理变得异常困难。\n\nGuidance 正是为了解决这一问题而诞生的。它提供了一种声明式的语言，让开发者能够精确地控制语言模型的生成过程，从而获得结构化、可预测的输出。\n\n## Guidance 是什么？\n\nGuidance 是由微软研究院开发的一种专门用于控制大型语言模型的编程语言。它不仅仅是一个提示模板库，而是一个完整的语言系统，允许开发者以编程的方式定义模型应该生成的内容的结构和约束。\n\n与传统的提示工程不同，Guidance 将生成过程视为一种受控的、可组合的流程。开发者可以定义变量、条件分支、循环和函数调用，就像使用传统的编程语言一样。但与此同时，Guidance 又充分利用了语言模型的生成能力，在需要创造性文本生成的环节让模型自由发挥，在需要精确控制的环节施加严格的约束。\n\n## 核心特性与技术机制\n\n### 1. 结构化生成控制\n\nGuidance 最核心的特性是其对结构化生成的支持。开发者可以使用简单的语法来定义输出必须遵循的格式。例如，可以强制模型生成有效的 JSON、XML 或任何自定义的文本格式。这种控制不是通过提示语"建议"模型这样做，而是通过底层的生成机制"强制"模型遵循指定的结构。\n\n这意味着，当模型生成到某个关键位置时，Guidance 可以限制模型只能选择特定的标记（token），而不是让模型从整个词汇表中自由选择。这种细粒度的控制大大提高了输出的可靠性。\n\n### 2. 多模态交互支持\n\n现代的大型语言模型越来越多地具备多模态能力，能够理解和生成图像、音频等内容。Guidance 原生支持多模态交互，允许开发者在同一个程序中混合处理文本、图像和其他媒体类型。\n\n例如，开发者可以先用图像作为输入让模型进行描述，然后基于描述生成结构化的数据，最后再将这些数据格式化为特定的输出。这种多模态的无缝集成使得构建复杂的多模态应用变得更加容易。\n\n### 3. 流式处理与实时交互\n\nGuidance 支持流式处理，这意味着模型可以一边生成内容，应用程序一边处理和显示。这对于需要实时响应的应用场景（如聊天机器人、交互式助手）至关重要。\n\n更重要的是，Guidance 允许在生成过程中进行干预。开发者可以设置检查点，在模型生成到特定位置时暂停，执行一些自定义逻辑，然后再继续生成。这种能力为构建高度交互式的应用打开了新的可能性。\n\n### 4. 与主流模型的集成\n\nGuidance 设计上注重与主流语言模型的兼容性。它支持 OpenAI 的 GPT 系列、Anthropic 的 Claude、以及开源的 Llama、Mistral 等模型。这种广泛的兼容性意味着开发者可以在不更换底层模型的情况下，享受 Guidance 带来的控制能力。\n\n## 实际应用场景\n\n### 结构化数据提取\n\n在需要从非结构化文本中提取结构化信息的场景中，Guidance 表现出色。例如，从简历中提取工作经历、教育背景等信息，并以统一的 JSON 格式输出。传统的做法是让模型生成 JSON，然后解析并验证；而使用 Guidance，可以在生成阶段就确保输出的有效性。\n\n### 多步骤推理与工具调用\n\n对于需要多步骤推理或调用外部工具（如搜索引擎、计算器、数据库）的复杂任务，Guidance 可以精确控制每一步的输出格式。这使得构建可靠的 Agent 系统成为可能，模型可以按照预定的流程执行一系列操作，而不是随意地生成响应。\n\n### 对话系统与角色扮演\n\n在构建对话系统时，Guidance 可以确保模型始终保持在特定的角色和风格中。通过定义对话的结构和约束，可以避免模型偏离主题或产生不适当的回复。\n\n## 与其他技术的对比\n\n与简单的提示模板相比，Guidance 提供了真正的程序性控制。与 LangChain 等框架相比，Guidance 更专注于生成控制这一特定问题，而不是试图覆盖 LLM 应用开发的所有方面。与 JSON Schema 等验证工具相比，Guidance 在生成阶段就施加约束，而不是事后验证，这大大提高了效率。\n\n## 总结与展望\n\nGuidance 代表了控制大型语言模型生成过程的一种新范式。它将传统的提示工程提升到了程序性控制的层次，为构建可靠、可预测的 LLM 应用提供了强大的工具。随着语言模型能力的不断增强，对生成过程的精确控制将变得越来越重要，Guidance 这类工具的价值也将愈发凸显。\n\n对于希望将 LLM 应用于生产环境的开发者来说，Guidance 值得深入了解和尝试。它可能是解决"提示工程脆弱性"这一长期困扰的关键所在。
