buildSystemPrompt 使用 PromptBuilder 构建 System Prompt
(ctx context.Context)
| 546 | |
| 547 | // buildSystemPrompt 使用 PromptBuilder 构建 System Prompt |
| 548 | func (a *Agent) buildSystemPrompt(ctx context.Context) error { |
| 549 | // 创建 PromptBuilder(支持压缩) |
| 550 | var builder *PromptBuilder |
| 551 | if a.deps.PromptCompressor != nil { |
| 552 | builder = NewPromptBuilderWithCompression(a.deps.PromptCompressor) |
| 553 | } else { |
| 554 | builder = NewPromptBuilder() |
| 555 | } |
| 556 | |
| 557 | // 添加基础模块 |
| 558 | builder.AddModule(&BasePromptModule{}) |
| 559 | |
| 560 | // 添加能力说明模块(如果启用) |
| 561 | builder.AddModule(&CapabilitiesModule{}) |
| 562 | |
| 563 | // 添加专业客观性模块 |
| 564 | builder.AddModule(&ProfessionalObjectivityModule{}) |
| 565 | |
| 566 | // 添加简洁性模块 |
| 567 | builder.AddModule(&ConcisenessModule{}) |
| 568 | |
| 569 | // 添加避免过度工程化模块 |
| 570 | builder.AddModule(&AvoidOverEngineeringModule{}) |
| 571 | |
| 572 | // 添加规划指南模块 |
| 573 | builder.AddModule(&PlanningWithoutTimelinesModule{}) |
| 574 | |
| 575 | // 收集环境信息 |
| 576 | workDir := "." |
| 577 | if a.sandbox != nil { |
| 578 | workDir = a.sandbox.WorkDir() |
| 579 | } |
| 580 | envInfo := collectEnvironmentInfo(ctx, workDir, a.createdAt) |
| 581 | |
| 582 | // 添加环境信息模块 |
| 583 | builder.AddModule(&EnvironmentModule{}) |
| 584 | |
| 585 | // 添加沙箱信息模块 |
| 586 | builder.AddModule(&SandboxModule{}) |
| 587 | |
| 588 | // 添加工具手册模块 |
| 589 | var toolsManualConfig *types.ToolsManualConfig |
| 590 | if a.template.Runtime != nil && a.template.Runtime.ToolsManual != nil { |
| 591 | toolsManualConfig = a.template.Runtime.ToolsManual |
| 592 | } |
| 593 | builder.AddModule(&ToolsManualModule{Config: toolsManualConfig}) |
| 594 | |
| 595 | // 添加 Todo 提醒模块 |
| 596 | var todoConfig *types.TodoConfig |
| 597 | if a.template.Runtime != nil && a.template.Runtime.Todo != nil { |
| 598 | todoConfig = a.template.Runtime.Todo |
| 599 | } |
| 600 | builder.AddModule(&TodoReminderModule{Config: todoConfig}) |
| 601 | |
| 602 | // 添加代码引用模块 |
| 603 | builder.AddModule(&CodeReferenceModule{}) |
| 604 | |
| 605 | // 添加 Git 安全模块 |
no test coverage detected