resolve

abstract suspend fun resolve(args: Args, cwd: Path): Tool.ResolveResult(source)

解析 LLM 的调用请求,在不执行任何实际操作的情况下对请求进行预处理,并在有必要时提前返回错误消息而不是等到用户批准之后。

在 LLM 生成工具调用请求,ToolArgs 反序列化成功后调用,此时未经过程序或用户审批,避免直接执行请求的操作。

可以在此时对请求进行业务校验,例如检查 String 是不是一个有效的 Path,startLine 有没有大于 endLine,并提前驳回工具调用。

避免进行影响外部环境操作,例如删除或修改文件,或其他影响系统或程序状态的动作,此时拿到的 Args 不会经过来自程序或用户的任何审查。

Return

解析后的结果,如果为 ResolveResult.Ready,将会由程序或用户进行下一步审批。