1. ChatPromptTemplate在Agent开发中的核心价值
在构建对话型Agent时,Prompt工程的质量直接决定了智能体的交互能力和任务完成度。ChatPromptTemplate作为LangChain框架中的核心组件,其设计初衷是解决传统硬编码提示词的三大痛点:
- 动态内容注入:支持通过变量占位符实现对话上下文的灵活嵌入,比如用户输入、历史对话、工具调用结果等
- 多角色对话建模:通过SystemMessage、HumanMessage等消息类型区分不同对话角色,符合现代对话模型(如GPT)的输入规范
- 模板组合复用:支持通过管道操作符(|)实现模板的模块化组合,避免重复编写相似提示结构
实际开发中,我们常用以下典型结构构建对话模板:
python复制from langchain.prompts import ChatPromptTemplate, HumanMessagePromptTemplate
template = ChatPromptTemplate.from_messages([
("system", "你是一个精通{domain}的助手,当前版本{v}"),
("human", "{user_input}"),
("ai", "{last_response}"),
("human", "{follow_up}")
])
关键技巧:在SystemMessage中明确角色定义时,建议采用"技能+约束+输出格式"的三段式结构。例如:"作为金融分析师(技能),严禁提供具体投资建议(约束),请用Markdown表格对比分析(格式)"
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 多轮对话模板的实战配置
2.1 基础模板构建
对于需要记忆上下文的对话场景,推荐使用消息历史窗口模式。以下是支持5轮对话记忆的模板实现:
python复制from langchain_core.prompts import MessagesPlaceholder
dynamic_template = ChatPromptTemplate.from_messages([
SystemMessagePromptTemplate.from_template(
"你的
