第八章

Prompt 构建

🎧 语音播放

理解 Hermes 如何组装给 LLM 的"指令"

🎯 本章目标

  • 理解 Prompt 的组成结构
  • 掌握系统提示词的构建方法
  • 理解工具描述的注入方式

📚 前置知识

  • 第五章的 Agent 循环

💡 学完收获

  • 能够优化 Agent 的行为
  • 理解 Prompt 工程的价值

8.1 什么是 Prompt?

Prompt 就是给 LLM 的"输入"。Hermes 构建的 Prompt 包含:

Prompt 构建流程

flowchart LR A["🤖 System Prompt"] --> D[Messages] B["🛠️ Tool Definitions"] --> D C["👤 用户输入"] --> D D --> E["📡 LLM API"] style A fill:#ede9fe,stroke:#7c3aed style B fill:#d1fae5,stroke:#059669 style C fill:#dbeafe,stroke:#2563eb

8.2 Prompt 组成

🤖 System
角色设定 · 行为规则
👤 User
用户输入的消息
🛠️ Tools
工具说明和参数

8.3 系统提示词构建

系统提示词定义了 Agent 的"人格"和能力边界:

agent/prompt_builder.py
system_parts = [
    BASE_PROMPT,           # 基础角色设定
    AVAILABLE_TOOLS,       # 可用工具列表
    TOOL_DESCRIPTIONS,     # 工具详细说明
    MEMORY_SUMMARY,         # 记忆摘要(如果启用)
    SKILLS_CONTENT,         # 技能内容
]
💡 System Prompt 的重要性

System Prompt 决定了 Agent 的"性格"和"能力"。一个好的 System Prompt 可以让同一个模型表现出完全不同的行为。

8.4 工具描述注入

工具描述是动态注入到 System Prompt 中的:

工具描述格式
## Available Tools

You have access to the following tools:

### web_search
Search the web for information.
Args: query (string)

### read_file
Read contents from a file.
Args: path (string)

8.5 记忆摘要

长对话时,记忆摘要让 LLM 快速了解背景:

Memory Summary 示例
用户正在开发一个 Python 项目,使用 pip 和 virtualenv。 之前的对话讨论了包管理和虚拟环境配置。

📚 本章总结

本章重点:

  • Prompt = System + Tools + User Input
  • System Prompt 定义 Agent 人格
  • 工具描述动态注入

一句话记忆点: Prompt 就是给 AI 的"任务卡"——写得越清楚,执行越准确

延伸思考

  1. 如何让同一个 Agent 既能做翻译又能写代码?
  2. System Prompt 太长会有什么影响?