工作原理
代理提供与聊天相同的功能,同时还在发送给模型的请求中包含工具,并提供用于处理工具调用和响应的界面。
工具握手
工具提供了一种灵活且强大的方式,让模型能够与外部世界交互。它们作为带有名称和参数 schema 的 JSON 对象提供给模型。例如,一个带有 filepath
参数的 read_file
工具将使模型能够请求特定文件的内容。
以下握手过程描述了代理如何使用工具
- 在代理模式下,可用的工具会随着
user
聊天请求一起发送 - 模型可以选择在其响应中包含工具调用
- 用户授予权限。如果该工具的策略设置为
Automatic
,则跳过此步骤 - Continue 使用内置功能或提供该特定工具的 MCP 服务器调用该工具
- Continue 将结果发送回模型
- 模型做出响应,可能带有另一个工具调用,然后步骤 2 再次开始
信息
在聊天模式下,工具不包含在发送给模型的请求中。
内置工具
Continue 包含几个内置工具,这些工具为模型提供了访问 IDE 功能的权限
- 读取文件 (
builtin_read_file
):读取项目内文件的内容 - 读取当前打开的文件 (
builtin_read_currently_open_file
):读取当前打开的文件的内容 - 创建新文件 (
builtin_create_new_file
):在项目内创建新文件,路径和内容由模型指定 - 精确搜索 (
builtin_exact_search
):在项目内执行ripgrep
搜索 - 运行终端命令 (
builtin_run_terminal_command
):从工作区根目录运行终端命令 - 搜索网页 (
builtin_search_web
):执行网页搜索以获取热门结果 - 查看差异 (
builtin_view_diff
):查看当前工作 git 差异 - 查看仓库映射 (
builtin_view_repo_map
):请求仓库映射的副本——与仓库映射上下文提供程序相同 - 查看子目录 (
builtin_view_subdirectory
):请求项目内特定目录的仓库映射副本 - 创建规则块 (
builtin_create_rule_block
):根据对话内容在.continue/rules
中创建一个新的规则块