mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-22 11:04:42 -07:00
Fix and rename introspection agent -> cli help agent (#16097)
This commit is contained in:
committed by
GitHub
parent
bd77515fd9
commit
d4b418ba01
@@ -0,0 +1,86 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2025 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import type { AgentDefinition } from './types.js';
|
||||
import { GEMINI_MODEL_ALIAS_FLASH } from '../config/models.js';
|
||||
import { z } from 'zod';
|
||||
import type { Config } from '../config/config.js';
|
||||
import { GetInternalDocsTool } from '../tools/get-internal-docs.js';
|
||||
|
||||
const CliHelpReportSchema = z.object({
|
||||
answer: z
|
||||
.string()
|
||||
.describe('The detailed answer to the user question about Gemini CLI.'),
|
||||
sources: z
|
||||
.array(z.string())
|
||||
.describe('The documentation files used to answer the question.'),
|
||||
});
|
||||
|
||||
/**
|
||||
* An agent specialized in answering questions about Gemini CLI itself,
|
||||
* using its own documentation and runtime state.
|
||||
*/
|
||||
export const CliHelpAgent = (
|
||||
config: Config,
|
||||
): AgentDefinition<typeof CliHelpReportSchema> => ({
|
||||
name: 'cli_help',
|
||||
kind: 'local',
|
||||
displayName: 'CLI Help Agent',
|
||||
description:
|
||||
'Specialized in answering questions about how users use you, (Gemini CLI): features, documentation, and current runtime configuration.',
|
||||
inputConfig: {
|
||||
inputs: {
|
||||
question: {
|
||||
description: 'The specific question about Gemini CLI.',
|
||||
type: 'string',
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
outputConfig: {
|
||||
outputName: 'report',
|
||||
description: 'The final answer and sources as a JSON object.',
|
||||
schema: CliHelpReportSchema,
|
||||
},
|
||||
|
||||
processOutput: (output) => JSON.stringify(output, null, 2),
|
||||
|
||||
modelConfig: {
|
||||
model: GEMINI_MODEL_ALIAS_FLASH,
|
||||
temp: 0.1,
|
||||
top_p: 0.95,
|
||||
thinkingBudget: -1,
|
||||
},
|
||||
|
||||
runConfig: {
|
||||
max_time_minutes: 3,
|
||||
max_turns: 10,
|
||||
},
|
||||
|
||||
toolConfig: {
|
||||
tools: [new GetInternalDocsTool(config.getMessageBus())],
|
||||
},
|
||||
|
||||
promptConfig: {
|
||||
query:
|
||||
'Your task is to answer the following question about Gemini CLI:\n' +
|
||||
'<question>\n' +
|
||||
'${question}\n' +
|
||||
'</question>',
|
||||
systemPrompt:
|
||||
"You are **CLI Help Agent**, an expert on Gemini CLI. Your purpose is to provide accurate information about Gemini CLI's features, configuration, and current state.\n\n" +
|
||||
'### Runtime Context\n' +
|
||||
'- **CLI Version:** ${cliVersion}\n' +
|
||||
'- **Active Model:** ${activeModel}\n' +
|
||||
"- **Today's Date:** ${today}\n\n" +
|
||||
'### Instructions\n' +
|
||||
"1. **Explore Documentation**: Use the `get_internal_docs` tool to find answers. If you don't know where to start, call `get_internal_docs()` without arguments to see the full list of available documentation files.\n" +
|
||||
'2. **Be Precise**: Use the provided runtime context and documentation to give exact answers.\n' +
|
||||
'3. **Cite Sources**: Always include the specific documentation files you used in your final report.\n' +
|
||||
'4. **Non-Interactive**: You operate in a loop and cannot ask the user for more info. If the question is ambiguous, answer as best as you can with the information available.\n\n' +
|
||||
'You MUST call `complete_task` with a JSON report containing your `answer` and the `sources` you used.',
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user