{"id":32191,"date":"2025-07-07T20:09:09","date_gmt":"2025-07-07T12:09:09","guid":{"rendered":"https:\/\/www.kdjingpai.com\/?p=32191"},"modified":"2025-07-07T20:09:09","modified_gmt":"2025-07-07T12:09:09","slug":"baogai-gemini-cli","status":"publish","type":"post","link":"https:\/\/www.kdjingpai.com\/ja\/baogai-gemini-cli\/","title":{"rendered":"\u7206\u6539 Gemini-CLI\uff1a\u8ba9 DeepSeek \u9a71\u52a8\u4f60\u7684\u547d\u4ee4\u884c AI"},"content":{"rendered":"<p>AI \u667a\u80fd\u4f53\uff08Agent\uff09\u6b63\u5728\u4ece\u4e91\u7aef\u8d70\u5411\u5f00\u53d1\u8005\u7684\u672c\u5730\u7ec8\u7aef\u3002\u4e0e\u57fa\u4e8e\u56fe\u5f62\u7528\u6237\u754c\u9762\uff08GUI\uff09\u7684\u667a\u80fd\u4f53\u76f8\u6bd4\uff0c\u547d\u4ee4\u884c\uff08CLI\uff09\u667a\u80fd\u4f53\u80fd\u66f4\u6df1\u5165\u5730\u96c6\u6210\u5230\u5f00\u53d1\u5de5\u4f5c\u6d41\u4e2d\uff0c\u901a\u8fc7\u811a\u672c\u5b9e\u73b0\u590d\u6742\u4efb\u52a1\u7684\u81ea\u52a8\u5316\uff0c\u5e76\u80fd\u76f4\u63a5\u64cd\u4f5c\u672c\u5730\u6587\u4ef6\u548c\u4ee3\u7801\u5e93\u3002<\/p>\n<p>\u50cf\u00a0<code><a href=\"https:\/\/www.kdjingpai.com\/claudeanquanfubai\/\">Claude<\/a> Code<\/code>\u00a0\u548c\u00a0<code><a href=\"https:\/\/www.kdjingpai.com\/gemini-cligooglea\/\">Gemini-CLI<\/a><\/code>\u00a0\u8fd9\u6837\u7684\u5de5\u5177\u56e0\u5176\u5f3a\u5927\u7684\u7f16\u7a0b\u8f85\u52a9\u80fd\u529b\u800c\u5907\u53d7\u5173\u6ce8\uff0c\u4f46\u5bf9\u4e8e\u90e8\u5206\u5730\u533a\u7684\u5f00\u53d1\u8005\u6765\u8bf4\uff0c\u8bbf\u95ee\u8fd9\u4e9b\u670d\u52a1\u5b58\u5728\u4e00\u5b9a\u969c\u788d\u3002\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u793e\u533a\u5f00\u53d1\u8005\u57fa\u4e8e\u8c37\u6b4c\u5f00\u6e90\u7684\u00a0<code>Gemini-CLI<\/code>\u00a0\u9879\u76ee\uff0c\u5229\u7528\u00a0<code><a href=\"https:\/\/www.kdjingpai.com\/deepseek-chatshena\/\">DeepSeek<\/a><\/code>\u00a0\u6a21\u578b\u548c\u7845\u57fa\u6d41\u52a8\u00a0<code>SiliconCloud<\/code>\u00a0\u5e73\u53f0\u7684 API\uff0c\u6210\u529f\u5f00\u53d1\u4e86\u4e00\u6b3e\u540d\u4e3a\u00a0<code>Gen-CLI<\/code>\u00a0\u7684\u66ff\u4ee3\u5de5\u5177\u3002\u5c3d\u7ba1\u5176\u6027\u80fd\u76f8\u8f83\u539f\u7248\u7565\u6709\u5dee\u8ddd\uff0c\u4f46\u5728\u8bb8\u591a\u573a\u666f\u4e0b\u5df2\u80fd\u5b9e\u73b0\u6709\u6548\u66ff\u4ee3\u3002<\/p>\n<h3>\u5feb\u901f\u5b89\u88c5\u4e0e\u914d\u7f6e<\/h3>\n<p>\u5b89\u88c5\u00a0<code>Gen-CLI<\/code>\u00a0\u7684\u8fc7\u7a0b\u975e\u5e38\u76f4\u63a5\uff0c\u53ea\u9700\u51e0\u4e2a\u7b80\u5355\u7684\u6b65\u9aa4\u3002<\/p>\n<ol>\n<li>\u786e\u4fdd\u64cd\u4f5c\u7cfb\u7edf\u5df2\u5b89\u88c5\u00a0<code>Node.js<\/code>\u00a018 \u6216\u66f4\u9ad8\u7248\u672c\u3002<\/li>\n<li>\u8bbe\u7f6e API \u5bc6\u94a5\u73af\u5883\u53d8\u91cf\u3002\u4f60\u9700\u8981\u524d\u5f80\u00a0<code>SiliconCloud<\/code>\u00a0\u5b98\u65b9\u5e73\u53f0\u6ce8\u518c\u5e76\u83b7\u53d6\u00a0<code>YOUR_API_KEY<\/code>\u3002\n<pre><code>export SILICONFLOW_API_KEY=\"YOUR_API_KEY\"\r\n<\/code><\/pre>\n<\/li>\n<li>\u8fd0\u884c\u00a0<code>Gen-CLI<\/code>\u3002\n<p>\u53ef\u4ee5\u901a\u8fc7\u00a0<code>npx<\/code>\u00a0\u76f4\u63a5\u8fd0\u884c\u8fdc\u7a0b\u4ed3\u5e93\uff1a<\/p>\n<pre><code>npx https:\/\/github.com\/gen-cli\/gen-cli\r\n<\/code><\/pre>\n<p>\u6216\u8005\uff0c\u901a\u8fc7\u00a0<code>npm<\/code>\u00a0\u5168\u5c40\u5b89\u88c5\u4ee5\u65b9\u4fbf\u65e5\u540e\u4f7f\u7528\uff1a<\/p>\n<pre><code>npm install -g @gen-cli\/gen-cli\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>\u57fa\u7840\u80fd\u529b\u6d4b\u8bd5\uff1a\u5bfb\u627e\u81ea\u5df1\u7684 Prompt<\/h3>\n<p>\u4e00\u4e2a\u6709\u6548\u7684 AI \u667a\u80fd\u4f53\u5e94\u5f53\u5177\u5907\u7406\u89e3\u81ea\u8eab\u4ee3\u7801\u5e93\u7684\u80fd\u529b\u3002\u53d7\u5230\u4e00\u7bc7\u76f8\u5173\u6587\u7ae0\u7684\u542f\u53d1\uff0c\u4e00\u4e2a\u57fa\u7840\u4f46\u91cd\u8981\u7684\u6d4b\u8bd5\u662f\u8ba9\u00a0<code>Gen-CLI<\/code>\u00a0\u5728\u5176\u6e90\u7801\u4e2d\u5bfb\u627e\u5b9a\u4e49\u5176\u884c\u4e3a\u7684 Prompt\u3002<\/p>\n<pre><code>&gt; find the prompts in this source code\r\n\u2726 To find prompts in the source code, I'll search for files that might contain prompts, such as configuration files, CLI <a href=\"https:\/\/www.kdjingpai.com\/cohere\/\">command<\/a> definitions, or documentation. I'll\r\nstart by looking for common patterns like prompt, message, or input in the codebase.\r\nLet me begin by searching for relevant files.\r\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 \u2714  SearchText 'prompt|message|input' within .\/                                                                                                                   \u2502\r\n\u2502                                                                                                                                                                   \u2502\r\n\u2502   Found 2280 matche(s)                                                                                                                                            \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n\u2726 The search results reveal several files and contexts where prompts are used in the <a href=\"https:\/\/www.kdjingpai.com\/geminibardgubu\/\">Gemini<\/a> CLI source code. Here's a summary of the findings:\r\nKey Files and Contexts:\r\n1. `packages\/core\/src\/core\/prompts.ts`:\r\n- Contains the core system prompt logic, including the getCoreSystemPrompt function, which constructs the base prompt for the <a href=\"https:\/\/www.kdjingpai.com\/gemini-cligooglea\/\">Gemini CLI<\/a>.\r\n- Includes instructions for user confirmations, sandbox-specific instructions, and Git repository handling.\r\n2. `packages\/cli\/src\/nonInteractiveCli.ts`:\r\n- Handles non-interactive CLI mode, where prompts are passed directly via the --prompt flag.\r\n3. `packages\/cli\/src\/gemini.tsx`:\r\n- Manages user input and logging of prompts, including telemetry for prompt logging.\r\n4. `packages\/core\/src\/core\/client.ts`:\r\n- Uses the getCoreSystemPrompt function to generate prompts for the <a href=\"https:\/\/www.kdjingpai.com\/google-ai-studioai\/\">Gemini API<\/a>.\r\n5. `packages\/core\/src\/tools\/web-fetch.ts`:\r\n- Defines the web_fetch tool, which processes prompts containing URLs and instructions.\r\n6. `packages\/core\/src\/tools\/memoryTool.ts`:\r\n- Handles prompts for saving user facts to memory.\r\n7. `packages\/core\/src\/tools\/edit.ts`:\r\n- Manages prompts for file editing operations.\r\n8. `docs\/cli\/commands.md`:\r\n- Documents how prompts are used in the CLI, including the @ symbol for file inclusion in prompts.\r\nExample Prompts:\r\n- Core System Prompt (from prompts.ts):\r\n1   You are an interactive CLI agent...\r\n2   - Respect User Confirmations: Most tool calls will first require confirmation from the user...\r\n- Non-Interactive Mode (from nonInteractiveCli.ts):\r\n1   gemini --prompt \"your prompt here\"\r\n- Web Fetch Tool (from web-fetch.ts):\r\n1   Processes content from URL(s) embedded in a prompt. Include up to 20 URLs and instructions...\r\nNext Steps:\r\nIf you need to inspect or modify specific prompts, I can:\r\n1. Read the content of packages\/core\/src\/core\/prompts.ts to see the full system prompt.\r\n2. Check the implementation of the web_fetch tool for URL handling in prompts.\r\n3. Explore how prompts are logged or processed in the CLI.\r\nLet me know which aspect you'd like to dive deeper into!\r\n<\/code><\/pre>\n<p>\u6709\u8da3\u7684\u662f\uff0c<code>Gen-CLI<\/code>\u00a0\u7684\u8868\u73b0\u4f3c\u4e4e\u6bd4\u539f\u7248\u66f4\u51fa\u8272\u3002\u539f\u7248\u00a0<code>Gemini-CLI<\/code>\u00a0\u5728\u6b64\u573a\u666f\u4e0b\u4ec5\u641c\u7d22\u5173\u952e\u8bcd\u00a0<code>prompt<\/code>\uff0c\u800c\u00a0<code>Gen-CLI<\/code>\u00a0\u5728\u00a0<code>DeepSeek<\/code>\u00a0\u6a21\u578b\u7684\u9a71\u52a8\u4e0b\uff0c\u81ea\u4e3b\u6269\u5c55\u4e86\u641c\u7d22\u8303\u56f4\u81f3\u00a0<code>prompt|message|input<\/code>\uff0c\u4ece\u800c\u627e\u5230\u4e86\u66f4\u5168\u9762\u7684\u76f8\u5173\u6587\u4ef6\u548c\u4e0a\u4e0b\u6587\u3002<\/p>\n<h3>\u8fdb\u9636\u80fd\u529b\u6d4b\u8bd5\uff1a\u5206\u6790\u5927\u578b\u4ee3\u7801\u4ed3\u5e93<\/h3>\n<p>\u5904\u7406\u5c0f\u578b\u4ee3\u7801\u5e93\u76f8\u5bf9\u7b80\u5355\uff0c\u4f46\u5206\u6790\u50cf\u00a0<code>LLVM<\/code>\u00a0\u8fd9\u6837\u5e9e\u5927\u800c\u590d\u6742\u7684\u9879\u76ee\uff0c\u624d\u80fd\u771f\u6b63\u8003\u9a8c\u4e00\u4e2a AI \u667a\u80fd\u4f53\u7684\u4ee3\u7801\u7406\u89e3\u80fd\u529b\u3002<\/p>\n<pre><code>% gen --prompt \"what does this project do\" --yolo\r\nThe **LLVM Project** is a collection of modular and reusable compiler and toolchain technologies. It is widely used for building compilers, optimizers, debuggers, and other programming tools. Here's a breakdown of its key components and functionalities:\r\n### Core Components:\r\n1. **LLVM Core**:\r\n- Provides the infrastructure for building compilers, including:\r\n- **Intermediate Representation (IR)**: A low-level, typed, and platform-independent representation of code.\r\n- **Optimization Passes**: A suite of optimizations that can be applied to IR.\r\n- **Code Generation**: Backends for generating machine code for various architectures (e.g., x86, ARM, etc.).\r\n2. **Clang**:\r\n- A C\/C++\/Objective-C compiler that uses LLVM as its backend. It is known for:\r\n- Fast compilation.\r\n- Better error messages and diagnostics.\r\n- Support for modern C++ standards.\r\n3. **LLDB**:\r\n- A debugger for C, C++, and Objective-C, designed to integrate with LLVM and Clang.\r\n4. **libc++** and **libc++abi**:\r\n- Implementations of the C++ Standard Library and ABI, respectively, designed for performance and correctness.\r\n5. **Compiler-RT**:\r\n- Provides runtime libraries for compiler-builtins (e.g., `__builtin` functions), sanitizers (e.g., AddressSanitizer, MemorySanitizer), and profiling tools.\r\n6. **LLD**:\r\n- A high-performance linker designed to be faster than traditional linkers like GNU `ld`.\r\n7. **MLIR**:\r\n- A framework for building domain-specific compilers and optimizing transformations, particularly useful for machine learning and other high-level abstractions.\r\n8. **Flang**:\r\n- A Fortran compiler frontend for LLVM.\r\n9. **Polly**:\r\n- A high-level loop and data-locality optimizer for LLVM.\r\n### Key Features:\r\n- **Modularity**: LLVM is designed as a set of reusable libraries, making it easy to build custom tools or extend existing ones.\r\n- **Performance**: LLVM's optimizations and code generation are highly efficient, making it a popular choice for performance-critical applications.\r\n- **Cross-Platform**: Supports a wide range of operating systems (Linux, macOS, Windows, etc.) and architectures (x86, ARM, RISC-V, etc.).\r\n- **Open Source**: The project is open-source and has a large community of contributors.\r\n### Use Cases:\r\n- **Building Compilers**: Many languages (e.g., Rust, Swift) use LLVM as their backend.\r\n- **Static Analysis**: Tools like Clang-Tidy use LLVM for code analysis.\r\n- **JIT Compilation**: LLVM's Just-In-Time (JIT) compilation is used in projects like Julia and LuaJIT.\r\n- **Debugging and Profiling**: Tools like LLDB and sanitizers help developers find bugs and performance issues.\r\n### Directory Structure (From Your Context):\r\n- The project is organized into subdirectories for each major component (e.g., `clang\/`, `lld\/`, `mlir\/`).\r\n- Configuration files (e.g., `.clang-format`, `.gitignore`) and documentation (e.g., `README.md`) are present at the root level.\r\nIf you're working with the LLVM Project, you might be interested in building, debugging, or contributing to one of these components. Let me know if you'd like help with anything specific!\r\n<\/code><\/pre>\n<p><code>Gen-CLI<\/code>\u00a0\u6210\u529f\u5730\u5206\u6790\u4e86\u00a0<code>LLVM<\/code>\u00a0\u9879\u76ee\u7684\u7ed3\u6784\uff0c\u51c6\u786e\u8bc6\u522b\u4e86\u5176\u6838\u5fc3\u7ec4\u4ef6\u3001\u5173\u952e\u7279\u6027\u548c\u5178\u578b\u7528\u4f8b\uff0c\u5c55\u793a\u4e86\u5176\u5904\u7406\u5927\u578b\u4ee3\u7801\u5e93\u7684\u6f5c\u529b\u3002<\/p>\n<h3>\u6838\u5fc3\u5de5\u4f5c\u6d41\uff1a\u6301\u7eed\u7684 Debug-Edit-Validate \u5faa\u73af<\/h3>\n<p>\u5bf9\u4e8e\u91cd\u5ea6\u4f9d\u8d56\u00a0<code>VSCode<\/code>\u00a0\u4e2d Code Agent \u7684\u7528\u6237\u6765\u8bf4\uff0c\u667a\u80fd\u4f53\u81ea\u52a8\u6267\u884c\u4fee\u6539\u3001\u8fd0\u884c\u6d4b\u8bd5\u3001\u6839\u636e\u7ed3\u679c\u518d\u6b21\u4fee\u6539\u7684\u5faa\u73af\u662f\u63d0\u5347\u6548\u7387\u7684\u5173\u952e\u3002<code>Gen-CLI<\/code>\u00a0\u662f\u5426\u4e5f\u80fd\u8fdb\u5165\u8fd9\u79cd\u201c\u81ea\u52a8\u9a7e\u9a76\u201d\u6a21\u5f0f\uff1f<\/p>\n<p>\u6d4b\u8bd5\u4efb\u52a1\u662f\u8ba9\u00a0<code>Gen-CLI<\/code>\u00a0\u4e3a\u9879\u76ee\u4e2d\u7684\u4e00\u4e2a\u6587\u4ef6\u589e\u52a0\u5355\u5143\u6d4b\u8bd5\u3002\u9996\u5148\uff0c\u667a\u80fd\u4f53\u987a\u5229\u5730\u8bfb\u53d6\u4e86\u76f8\u5173\u6587\u4ef6\u3002<\/p>\n<pre><code>&gt; create test for @packages\/core\/src\/core\/siliconFlowContentGenerator.ts following @packages\/core\/src\/core\/contentGenerator.test.ts\r\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 \u2714  ReadManyFiles Will attempt to read and concatenate files using patterns: `packages\/core\/src\/core\/siliconFlowContentGenerator.ts`, `packages\/core\/src\/core\/conten\u2026  \u2502\r\n\u2502                                                                                                                                                                       \u2502\r\n\u2502   ### ReadManyFiles Result (Target Dir: `\/oss\/gen-cli`)                                                                                                               \u2502\r\n\u2502                                                                                                                                                                       \u2502\r\n\u2502   Successfully read and concatenated content from **2 file(s)**.                                                                                                      \u2502\r\n\u2502                                                                                                                                                                       \u2502\r\n\u2502   **Processed Files:**                                                                                                                                                \u2502\r\n\u2502   - `packages\/core\/src\/core\/contentGenerator.test.ts`                                                                                                                 \u2502\r\n\u2502   - `packages\/core\/src\/core\/siliconFlowContentGenerator.ts`                                                                                                           \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n<\/code><\/pre>\n<p>\u5728\u672a\u5f00\u542f\u00a0<code>--yolo<\/code>\uff08\u81ea\u52a8\u6279\u51c6\uff09\u6a21\u5f0f\u65f6\uff0c<code>Gen-CLI<\/code>\u00a0\u4f1a\u50cf\u7f16\u8f91\u5668\u4e2d\u7684 Agent \u4e00\u6837\uff0c\u8bf7\u6c42\u7528\u6237\u6279\u51c6\u6587\u4ef6\u4fee\u6539\u3002<\/p>\n<pre><code>Next Steps:\r\n1. Save this file as packages\/core\/src\/core\/siliconFlowContentGenerator.test.ts.\r\n2. Run the test to ensure it passes (assuming the implementation of siliconFlowContentGenerator.ts follows the expected behavior).\r\nLet me know if you'd like me to save this file or make any adjustments!\r\n&gt; Save this file and run test with npm run test [file name]\r\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 ?  WriteFile Writing to \/siliconFlowContentGenerator.test.ts \u2190                                                                                                     \u2502\r\n\u2502                                                                                                                                                                    \u2502\r\n\u2502 ... first 44 lines hidden ...                                                                                                                                      \u2502\r\n\u2502 45       },                                                                                                                                                          \u2502\r\n\u2502 46     },                                                                                                                                                            \u2502\r\n\u2502 47   });                                                                                                                                                            \u2502\r\n\u2502 48     expect(generator).toBe((mockGenerator as GoogleGenAI).models);                                                                                               \u2502\r\n\u2502 49 });                                                                                                                                                              \u2502\r\n\u2502 50 });                                                                                                                                                              \u2502\r\n\u2502                                                                                                                                                                    \u2502\r\n\u2502 Apply this change?                                                                                                                                                 \u2502\r\n\u2502                                                                                                                                                                    \u2502\r\n\u2502 \u25cf Yes, allow once                                                                                                                                                  \u2502\r\n\u2502 \u25cb Yes, allow always                                                                                                                                                \u2502\r\n\u2502 \u25cb Modify with external editor                                                                                                                                      \u2502\r\n\u2502 \u25cb No (esc)                                                                                                                                                         \u2502\r\n\u2502\r\n<\/code><\/pre>\n<p>\u7136\u800c\uff0c\u5728\u6d4b\u8bd5\u4e2d\u4e5f\u53d1\u73b0\uff0c<code>Gen-CLI<\/code>\u00a0\u7684\u5de5\u5177\u8c03\u7528\uff08Tool Call\uff09\u5e76\u975e\u603b\u662f\u53ef\u9760\u3002\u6709\u65f6\uff0c\u5b83\u4f1a\u751f\u6210\u9519\u8bef\u7684\u5de5\u5177\u8c03\u7528\u6307\u4ee4\uff0c\u5bfc\u81f4\u4efb\u52a1\u4e2d\u65ad\u3002<\/p>\n<pre><code>\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 \u2714  Edit \/siliconFlowContentGenerator.test.ts: import { jest } from '@jest\/gl... =&gt; import { vi } from 'vitest';                                                 \u2502\r\n\u2502                                                                                                                                                             \u2502\r\n\u2502    7      import { SiliconFlowContentGenerator } from '.\/siliconFlowContentGenerator';                                                                       \u2502\r\n\u2502    8      import { GenerateContentParameters, CountTokensParameters } from '@google\/genai';                                                                  \u2502\r\n\u2502    9      import OpenAI from 'openai';                                                                                                                        \u2502\r\n\u2502    10   - import { jest } from '@jest\/globals';                                                                                                                 \u2502\r\n\u2502    10   + import { vi } from 'vitest';                                                                                                                        \u2502\r\n\u2502    11                                                                                                                                                         \u2502\r\n\u2502    12     describe('SiliconFlowContentGenerator', () =&gt; {                                                                                                      \u2502\r\n\u2502    13       let generator: SiliconFlowContentGenerator;                                                                                                        \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 x  undefined_tool_name [\"function&lt;\uff5ctool sep\uff5c&gt;replace\",{\"file_path\":\"\/oss\/gen-cli\/packages\/core\/src\/core\/siliconFlowContentGenerator.test.ts\",\"old_strin\u2026 \u2502\r\n\u2502                                                                                                                                                                       \u2502\r\n\u2502   Tool \"undefined_tool_name\" not found in registry.\r\n<\/code><\/pre>\n<p>\u7ecf\u8fc7\u4e00\u4e9b\u4eba\u5de5\u5e72\u9884\u548c\u591a\u6b21\u5c1d\u8bd5\uff0c<code>Gen-CLI<\/code>\u00a0\u6700\u7ec8\u80fd\u591f\u8fdb\u5165 Debug-Edit-Validate \u7684\u5faa\u73af\u3002\u76f8\u6bd4\u4e4b\u4e0b\uff0c<code><a href=\"https:\/\/www.kdjingpai.com\/cursoryuaigongtong\/\">Cursor<\/a><\/code>\u00a0\u6216\u00a0<code>Aline<\/code>\u00a0\u7b49\u5de5\u5177\u5728\u89e6\u53d1\u81ea\u52a8\u5316\u5faa\u73af\u65b9\u9762\u66f4\u4e3a\u6d41\u7545\u3002\u8fd9\u53ef\u80fd\u662f\u56e0\u4e3a\u5b83\u4eec\u5bf9\u975e\u7ed3\u6784\u5316\u81ea\u7136\u8bed\u8a00\u8f93\u51fa\u7684\u5904\u7406\u66f4\u4f18\uff0c\u4f7f\u5f97\u5de5\u5177\u8c03\u7528\u7684\u89e6\u53d1\u5728\u9891\u7e41\u7684\u4ea4\u4e92\u573a\u666f\u4e0b\u66f4\u4e3a\u53ef\u9760\uff0c\u8fd9\u6b63\u662f\u00a0<code>Gen-CLI<\/code>\u00a0\u672a\u6765\u9700\u8981\u6539\u8fdb\u7684\u65b9\u5411\u3002<\/p>\n<h3>\u5b9e\u8df5\u5e94\u7528\uff1a\u4e00\u952e\u521b\u5efa Todo \u5e94\u7528<\/h3>\n<p>\u901a\u8fc7\u00a0<code>--yolo<\/code>\u00a0\u53c2\u6570\u81ea\u52a8\u6279\u51c6\u6240\u6709\u4ea4\u4e92\uff0c\u53ef\u4ee5\u6d4b\u8bd5\u00a0<code>Gen-CLI<\/code>\u00a0\u7684\u7aef\u5230\u7aef\u9879\u76ee\u521b\u5efa\u80fd\u529b\u3002<\/p>\n<pre><code>gen --prompt \"create a todo app, save the src files in the current dir\" --yolo\r\n<\/code><\/pre>\n<p>\u547d\u4ee4\u6267\u884c\u540e\uff0c\u53ef\u4ee5\u770b\u5230\u76f8\u5173\u6587\u4ef6\u88ab\u6210\u529f\u521b\u5efa\uff1a<\/p>\n<pre><code>% ls\r\napp.js          index.html      styles.css\r\n<\/code><\/pre>\n<p>\u5728\u6d4f\u89c8\u5668\u4e2d\u6253\u5f00\u00a0<code>index.html<\/code>\uff0c\u4e00\u4e2a\u529f\u80fd\u5b8c\u6574\u3001\u5e26\u9519\u8bef\u5904\u7406\u7684 Todo \u5e94\u7528\u5df2\u7ecf\u53ef\u4ee5\u6b63\u5e38\u8fd0\u884c\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/07\/a9b6f4637410e80.png\" alt=\"Todo App UI\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/07\/b07234b6c42a19d.png\" alt=\"Todo App Error Handling\" \/><\/p>\n<h3>\u975e\u5f00\u53d1\u8005\u4e5f\u80fd\u53d7\u76ca\uff1a\u81ea\u52a8\u5316\u65e5\u5e38\u4efb\u52a1<\/h3>\n<p>CLI Agent \u7684\u4ef7\u503c\u4e0d\u4ec5\u9650\u4e8e\u5f00\u53d1\u8005\u3002\u5bf9\u4e8e\u4efb\u4f55\u9700\u8981\u5904\u7406\u91cd\u590d\u6027\u6587\u4ef6\u64cd\u4f5c\u7684\u7528\u6237\uff0c\u5b83\u90fd\u80fd\u63d0\u4f9b\u5de8\u5927\u7684\u4fbf\u5229\u3002\u4f8b\u5982\uff0c\u8d22\u52a1\u62a5\u9500\u573a\u666f\u4e2d\uff0c\u9700\u8981\u4ece\u4e00\u5806\u53d1\u7968PDF\u4e2d\u51d1\u51fa\u63a5\u8fd1\u7279\u5b9a\u91d1\u989d\u7684\u7ec4\u5408\u3002<\/p>\n<p>\u4f7f\u7528 GUI Agent \u53ef\u80fd\u9700\u8981\u5982\u4e0b\u6b65\u9aa4\uff1a\u6253\u5f00\u7f51\u9875\u3001\u8f93\u5165\u6307\u4ee4\u3001\u7b49\u5f85\u6a21\u578b\u5904\u7406\u3001\u53cd\u590d\u68c0\u67e5\u7ed3\u679c\uff0c\u6574\u4e2a\u8fc7\u7a0b\u8017\u65f6\u4e14\u96be\u4ee5\u590d\u7528\u3002\u800c CLI Agent \u7684\u4f18\u52bf\u5728\u4e8e\u5176\u53ef\u590d\u7528\u6027\u548c\u53ef\u7f16\u7a0b\u6027\u3002\u53ef\u4ee5\u5c06\u4e00\u7cfb\u5217\u6307\u4ee4\u4fdd\u5b58\u4e3a\u811a\u672c\uff0c\u6bcf\u6b21\u9700\u8981\u65f6\u4e00\u952e\u6267\u884c\uff0c\u751a\u81f3\u53ef\u4ee5\u4e0d\u65ad\u4f18\u5316\u8fd9\u4e2a\u811a\u672c\uff0c\u8fd9\u5bf9\u4e8e GUI \u7684\u624b\u52a8\u64cd\u4f5c\u6765\u8bf4\u662f\u65e0\u6cd5\u5b9e\u73b0\u7684\u3002<\/p>\n<p>\u4ee5\u4e0b\u662f\u00a0<code>Gen-CLI<\/code>\u00a0\u5904\u7406\u6b64\u4efb\u52a1\u7684\u771f\u5b9e\u8fc7\u7a0b\uff1a<\/p>\n<pre><code>cd \"6\u6708\u53d1\u7968\"\r\ngen --prompt \"\u8fd9\u4e2a\u6587\u4ef6\u5939\u5305\u542b\u4e86\u8fd9\u4e2a\u6708\u7684\u53d1\u7968\uff0c\u8bfb\u53d6\u6240\u6709\u5185\u5bb9\uff0c\u627e\u5230\u6b63\u597d\u52a0\u8d77\u6765\u6700\u63a5\u8fd1888\u5143\u7684\u7ec4\u5408\" --yolo\r\n<\/code><\/pre>\n<p><code>Gen-CLI<\/code>\u00a0\u81ea\u4e3b\u89c4\u5212\u5e76\u6267\u884c\u4e86\u4ee5\u4e0b\u6b65\u9aa4\uff1a<\/p>\n<ol>\n<li><strong>\u8bfb\u53d6\u6587\u4ef6\u5939\u5185\u5bb9<\/strong>\uff1a\u5217\u51fa\u6240\u6709\u53d1\u7968\u6587\u4ef6\u3002<\/li>\n<li><strong>\u5b66\u4e60\u4f7f\u7528\u5de5\u5177<\/strong>\uff1a\u81ea\u884c\u5b66\u4e60\u5e76\u8c03\u7528\u00a0<code>pdftotext<\/code>\u00a0\u547d\u4ee4\u6765\u63d0\u53d6 PDF \u6587\u4ef6\u4e2d\u7684\u6587\u672c\u3002<\/li>\n<li><strong>\u6570\u636e\u5904\u7406<\/strong>\uff1a\u8bc6\u522b\u4e0d\u540c\u8d27\u5e01\uff08\u7f8e\u5143\u548c\u4eba\u6c11\u5e01\uff09\u7684\u91d1\u989d\u5e76\u8fdb\u884c\u6c47\u7387\u6362\u7b97\u3002<\/li>\n<li><strong>\u7ec4\u5408\u5206\u6790<\/strong>\uff1a\u8ba1\u7b97\u6240\u6709\u53ef\u80fd\u7684\u53d1\u7968\u7ec4\u5408\uff0c\u627e\u51fa\u603b\u91d1\u989d\u6700\u63a5\u8fd1\u76ee\u6807\u503c 888 \u5143\u7684\u65b9\u6848\u3002<\/li>\n<\/ol>\n<pre><code>&gt; \u8fd9\u4e2a\u6587\u4ef6\u5939\u5305\u542b\u4e86\u8fd9\u4e2a\u6708\u7684\u53d1\u7968\uff0c\u8bfb\u53d6\u6240\u6709\u5185\u5bb9\uff0c\u627e\u5230\u6b63\u597d\u52a0\u8d77\u6765\u6700\u63a5\u8fd1888\u5143\u7684\u7ec4\u5408, \u5982\u679c\u662fpdf\u6587\u4ef6\uff0c\u8bf7\u8fd0\u884c poppler \u7684pdftotext\u547d\u4ee4\u6765\u8bfb\u53d6 pdf\r\n... (Agent autonomously reads folder, executes pdftotext on multiple files, extracts text) ...\r\n\u2726 Here are the extracted amounts from the invoices:\r\n1. 2025-04-23_041203 \u706b\u8f66\u7968.pdf: \u00a554.50 (Train ticket)\r\n2. YYY-Invoice_2112627897.pdf: $8.97 (YYY invoice)\r\n3. bj-tj25119110010001979920.pdf: \u00a554.50 (Train ticket)\r\n4. dzfp_25322000000121860670_20250320103244.pdf: \u00a52961.00 (Hotel invoice)\r\n... (and 8 more invoices) ...\r\nNext Steps:\r\n1. Convert all USD amounts to CNY (assuming an exchange rate of 1 USD = 7.2 CNY for simplicity).\r\n2. Sum the amounts to find the combination closest to \u00a5888.\r\nWould you like me to proceed with the calculations?\r\n&gt; yes\r\n\u2726 Here are the converted amounts (assuming 1 USD = 7.2 CNY) and the total in CNY:\r\n1. 2025-04-23_041203 \u706b\u8f66\u7968.pdf: \u00a554.50\r\n2. YYY-Invoice_2112627897.pdf: $8.97 \u2192 \u00a564.58\r\n... (all amounts converted to CNY) ...\r\nGoal: Find the combination of invoices that sums closest to \u00a5888.\r\nPossible Combinations:\r\n... (Agent calculates multiple combinations) ...\r\nBest Match:\r\nCombination 3 sums to \u00a5888.80, which is only \u00a50.80 above the target of \u00a5888.\r\nInvoices in Combination 3:\r\n1. 2025-04-23_041203 \u706b\u8f66\u7968.pdf (\u00a554.50)\r\n2. YYY-Invoice_2112627897.pdf (\u00a564.58)\r\n3. bj-tj25119110010001979920.pdf (\u00a554.50)\r\n4. XXX\u4e91\u670d\u52a1-Invoice-PPITBZ-00013.pdf (\u00a572.00)\r\n5. Invoice_2149516169.pdf (\u00a597.49)\r\n6. Invoice_2184658113.pdf (\u00a5100.73)\r\n7. XX\u9152\u5e97KPLS202505290028783_8432931_1.pdf (\u00a5345.00)\r\n<\/code><\/pre>\n<p>\u6700\u7ec8\uff0c<code>Gen-CLI<\/code>\u00a0\u4e0d\u4ec5\u6210\u529f\u5b8c\u6210\u4e86\u4efb\u52a1\uff0c\u8fd8\u7ed9\u51fa\u4e86\u4e00\u4e2a\u4e0e\u76ee\u6807\u91d1\u989d\u4ec5\u76f8\u5dee 0.8 \u5143\u7684\u5b8c\u7f8e\u7ec4\u5408\u3002\u8fd9\u4e2a\u4f8b\u5b50\u5145\u5206\u5c55\u793a\u4e86 CLI Agent \u5728\u81ea\u52a8\u5316\u5904\u7406\u590d\u6742\u65e5\u5e38\u4efb\u52a1\u65b9\u9762\u7684\u5f3a\u5927\u80fd\u529b\u3002<\/p>\n<p>\u7efc\u5408\u6765\u770b\uff0c\u5982\u679c\u5c06\u00a0<code><a href=\"https:\/\/www.kdjingpai.com\/claude-code\/\">Claude Code<\/a><\/code>\u00a0\u7684\u80fd\u529b\u5b9a\u4e3a 100 \u5206\uff0c<code>Gemini-CLI<\/code>\u00a0\u4e3a 80 \u5206\uff0c\u90a3\u4e48\u7531\u00a0<code>DeepSeek<\/code>\u00a0\u9a71\u52a8\u7684\u00a0<code>Gen-CLI<\/code>\u00a0\u76ee\u524d\u53ef\u4ee5\u8fbe\u5230 70 \u5206\u7684\u6c34\u5e73\u3002\u5b83\u5df2\u7ecf\u80fd\u591f\u80dc\u4efb\u8bb8\u591a\u590d\u6742\u7684\u4efb\u52a1\uff0c\u867d\u7136\u5728\u5de5\u5177\u8c03\u7528\u7684\u7a33\u5b9a\u6027\u548c\u4ea4\u4e92\u6d41\u7545\u6027\u4e0a\u8fd8\u6709\u63d0\u5347\u7a7a\u95f4\uff0c\u4f46\u968f\u7740\u6a21\u578b\u548c CLI \u5de5\u5177\u94fe\u7684\u4e0d\u65ad\u8fed\u4ee3\uff0c\u5176\u672a\u6765\u8868\u73b0\u503c\u5f97\u671f\u5f85\u3002<\/p>\n<p><code>Gen-CLI<\/code>\u00a0\u9879\u76ee\u5df2\u5728\u00a0GitHub\u00a0\u5f00\u6e90\uff0c\u5e76\u8ba1\u5212\u5728\u672a\u6765\u652f\u6301\u66f4\u591a\u6a21\u578b\u3002\u6b22\u8fce\u611f\u5174\u8da3\u7684\u7528\u6237\u548c\u5f00\u53d1\u8005\u53c2\u4e0e\u8d21\u732e\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI \u667a\u80fd\u4f53\uff08Agent\uff09\u6b63\u5728\u4ece\u4e91\u7aef\u8d70\u5411\u5f00\u53d1\u8005\u7684\u672c\u5730\u7ec8\u7aef\u3002\u4e0e\u57fa\u4e8e\u56fe\u5f62\u7528\u6237\u754c\u9762\uff08GUI\uff09\u7684\u667a\u80fd\u4f53\u76f8\u6bd4\uff0c\u547d\u4ee4\u884c\uff08CLI\uff09\u667a\u80fd\u4f53\u80fd\u66f4\u6df1\u5165\u5730\u96c6\u6210\u5230\u5f00\u53d1\u5de5\u4f5c\u6d41\u4e2d\uff0c\u901a\u8fc7\u811a\u672c\u5b9e\u73b0\u590d\u6742\u4efb\u52a1\u7684\u81ea\u52a8\u5316\uff0c\u5e76\u80fd\u76f4\u63a5\u64cd\u4f5c\u672c\u5730\u6587\u4ef6\u548c\u4ee3\u7801\u5e93\u3002 \u50cf\u00a0Claude Code&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[182],"tags":[],"class_list":["post-32191","post","type-post","status-publish","format-standard","hentry","category-shicao"],"_links":{"self":[{"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/posts\/32191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/comments?post=32191"}],"version-history":[{"count":0,"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/posts\/32191\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/media?parent=32191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/categories?post=32191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kdjingpai.com\/ja\/wp-json\/wp\/v2\/tags?post=32191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}