feat: improve direct model workspace tools
Direct models now use bundled ripgrep for workspace discovery, read files through resumable pages, and edit multiple files with apply_patch. Ask can search and read while Execute retains write access, and fixed total input limits no longer constrain these tools. Release note: 直连模型现可使用随包 ripgrep 搜索项目、分页读取任意大小的文本,并通过多文件补丁修改代码;设置中的相关能力统一显示为工作区文件和开发工具。
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { createHash, randomBytes } from 'node:crypto'
|
||||
import { dirname } from 'node:path'
|
||||
import type {
|
||||
ApprovalDecision,
|
||||
AgentRuntimeStatus,
|
||||
@@ -269,6 +270,7 @@ export type ModelRuntimeOptions = {
|
||||
maximumOutputTokens?: number
|
||||
directModelSubagentScheduler?: SubagentScheduler
|
||||
launchEnvironmentProvider?: LaunchEnvironmentProvider
|
||||
ripgrepExecutablePath?: string
|
||||
}
|
||||
|
||||
function getErrorMessage(value: unknown): string | undefined {
|
||||
@@ -1654,8 +1656,14 @@ export class ModelAgentRuntime implements AgentRuntime {
|
||||
options.knowledgeGateway,
|
||||
options.webSearchEnabled,
|
||||
{
|
||||
processService: new LocalDirectModelProcessService(),
|
||||
subagentService: directModelSubagentService
|
||||
processService: new LocalDirectModelProcessService({
|
||||
environment: options.launchEnvironmentProvider?.(),
|
||||
...(options.ripgrepExecutablePath
|
||||
? { toolBinDirectory: dirname(options.ripgrepExecutablePath) }
|
||||
: {})
|
||||
}),
|
||||
subagentService: directModelSubagentService,
|
||||
ripgrepExecutablePath: options.ripgrepExecutablePath
|
||||
},
|
||||
options.launchEnvironmentProvider
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user