v0.1.2: 全项目代码审查修复 + 子代理编排器 + 上下文压缩 + 并行工具执行
后端修复: Ollama adapter 移除死代码/修复超时硬编码/iteration硬编码/pullModel无超时/流异常断开补发DONE; SSE解析器支持非字符串arguments; Sandbox fail-closed安全加固; IPC移除未使用变量 新增功能: TaskOrchestrator子任务编排器; DelegateTaskTool委派工具; Agent Loop并行工具执行; 上下文自动压缩; 记忆检索注入System Prompt 前端修复: useAgentStream text_delta thought累积bug; 工具调用状态正确流转; 修复重复stateChange事件; TraceStep.thought正确填充
This commit is contained in:
+25
-8
@@ -41,13 +41,15 @@ import {
|
||||
WebSearchTool, WebFetchTool,
|
||||
MemoryStoreTool, MemorySearchTool,
|
||||
RunCommandTool,
|
||||
browserTools, cleanupBrowser,
|
||||
WebBrowserTool, cleanupBrowser,
|
||||
DelegateTaskTool,
|
||||
} from './harness/tools/built-in';
|
||||
import { AuditLogHook, MemoryTriggerHook, PermissionCheckHook, RateLimitHook } from './harness/hooks';
|
||||
import { PolicyEngine } from './harness/sandbox/permissions';
|
||||
import { SandboxManager } from './harness/sandbox/sandbox';
|
||||
import { PromptInjectionDefender } from './harness/security/prompt-injection-defense';
|
||||
import { OutputValidator } from './harness/verification/output-validator';
|
||||
import { TaskOrchestrator } from './harness/orchestration/orchestrator';
|
||||
import { UpdateService } from './services/update.service';
|
||||
|
||||
// ===== 步骤 1: 初始化日志系统(SYS 层)=====
|
||||
@@ -148,22 +150,24 @@ async function initialize(): Promise<void> {
|
||||
// ===== 步骤 5: 工作空间文件 + System Prompt =====
|
||||
const contextBuilder = new ContextBuilder();
|
||||
|
||||
// ===== 步骤 6: 注册 9 个内置工具 =====
|
||||
// ===== 步骤 6: 注册内置工具 =====
|
||||
const toolRegistry = new ToolRegistry();
|
||||
toolRegistry.registerBuiltin(new ReadFileTool());
|
||||
toolRegistry.registerBuiltin(new WriteFileTool());
|
||||
toolRegistry.registerBuiltin(new ListDirectoryTool());
|
||||
toolRegistry.registerBuiltin(new SearchFilesTool());
|
||||
toolRegistry.registerBuiltin(new WebSearchTool(configService));
|
||||
toolRegistry.registerBuiltin(new WebFetchTool());
|
||||
|
||||
// WebFetchTool 先于 WebSearchTool 构造,注入为依赖
|
||||
const webFetchTool = new WebFetchTool();
|
||||
toolRegistry.registerBuiltin(webFetchTool);
|
||||
toolRegistry.registerBuiltin(new WebSearchTool(configService, webFetchTool));
|
||||
|
||||
toolRegistry.registerBuiltin(new MemoryStoreTool(memoryManager));
|
||||
toolRegistry.registerBuiltin(new MemorySearchTool(memoryManager));
|
||||
toolRegistry.registerBuiltin(new RunCommandTool());
|
||||
|
||||
// 注册 9 个 Browser 浏览器工具
|
||||
for (const tool of browserTools) {
|
||||
toolRegistry.registerBuiltin(tool);
|
||||
}
|
||||
// 注册 Web Browser 统一浏览器工具
|
||||
toolRegistry.registerBuiltin(new WebBrowserTool());
|
||||
log.info(`Registered ${toolRegistry.size} built-in tools`);
|
||||
|
||||
// ===== MCP Manager =====
|
||||
@@ -211,6 +215,19 @@ async function initialize(): Promise<void> {
|
||||
agentLoop.setTools(toolRegistry.listTools());
|
||||
agentLoop.setWorkspacePath(workspaceInfo.path);
|
||||
|
||||
// ===== Task Orchestrator(子任务委派)=====
|
||||
const orchestrator = new TaskOrchestrator(
|
||||
agentLoop, toolRegistry, preToolHooks, postToolHooks,
|
||||
{
|
||||
thinkingEnabled: agentThinkingEnabled ?? true,
|
||||
thinkingEffort: agentThinkingEffort ?? 'high',
|
||||
contextLength: ollamaNumCtx ?? undefined,
|
||||
},
|
||||
);
|
||||
toolRegistry.registerBuiltin(new DelegateTaskTool(orchestrator));
|
||||
// 重新设置工具列表,包含新注册的 delegate_task
|
||||
agentLoop.setTools(toolRegistry.listTools());
|
||||
|
||||
// ===== 热重载 Adapter 回调(设置变更时触发)=====
|
||||
const reloadAdapter = () => {
|
||||
const newAdapter = createAdapter();
|
||||
|
||||
Reference in New Issue
Block a user