跳到主要内容

处理大型项目

Kilo Code 可以用于任何规模的项目,但处理大型项目时需要特别注意上下文管理。以下是一些处理大型代码库的技巧:

理解上下文限制

Kilo Code 使用的大语言模型 (LLMs) 有一个有限的 "上下文窗口"。这是模型一次可以处理的文本的最大量(以 token 为单位)。如果上下文过大,模型可能无法理解你的请求或生成准确的响应。

上下文窗口包括:

  • 系统提示(Kilo Code 的指令)。
  • 对话历史记录。
  • 你使用 @ 提到的任何文件内容。
  • Kilo Code 使用的任何命令或工具的输出。

管理上下文的策略

  1. 具体化: 当引用文件或代码时,使用具体的文件路径和函数名称。避免使用模糊的引用,如 "主文件"。

  2. 有效使用上下文提及: 使用 @/path/to/file.ts 来包含特定文件。使用 @problems 来包含当前错误和警告。使用 @ 后跟提交哈希来引用特定的 Git 提交。

  3. 分解任务: 将大型任务分解为更小、更易管理的子任务。这有助于保持上下文的聚焦。

  4. 总结: 如果需要引用大量代码,考虑在提示中总结相关部分,而不是包含整个代码。

  5. 优先处理最近的历史记录: Kilo Code 会自动截断对话历史记录中的旧消息,以保持在上下文窗口内。请注意这一点,并在需要时重新包含重要上下文。

  6. 使用提示缓存(如果可用): 一些 API 提供商如 Anthropic、OpenAI、OpenRouter 和 Requesty 支持 "提示缓存"。这将缓存你的提示以供未来任务使用,有助于降低请求的成本和延迟。

示例:重构大型文件

假设你需要重构一个大型 TypeScript 文件 (src/components/MyComponent.tsx)。以下是一个可能的方法:

  1. 初始概览:

    @/src/components/MyComponent.tsx 列出此文件中的函数和类。
  2. 定位特定函数:

    @/src/components/MyComponent.tsx 将 `processData` 函数重构为使用 `async/await` 而不是 Promises。
  3. 迭代更改: 进行小的、增量的更改,审查并批准每一步。

通过分解任务并提供具体的上下文,即使在上下文窗口有限的情况下,你也可以有效地处理大型文件。