在 Blades 框架中,Prompt 是与大型语言模型(LLM)交互的核心组件。它表示用户与助手之间交换的消息序列,支持多种类型的消息(系统消息、用户消息、助手消息)以及模板化功能,使开发者能够构建动态和上下文感知的 AI 应用程序。
Blades 支持多种消息类型,每种都有特定的角色:
// Message represents a single message in a conversation.type Message struct { ID string `json:"id"` Role Role `json:"role"` Parts []Part `json:"parts"` Author string `json:"author"` InvocationID string `json:"invocationId,omitempty"` Status Status `json:"status"` FinishReason string `json:"finishReason,omitempty"` TokenUsage TokenUsage `json:"tokenUsage,omitempty"` Metadata map[string]any `json:"metadata,omitempty"`}// TextPart is plain text content.type TextPart struct { Text string `json:"text"`}最基本的 Prompt 创建方式是直接指定消息内容:
input := blades.UserMessage("What is the capital of France?")可以通过 Agent 进行定义系统指令信息:
model := openai.NewModel("gpt-5", openai.Config{ APIKey: os.Getenv("OPENAI_API_KEY"),})agent, err := blades.NewAgent( "Basic Agent", blades.WithModel(model), blades.WithInstruction("You are a helpful assistant that provides detailed and accurate information."),)model := openai.NewModel("gpt-5", openai.Config{ APIKey: os.Getenv("OPENAI_API_KEY"),})agent, err := blades.NewAgent( "Instructions Agent", blades.WithModel(model), blades.WithInstruction("Respond as a {{.style}}."),)if err != nil { log.Fatal(err)}// Create a new session with state variablessession := blades.NewSession(map[string]any{ "style": "robot",})input := blades.UserMessage("Tell me a joke.")runner := blades.NewRunner(agent, blades.WithSession(session))message, err := runner.Run(context.Background(), input)if err != nil { panic(err)}log.Println(session.State())log.Println(message.Text())