MCPcopy Create free account
hub / github.com/echoVic/blade-code / buildMessagesWithContext

Method buildMessagesWithContext

src/agent/ContextComponent.ts:335–378  ·  view source on GitHub ↗

* 构建包含上下文的消息列表

(
    userMessage: string,
    systemPrompt?: string,
    filterOptions?: ContextFilter
  )

Source from the content-addressed store, hash-verified

333 * 构建包含上下文的消息列表
334 */
335 public async buildMessagesWithContext(
336 userMessage: string,
337 systemPrompt?: string,
338 filterOptions?: ContextFilter
339 ): Promise<ContextMessage[]> {
340 this.ensureReady();
341
342 const messages: ContextMessage[] = [];
343
344 // 添加系统提示词
345 if (systemPrompt) {
346 messages.push({
347 id: `sys_${Date.now()}`,
348 role: 'system',
349 content: systemPrompt,
350 timestamp: Date.now(),
351 });
352 }
353
354 // 获取并添加历史上下文
355 const { context, compressed } = await this.getFormattedContext(filterOptions);
356
357 if (compressed) {
358 // 使用压缩后的上下文
359 messages.push(...compressed.recentMessages);
360 } else {
361 // 使用完整的上下文
362 messages.push(...context.layers.conversation.messages);
363 }
364
365 // 添加当前用户消息
366 const currentMessage: ContextMessage = {
367 id: `user_${Date.now()}`,
368 role: 'user',
369 content: userMessage,
370 timestamp: Date.now(),
371 };
372 messages.push(currentMessage);
373
374 // 将用户消息添加到上下文中
375 await this.addUserMessage(userMessage);
376
377 return messages;
378 }
379
380 /**
381 * 检查上下文组件是否已准备就绪

Callers 2

chatWithContextMethod · 0.80
smartChatWithContextMethod · 0.80

Calls 3

ensureReadyMethod · 0.95
getFormattedContextMethod · 0.95
addUserMessageMethod · 0.95

Tested by

no test coverage detected