自定义提示词

why

1.针对LLM进行优化 2.更改语言 3.针对复杂领域进行专业化 4.调整语气和风格 5.支持超个性化用例

了解CrewAI的提示词系统

  • 智能体模板 (Agent templates) – 控制每个智能体对其指定角色的处理方式。
  • 提示词片段 (Prompt slices) – 控制任务、工具使用和输出结构等专门行为。
  • 错误处理 (Error handling) – 指导智能体如何应对失败、异常或超时。
  • 工具专用提示词 (Tool-specific prompts) – 定义如何调用或使用工具的详细说明。

了解默认系统指令

当通过role,goal,backstory定义agent时,自动注入的一些指令

CrewAI自动注入的内容

针对无工具的智能体

1
"I MUST use these formats, my job depends on it!"

针对有工具的智能体

1
2
3
4
5
"IMPORTANT: Use the following format in your response:

Thought: you should always think about what to do
Action: the action to take, only one name of [tool_names]
Action Input: the input to the action, just a simple JSON object...

针对结构化输出(JSON/Pydantic)

1
2
"Ensure your final answer contains only the content in the following format: {output_format}
Ensure the final output does not include any code block markers like ```json or ```python."

查看完整提示词

覆盖默认指令

选项一(推荐):自定义模板 选项二:自定义提示词文件 创建一个custom_prompt.json文件 选项三:为o1模型禁用系统提示词

使用观测性工具进行调试

生产环境最佳实践

  1. 始终检查生成的提示词,然后再部署到生产环境。
  2. 使用自定义模板,当您需要全面控制提示词内容时。
  3. 集成可观测性工具以进行持续的提示词监控(参阅 可观测性文档)。
  4. 使用不同的 LLM 进行测试,因为默认指令在不同模型间的表现可能不同。
  5. 记录您的提示词自定义内容,以保持团队透明度。

管理提示词文件的最佳实践

  1. 保持文件独立 – 将自定义提示词存储在主代码库之外的专用 JSON 文件中。
  2. 版本控制 – 在代码仓库中跟踪更改,确保提示词的调整有清晰的文档记录。
  3. 按模型或语言组织 – 使用如 prompts_llama.json 或 prompts_es.json 的命名方案,以便快速识别专用配置。
  4. 记录更改 – 提供注释或维护一个 README 文件,详细说明自定义的目的和范围。
  5. 最小化改动 – 仅覆盖确实需要调整的特定片段,保持其他部分的默认功能完好无损。