mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-12 15:10:59 -07:00
Prompt changes.
This commit is contained in:
@@ -52,8 +52,18 @@ describe('subagent eval test cases', () => {
|
||||
});
|
||||
|
||||
evalTest('ALWAYS_PASSES', {
|
||||
name: 'should fix linter errors in multiple projects',
|
||||
name: 'should fix linter errors in multiple projects using implicit parallelism',
|
||||
prompt: 'Fix all linter errors.',
|
||||
timeout: 600000,
|
||||
params: {
|
||||
settings: {
|
||||
agents: {
|
||||
overrides: {
|
||||
generalist: { enabled: true },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
files: {
|
||||
'project-a/eslint.config.js': `
|
||||
module.exports = [
|
||||
@@ -85,18 +95,31 @@ describe('subagent eval test cases', () => {
|
||||
if (fileA.includes('var x')) {
|
||||
throw new Error(`project-a/index.js was not fixed. Content:\n${fileA}`);
|
||||
}
|
||||
if (fileB.includes('console.log')) {
|
||||
throw new Error(`project-b/main.js was not fixed. Content:\n${fileB}`);
|
||||
// Check if console.log is present and NOT commented out or disabled.
|
||||
const lines = fileB.split('\n');
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
if (line.includes('console.log')) {
|
||||
const isCommented = line.trim().startsWith('//');
|
||||
const isDisabled =
|
||||
(i > 0 && lines[i - 1].includes('eslint-disable')) ||
|
||||
line.includes('eslint-disable-line');
|
||||
if (!isCommented && !isDisabled) {
|
||||
throw new Error(
|
||||
`project-b/main.js was not fixed (console.log present without disable/comment). Content:\n${fileB}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Assert that the agent delegated to a subagent for each project.
|
||||
const toolLogs = rig.readToolLogs();
|
||||
const subagentCalls = toolLogs.filter((log) => {
|
||||
if (log.toolRequest.name === 'codebase_investigator') return true;
|
||||
if (log.toolRequest.name === 'generalist') return true;
|
||||
if (log.toolRequest.name === 'delegate_to_agent') {
|
||||
try {
|
||||
const args = JSON.parse(log.toolRequest.args);
|
||||
return args.agent_name === 'codebase_investigator';
|
||||
return args.agent_name === 'generalist';
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
@@ -106,7 +129,7 @@ describe('subagent eval test cases', () => {
|
||||
|
||||
if (subagentCalls.length < 2) {
|
||||
throw new Error(
|
||||
`Expected at least 2 codebase_investigator calls, but found ${subagentCalls.length}`,
|
||||
`Expected at least 2 generalist calls, but found ${subagentCalls.length}`,
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -203,6 +203,8 @@ Sub-agents are specialized expert agents. Each sub-agent is available as a tool
|
||||
${subAgentsXml}
|
||||
</available_subagents>
|
||||
|
||||
**Parallelism:** When a user request implies changes across multiple independent directories (e.g., "fix linter errors in multiple projects"), you MUST call the appropriate sub-agent tool multiple times in parallel (once for each directory) to ensure isolation and efficiency.
|
||||
|
||||
Remember that the closest relevant sub-agent should still be used even if its expertise is broader than the given task.
|
||||
|
||||
For example:
|
||||
@@ -534,13 +536,11 @@ function workflowStepStrategy(options: PrimaryWorkflowsOptions): string {
|
||||
if (options.enableWriteTodosTool) {
|
||||
return `2. **Strategy:** Formulate a grounded plan based on your research.${
|
||||
options.interactive ? ' Share a concise summary of your strategy.' : ''
|
||||
} For complex tasks, break them down into smaller, manageable subtasks and use the ${formatToolName(
|
||||
WRITE_TODOS_TOOL_NAME,
|
||||
)} tool to track your progress. When these subtasks are independent, leverage the 'generalist' agent to execute them in parallel, increasing efficiency.`;
|
||||
} For complex tasks, break them down into smaller, manageable subtasks and use the ${formatToolName(WRITE_TODOS_TOOL_NAME)} tool to track your progress.`;
|
||||
}
|
||||
return `2. **Strategy:** Formulate a grounded plan based on your research.${
|
||||
options.interactive ? ' Share a concise summary of your strategy.' : ''
|
||||
} For tasks that can be broken down into independent sub-tasks, leverage the 'generalist' agent to parallelize their execution.`;
|
||||
}`;
|
||||
}
|
||||
|
||||
function workflowVerifyStandardsSuffix(interactive: boolean): string {
|
||||
|
||||
Reference in New Issue
Block a user