diff --git a/docs/architecture.md b/docs/architecture.md index 55da5cd9..2b354eb0 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -57,14 +57,26 @@ A typical interaction with the Gemini CLI follows this general flow: graph TD User[User via Terminal] -- Input --> CLI[packages/cli] CLI -- Request --> Core[packages/core] - Core -- Prompt/Tool Info --> GeminiAPI[Gemini API] - GeminiAPI -- Response/Tool Call --> Core - Core -- Tool Details --> CLI - CLI -- User Confirms --> Core - Core -- Execute Tool --> Tools[Tools e.g., read_file, shell] - Tools -- Tool Result --> Core - Core -- Final Response --> CLI + Core -- Prompt/ToolInfo --> GeminiAPI[Gemini API] + GeminiAPI -- Response/ToolCall --> Core + Core -- ToolDetails --> CLI + CLI -- UserConfirms --> Core + Core -- ExecuteTool --> Tools[Tools e.g., read_file, shell] + Tools -- ToolResult --> Core + Core -- FinalResponse --> CLI CLI -- Output --> User + + classDef userStyle fill:#FFFFFF,stroke:#333333,stroke-width:2px + classDef cliStyle fill:#FBBC05,stroke:#000000,stroke-width:2px + classDef coreStyle fill:#34A853,stroke:#000000,stroke-width:2px + classDef apiStyle fill:#4285F4,stroke:#3F51B5,stroke-width:2px + classDef toolsStyle fill:#EA4335,stroke:#000000,stroke-width:2px + + class User userStyle + class CLI cliStyle + class Core coreStyle + class GeminiAPI apiStyle + class Tools toolsStyle ``` ## Key Design Principles diff --git a/docs/core/tools-api.md b/docs/core/tools-api.md index be19c760..92a09661 100644 --- a/docs/core/tools-api.md +++ b/docs/core/tools-api.md @@ -69,4 +69,4 @@ While direct programmatic registration of new tools by users isn't explicitly de - **Command-based Discovery:** Advanced users or project administrators can define a `toolDiscoveryCommand` in `settings.json`. This command, when run by the Gemini CLI core, should output a JSON array of `FunctionDeclaration` objects. The core will then make these available as `DiscoveredTool` instances. The corresponding `toolCallCommand` would then be responsible for actually executing these custom tools. - **MCP Server(s):** For more complex scenarios, one or more MCP servers can be set up and configured via the `mcpServers` setting in `settings.json`. The Gemini CLI core can then discover and use tools exposed by these servers. As mentioned, if you have multiple MCP servers, the tool names will be prefixed with the server name from your configuration (e.g., `serverAlias__actualToolName`). -This tool system provides a flexible and powerful way to augment the Gemini model\'s capabilities, making the Gemini CLI a versatile assistant for a wide range of tasks. +This tool system provides a flexible and powerful way to augment the Gemini model's capabilities, making the Gemini CLI a versatile assistant for a wide range of tasks.