RooLite Tool System

1. 核心架构:两层工具体系#

RooLite 的工具系统分为两个层次,这种设计旨在提高效率和安全性:

  1. 基础工具 (Basic Tools):
  2. MCP 工具 (Model Context Protocol Tools):

2. 强制性的初始化和访问流程#

这是 Tool System 最重要的规则,确保了操作的规范性和安全性:

  • 强制第一步: 在任何会话(Session)开始时,Roo 必须首先执行 read_file 来读取 .tool_modules/tools_guide
  • 目的: 这个强制性步骤确保了 Roo 在开始任何工作前,都明确知晓当前可用的基础工具及其使用方法。
  • 按需加载: MCP 工具的指南 (mcp_tools_guide只有在基础工具无法满足需求时才会被加载。这种“懒加载”机制节省了资源和上下文(tokens)。

3. 标准化的 XML 工具接口#

所有工具的调用都必须遵循一个严格、统一的 XML 格式,这带来了极大的好处:

  • 格式:
  • MCP 工具的特殊格式: 调用 MCP 工具时,需要额外指定 server_name 和 tool_name
  • 优点:

4. 严格的访问控制和安全机制#

系统通过多重机制来保证安全和稳定:

  • 核心规则 (CORE_RULES): 在系统提示(System Prompt)中定义了一系列不可违背的规则,如:
  • 受保护的目录:
  • 一次一工具: 每次交互只能调用一个工具,并且需要等待用户确认,这提供了强大的控制和监督能力。

5. 智能的工具选择策略#

系统提示中内置了一些最佳实践,指导 Roo 如何更高效地使用工具:

  • 发现优先于读取: 先用 list_files 发现文件,再用 read_file 读取具体文件。
  • 差异优于覆盖: 对于已存在的文件,优先使用 apply_diff 进行增量修改,而不是用 write_to_file 完全覆盖。
  • 插入优于重写: 当向文件中添加代码时,优先使用 insert_content

6. 与操作模式的集成#

  • 工具是基础: Tool System 是所有操作模式(ArchitectCodeDevOps 等)实现其专业能力的底层基础
  • 模式决定工具: 每个模式根据其自身的目标和限制,有权访问和使用不同的工具子集。例如:

总之,Tool System 是 RooLite 的引擎和骨架。它通过分层设计、强制流程、标准化接口和严格的访问控制,为上层的各种专业模式提供了一个既强大又安全可靠的能力平台。