feat(rah-light): remove delegateToWiseRAH orchestration tool
- Deleted src/tools/orchestration/delegateToWiseRAH.ts - Removed delegateToWiseRAH from registry.ts and groups.ts - Deleted tests/evals/scenarios/delegate-wise.ts and delegate-mini.ts - Updated tests/evals/scenarios/index.ts to remove deleted test imports Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
fa96c238c2
commit
844a9b57ab
@@ -45,7 +45,6 @@ export const TOOL_GROUP_ASSIGNMENTS: Record<string, string> = {
|
|||||||
// Orchestration: Workflows and reasoning (orchestrator only)
|
// Orchestration: Workflows and reasoning (orchestrator only)
|
||||||
webSearch: 'orchestration',
|
webSearch: 'orchestration',
|
||||||
think: 'orchestration',
|
think: 'orchestration',
|
||||||
delegateToWiseRAH: 'orchestration',
|
|
||||||
executeWorkflow: 'orchestration',
|
executeWorkflow: 'orchestration',
|
||||||
listWorkflows: 'orchestration',
|
listWorkflows: 'orchestration',
|
||||||
getWorkflow: 'orchestration',
|
getWorkflow: 'orchestration',
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import { queryDimensionNodesTool } from '../database/queryDimensionNodes';
|
|||||||
import { searchContentEmbeddingsTool } from '../other/searchContentEmbeddings';
|
import { searchContentEmbeddingsTool } from '../other/searchContentEmbeddings';
|
||||||
import { webSearchTool } from '../other/webSearch';
|
import { webSearchTool } from '../other/webSearch';
|
||||||
import { thinkTool } from '../other/think';
|
import { thinkTool } from '../other/think';
|
||||||
import { delegateToWiseRAHTool } from '../orchestration/delegateToWiseRAH';
|
|
||||||
import { executeWorkflowTool } from '../orchestration/executeWorkflow';
|
import { executeWorkflowTool } from '../orchestration/executeWorkflow';
|
||||||
import { listWorkflowsTool } from '../orchestration/listWorkflows';
|
import { listWorkflowsTool } from '../orchestration/listWorkflows';
|
||||||
import { getWorkflowTool } from '../orchestration/getWorkflow';
|
import { getWorkflowTool } from '../orchestration/getWorkflow';
|
||||||
@@ -42,7 +41,6 @@ const CORE_TOOLS: Record<string, any> = {
|
|||||||
const ORCHESTRATION_TOOLS: Record<string, any> = {
|
const ORCHESTRATION_TOOLS: Record<string, any> = {
|
||||||
webSearch: webSearchTool,
|
webSearch: webSearchTool,
|
||||||
think: thinkTool,
|
think: thinkTool,
|
||||||
delegateToWiseRAH: delegateToWiseRAHTool,
|
|
||||||
executeWorkflow: executeWorkflowTool,
|
executeWorkflow: executeWorkflowTool,
|
||||||
listWorkflows: listWorkflowsTool,
|
listWorkflows: listWorkflowsTool,
|
||||||
getWorkflow: getWorkflowTool,
|
getWorkflow: getWorkflowTool,
|
||||||
@@ -98,7 +96,6 @@ const ORCHESTRATOR_TOOL_NAMES = Array.from(new Set([
|
|||||||
const EXECUTOR_TOOL_NAMES = [
|
const EXECUTOR_TOOL_NAMES = [
|
||||||
...Object.keys(CORE_TOOLS),
|
...Object.keys(CORE_TOOLS),
|
||||||
...Object.keys(ORCHESTRATION_TOOLS).filter(name =>
|
...Object.keys(ORCHESTRATION_TOOLS).filter(name =>
|
||||||
name !== 'delegateToWiseRAH' &&
|
|
||||||
name !== 'executeWorkflow'
|
name !== 'executeWorkflow'
|
||||||
),
|
),
|
||||||
...Object.keys(EXECUTION_TOOLS),
|
...Object.keys(EXECUTION_TOOLS),
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
import { tool } from 'ai';
|
|
||||||
import { z } from 'zod';
|
|
||||||
import { WorkflowExecutor } from '@/services/agents/workflowExecutor';
|
|
||||||
import { RequestContext } from '@/services/context/requestContext';
|
|
||||||
|
|
||||||
export const delegateToWiseRAHTool = tool({
|
|
||||||
description: 'Delegate complex workflows to workflow executor',
|
|
||||||
inputSchema: z.object({
|
|
||||||
task: z.string().describe('Complex workflow description: what needs to be planned and executed'),
|
|
||||||
context: z.array(z.string()).max(8).default([]).describe('Optional context: node IDs, URLs, or key information the planner needs'),
|
|
||||||
expectedOutcome: z.string().optional().describe('Optional: what final result or format you expect in the summary'),
|
|
||||||
workflowKey: z.string().optional().describe('Optional: workflow key if invoked via executeWorkflow'),
|
|
||||||
workflowNodeId: z.number().optional().describe('Optional: target node ID for workflow'),
|
|
||||||
}),
|
|
||||||
execute: async ({ task, context = [], expectedOutcome, workflowKey, workflowNodeId }) => {
|
|
||||||
const requestContext = RequestContext.get();
|
|
||||||
console.log('[delegateToWiseRAH] Current traceId:', requestContext.traceId);
|
|
||||||
|
|
||||||
const sessionId = `workflow_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
||||||
|
|
||||||
const execution = await WorkflowExecutor.execute({
|
|
||||||
sessionId,
|
|
||||||
task,
|
|
||||||
context,
|
|
||||||
expectedOutcome,
|
|
||||||
traceId: requestContext.traceId,
|
|
||||||
parentChatId: requestContext.parentChatId,
|
|
||||||
workflowKey,
|
|
||||||
workflowNodeId,
|
|
||||||
});
|
|
||||||
|
|
||||||
// Return a simple string that Claude can directly use in conversation
|
|
||||||
const summary = execution?.summary || 'Workflow completed but no summary returned.';
|
|
||||||
return `Workflow (session ${sessionId.split('_').pop()}) completed:\n\n${summary}`;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
import { Scenario } from '../types';
|
|
||||||
|
|
||||||
export const scenario: Scenario = {
|
|
||||||
id: 'delegate-mini',
|
|
||||||
name: 'Delegate to Mini RAH',
|
|
||||||
description: 'Ask the system to delegate a short task to mini helper.',
|
|
||||||
tools: ['delegateToMiniRAH'],
|
|
||||||
input: {
|
|
||||||
message: 'Delegate to mini RAH: summarize my notes on plaintext productivity in 3 bullets.',
|
|
||||||
mode: 'hard',
|
|
||||||
},
|
|
||||||
expect: {
|
|
||||||
toolsCalledSoft: ['delegateToMiniRAH'],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
import { Scenario } from '../types';
|
|
||||||
|
|
||||||
export const scenario: Scenario = {
|
|
||||||
id: 'delegate-wise',
|
|
||||||
name: 'Delegate to Wise RAH',
|
|
||||||
description: 'Ask the system to delegate a research comparison task.',
|
|
||||||
tools: ['delegateToWiseRAH'],
|
|
||||||
input: {
|
|
||||||
message: 'Delegate to wise RAH: compare SQLite vs markdown storage for PKM in 5 bullets.',
|
|
||||||
mode: 'hard',
|
|
||||||
},
|
|
||||||
expect: {
|
|
||||||
toolsCalledSoft: ['delegateToWiseRAH'],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -8,8 +8,6 @@ import { scenario as createEdge } from './create-edge';
|
|||||||
import { scenario as queryDimensions } from './query-dimensions';
|
import { scenario as queryDimensions } from './query-dimensions';
|
||||||
import { scenario as getDimension } from './get-dimension';
|
import { scenario as getDimension } from './get-dimension';
|
||||||
import { scenario as dimensionLifecycle } from './dimension-lifecycle';
|
import { scenario as dimensionLifecycle } from './dimension-lifecycle';
|
||||||
import { scenario as delegateMini } from './delegate-mini';
|
|
||||||
import { scenario as delegateWise } from './delegate-wise';
|
|
||||||
import { scenario as youtubeExtract } from './youtube-extract';
|
import { scenario as youtubeExtract } from './youtube-extract';
|
||||||
import { scenario as websiteExtract } from './website-extract';
|
import { scenario as websiteExtract } from './website-extract';
|
||||||
import { scenario as paperExtract } from './paper-extract';
|
import { scenario as paperExtract } from './paper-extract';
|
||||||
@@ -25,8 +23,6 @@ export const scenarios = [
|
|||||||
dimensionLifecycle,
|
dimensionLifecycle,
|
||||||
hardModeQuery,
|
hardModeQuery,
|
||||||
workflowIntegrate,
|
workflowIntegrate,
|
||||||
delegateMini,
|
|
||||||
delegateWise,
|
|
||||||
youtubeExtract,
|
youtubeExtract,
|
||||||
websiteExtract,
|
websiteExtract,
|
||||||
paperExtract,
|
paperExtract,
|
||||||
|
|||||||
Reference in New Issue
Block a user