
回复
“ 为了引导提升大模型输出质量,因此输入大模型的提示词需要有特定的模板。”
在前面的文章中说过大模型的应用开发,本质上就是对提示词对封装,那么在一个大模型应用中,提示词应该有那几个模块呢?
下面,我们以智能体开发为例,阐述一下提示词应该有那几个模块组成。
作用:
a.智能体身份(如“你是一个智能项目工单生成智能体”)
b.行为原则(准确、简洁、先澄清再回答)
c.输出风格(是否 JSON / Markdown / 严格格式)
d.禁止事项(不要编造、不要提供法律建议等)
作用:
a.工具名称
b.工具用途描述(对模型而非用户)
c.参数名称、类型、含义(JSON Schema)
在 LangGraph / LangChain智能体中,每次推理都需要注入,以便大模型调用合适工具。
作用:
在 LangChain / LangGraph 中使用:
MessagesPlaceholder(variable_name="chat_history")
来动态注入完整或摘要化的对话历史。
作用:
在提示词模板中通常占位为:
{user_input}
或使用:
HumanMessagePromptTemplate.from_template(human_prompt)
作用:
a.严格要求输出 JSON / Markdown
b.限制字段名、字段顺序
c.示例输出
在生成结构化数据、SQL、工单时非常关键,常结合 StructuredOutputParser
或 ResponseSchema
使用。
✅ 汇总结构(记忆示范)
【智能体提示词典型结构】
1️⃣ System Prompt
- 定义角色、风格、目标
- 限制行为
2️⃣ Tools / Functions Schema
- 工具名称、描述
- JSON Schema 参数定义
3️⃣ Chat History
- 注入多轮对话历史或摘要
4️⃣ User Input
- 用户本轮输入
5️⃣ Output Format Constraints
- 明确格式要求
- 示例结果
from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder
system_prompt = "你是一个项目智能工单生成智能体..."
human_prompt = "{user_input}"
prompt = ChatPromptTemplate.from_messages([
SystemMessagePromptTemplate.from_template(system_prompt),
MessagesPlaceholder(variable_name="chat_history"),
HumanMessagePromptTemplate.from_template(human_prompt)
])
并通过:✅ StructuredOutputParser
确保输出结构✅ 工具描述在 Agent 初始化时注入
实现完整提示词编排,让智能体稳定且可解析。
不同场景可裁剪:
本文转载自AI探索时代 作者:DFires