处理大型项目
Roo Code 可以用于任何规模的项目,但大型项目需要额外注意以有效管理上下文。以下是一些处理大型代码库的技巧:
理解上下文限制
Roo Code 使用具有有限“上下文窗口”的大语言模型(LLM)。这是模型一次能够处理的最大文本量(以 Token 为单位)。如果上下文过大,模型可能无法理解您的请求或生成准确的响应。
上下文窗口包括:
- 系统提示(Roo Code 的指令)。
- 对话历史。
- 您使用
@引用的任何文件内容。 - Roo Code 使用的任何命令或工具的输出。
管理上下文的策略
-
明确具体: 引用文件或代码时,使用具体的文件路径和函数名。避免使用“主文件”等模糊引用。
-
有效使用上下文引用: 使用
@/path/to/file.ts包含特定文件。使用@problems包含当前的错误和警告。使用@后跟提交哈希来引用特定的 Git 提交。 -
分解任务: 将大任务分解为更小、更易管理的子任务。这有助于保持上下文的聚焦。
-
总结要点: 如果需要引用大量代码,考虑在提示中总结相关部分,而不是包含整个代码。
-
优先处理最近历史: Roo Code 会自动截断对话历史中较早的消息,以保持在上下文窗口内。请注意这一点,必要时重新包含重要上下文。
-
使用提示缓存(如可用): 某些 API 提供商(如 Anthropic、OpenAI、OpenRouter 和 Requesty)支持“提示缓存”。这会缓存您的提示以供未来任务使用,有助于降低请求的成本和延迟。
示例:重构大型文件
假设您需要重构一个大型 TypeScript 文件(src/components/MyComponent.tsx)。以下是一种可能的方法:
-
初步概览:
@/src/components/MyComponent.tsx 列出此文件中的函数和类。 -
针对特定函数:
@/src/components/MyComponent.tsx 将 `processData` 函数重构为使用 `async/await` 而非 Promise。 -
迭代式更改: 进行小而渐进的更改,审查并批准每一步。
通过分解任务并提供具体上下文,即使在上下文窗口有限的情况下,您也能有效地处理大型文件。