Download src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 8.96 kB
-
https://huggingface.co/chenbhao/codev/resolve/e91c8197c9918ff9e5df3140e8c36282bb30e9a2/src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts
- Command line
-
hf download hf://chenbhao/codev@e91c8197c9918ff9e5df3140e8c36282bb30e9a2/src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts
-
curl -L -o claudeCodeGuideAgent.ts https://huggingface.co/chenbhao/codev/resolve/e91c8197c9918ff9e5df3140e8c36282bb30e9a2/src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts
8.96 kB
| import { BASH_TOOL_NAME } from 'src/tools/BashTool/toolName.js' | |
| import { FILE_READ_TOOL_NAME } from 'src/tools/FileReadTool/prompt.js' | |
| import { GLOB_TOOL_NAME } from 'src/tools/GlobTool/prompt.js' | |
| import { GREP_TOOL_NAME } from 'src/tools/GrepTool/prompt.js' | |
| import { SEND_MESSAGE_TOOL_NAME } from 'src/tools/SendMessageTool/constants.js' | |
| import { WEB_FETCH_TOOL_NAME } from 'src/tools/WebFetchTool/prompt.js' | |
| import { WEB_SEARCH_TOOL_NAME } from 'src/tools/WebSearchTool/prompt.js' | |
| import { isUsing3PServices } from 'src/utils/auth.js' | |
| import { hasEmbeddedSearchTools } from 'src/utils/embeddedTools.js' | |
| import { getSettings_DEPRECATED } from 'src/utils/settings/settings.js' | |
| import { jsonStringify } from '../../../utils/slowOperations.js' | |
| import type { | |
| AgentDefinition, | |
| BuiltInAgentDefinition, | |
| } from '../loadAgentsDir.js' | |
| const CLAUDE_CODE_DOCS_MAP_URL = | |
| 'https://code.claude.com/docs/en/claude_code_docs_map.md' | |
| const CDP_DOCS_MAP_URL = 'https://platform.claude.com/llms.txt' | |
| export const CLAUDE_CODE_GUIDE_AGENT_TYPE = 'claude-code-guide' | |
| function getClaudeCodeGuideBasePrompt(): string { | |
| // Ant-native builds alias find/grep to embedded bfs/ugrep and remove the | |
| // dedicated Glob/Grep tools, so point at find/grep instead. | |
| const localSearchHint = hasEmbeddedSearchTools() | |
| ? `${FILE_READ_TOOL_NAME}, \`find\`, and \`grep\`` | |
| : `${FILE_READ_TOOL_NAME}, ${GLOB_TOOL_NAME}, and ${GREP_TOOL_NAME}` | |
| return `You are the Claude guide agent. Your primary responsibility is helping users understand and use Claude Code, the Claude Agent SDK, and the Claude API (formerly the Anthropic API) effectively. | |
| **Your expertise spans three domains:** | |
| 1. **Claude Code** (the CLI tool): Installation, configuration, hooks, skills, MCP servers, keyboard shortcuts, IDE integrations, settings, and workflows. | |
| 2. **Claude Agent SDK**: A framework for building custom AI agents based on Claude Code technology. Available for Node.js/TypeScript and Python. | |
| 3. **Claude API**: The Claude API (formerly known as the Anthropic API) for direct model interaction, tool use, and integrations. | |
| **Documentation sources:** | |
| - **Claude Code docs** (${CLAUDE_CODE_DOCS_MAP_URL}): Fetch this for questions about the Claude Code CLI tool, including: | |
| - Installation, setup, and getting started | |
| - Hooks (pre/post command execution) | |
| - Custom skills | |
| - MCP server configuration | |
| - IDE integrations (VS Code, JetBrains) | |
| - Settings files and configuration | |
| - Keyboard shortcuts and hotkeys | |
| - Subagents and plugins | |
| - Sandboxing and security | |
| - **Claude Agent SDK docs** (${CDP_DOCS_MAP_URL}): Fetch this for questions about building agents with the SDK, including: | |
| - SDK overview and getting started (Python and TypeScript) | |
| - Agent configuration + custom tools | |
| - Session management and permissions | |
| - MCP integration in agents | |
| - Hosting and deployment | |
| - Cost tracking and context management | |
| Note: Agent SDK docs are part of the Claude API documentation at the same URL. | |
| - **Claude API docs** (${CDP_DOCS_MAP_URL}): Fetch this for questions about the Claude API (formerly the Anthropic API), including: | |
| - Messages API and streaming | |
| - Tool use (function calling) and Anthropic-defined tools (computer use, code execution, web search, text editor, bash, programmatic tool calling, tool search tool, context editing, Files API, structured outputs) | |
| - Vision, PDF support, and citations | |
| - Extended thinking and structured outputs | |
| - MCP connector for remote MCP servers | |
| - Cloud provider integrations (Bedrock, Vertex AI, Foundry) | |
| **Approach:** | |
| 1. Determine which domain the user's question falls into | |
| 2. Use ${WEB_FETCH_TOOL_NAME} to fetch the appropriate docs map | |
| 3. Identify the most relevant documentation URLs from the map | |
| 4. Fetch the specific documentation pages | |
| 5. Provide clear, actionable guidance based on official documentation | |
| 6. Use ${WEB_SEARCH_TOOL_NAME} if docs don't cover the topic | |
| 7. Reference local project files (CLAUDE.md, .claude/ directory) when relevant using ${localSearchHint} | |
| **Guidelines:** | |
| - Always prioritize official documentation over assumptions | |
| - Keep responses concise and actionable | |
| - Include specific examples or code snippets when helpful | |
| - Reference exact documentation URLs in your responses | |
| - Help users discover features by proactively suggesting related commands, shortcuts, or capabilities | |
| Complete the user's request by providing accurate, documentation-based guidance.` | |
| } | |
| function getFeedbackGuideline(): string { | |
| // For 3P services (Bedrock/Vertex/Foundry), /feedback command is disabled | |
| // Direct users to the appropriate feedback channel instead | |
| if (isUsing3PServices()) { | |
| return `- When you cannot find an answer or the feature doesn't exist, direct the user to ${MACRO.ISSUES_EXPLAINER}` | |
| } | |
| return "- When you cannot find an answer or the feature doesn't exist, direct the user to use /feedback to report a feature request or bug" | |
| } | |
| export const CLAUDE_CODE_GUIDE_AGENT: BuiltInAgentDefinition = { | |
| agentType: CLAUDE_CODE_GUIDE_AGENT_TYPE, | |
| whenToUse: `Use this agent when the user asks questions ("Can Claude...", "Does Claude...", "How do I...") about: (1) Claude Code (the CLI tool) - features, hooks, slash commands, MCP servers, settings, IDE integrations, keyboard shortcuts; (2) Claude Agent SDK - building custom agents; (3) Claude API (formerly Anthropic API) - API usage, tool use, Anthropic SDK usage. **IMPORTANT:** Before spawning a new agent, check if there is already a running or recently completed claude-code-guide agent that you can continue via ${SEND_MESSAGE_TOOL_NAME}.`, | |
| // Ant-native builds: Glob/Grep tools are removed; use Bash (with embedded | |
| // bfs/ugrep via find/grep aliases) for local file search instead. | |
| tools: hasEmbeddedSearchTools() | |
| ? [ | |
| BASH_TOOL_NAME, | |
| FILE_READ_TOOL_NAME, | |
| WEB_FETCH_TOOL_NAME, | |
| WEB_SEARCH_TOOL_NAME, | |
| ] | |
| : [ | |
| GLOB_TOOL_NAME, | |
| GREP_TOOL_NAME, | |
| FILE_READ_TOOL_NAME, | |
| WEB_FETCH_TOOL_NAME, | |
| WEB_SEARCH_TOOL_NAME, | |
| ], | |
| source: 'built-in', | |
| baseDir: 'built-in', | |
| model: 'haiku', | |
| permissionMode: 'dontAsk', | |
| getSystemPrompt({ toolUseContext }) { | |
| const commands = toolUseContext.options.commands | |
| // Build context sections | |
| const contextSections: string[] = [] | |
| // 1. Custom skills | |
| const customCommands = commands.filter(cmd => cmd.type === 'prompt') | |
| if (customCommands.length > 0) { | |
| const commandList = customCommands | |
| .map(cmd => `- /${cmd.name}: ${cmd.description}`) | |
| .join('\n') | |
| contextSections.push( | |
| `**Available custom skills in this project:**\n${commandList}`, | |
| ) | |
| } | |
| // 2. Custom agents from .claude/agents/ | |
| const customAgents = | |
| toolUseContext.options.agentDefinitions.activeAgents.filter( | |
| (a: AgentDefinition) => a.source !== 'built-in', | |
| ) | |
| if (customAgents.length > 0) { | |
| const agentList = customAgents | |
| .map((a: AgentDefinition) => `- ${a.agentType}: ${a.whenToUse}`) | |
| .join('\n') | |
| contextSections.push( | |
| `**Available custom agents configured:**\n${agentList}`, | |
| ) | |
| } | |
| // 3. MCP servers | |
| const mcpClients = toolUseContext.options.mcpClients | |
| if (mcpClients && mcpClients.length > 0) { | |
| const mcpList = mcpClients | |
| .map((client: { name: string }) => `- ${client.name}`) | |
| .join('\n') | |
| contextSections.push(`**Configured MCP servers:**\n${mcpList}`) | |
| } | |
| // 4. Plugin commands | |
| const pluginCommands = commands.filter( | |
| cmd => cmd.type === 'prompt' && cmd.source === 'plugin', | |
| ) | |
| if (pluginCommands.length > 0) { | |
| const pluginList = pluginCommands | |
| .map(cmd => `- /${cmd.name}: ${cmd.description}`) | |
| .join('\n') | |
| contextSections.push(`**Available plugin skills:**\n${pluginList}`) | |
| } | |
| // 5. User settings | |
| const settings = getSettings_DEPRECATED() | |
| if (Object.keys(settings).length > 0) { | |
| // eslint-disable-next-line no-restricted-syntax -- human-facing UI, not tool_result | |
| const settingsJson = jsonStringify(settings, null, 2) | |
| contextSections.push( | |
| `**User's settings.json:**\n\`\`\`json\n${settingsJson}\n\`\`\``, | |
| ) | |
| } | |
| // Add the feedback guideline (conditional based on whether user is using 3P services) | |
| const feedbackGuideline = getFeedbackGuideline() | |
| const basePromptWithFeedback = `${getClaudeCodeGuideBasePrompt()} | |
| ${feedbackGuideline}` | |
| // If we have any context to add, append it to the base system prompt | |
| if (contextSections.length > 0) { | |
| return `${basePromptWithFeedback} | |
| --- | |
| # User's Current Configuration | |
| The user has the following custom setup in their environment: | |
| ${contextSections.join('\n\n')} | |
| When answering questions, consider these configured features and proactively suggest them when relevant.` | |
| } | |
| // Return the base prompt if no context to add | |
| return basePromptWithFeedback | |
| }, | |
| } | |