[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-probelabs--probe":3,"tool-probelabs--probe":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":119,"forks":120,"last_commit_at":121,"license":122,"difficulty_score":42,"env_os":123,"env_gpu":124,"env_ram":123,"env_deps":125,"category_tags":134,"github_topics":135,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":147,"updated_at":148,"faqs":149,"releases":173},8707,"probelabs\u002Fprobe","probe","AI-friendly semantic code search engine for large codebases. Combines ripgrep speed with tree-sitter AST parsing. Powers AI coding assistants with precise, context-aware code understanding.","Probe 是一款专为大型代码库设计的语义代码搜索引擎，旨在成为 AI 编程助手的强大后盾。它巧妙结合了 ripgrep 的极速搜索能力与 tree-sitter 的抽象语法树（AST）解析技术，让机器能像开发者一样“理解”代码结构，而非仅仅匹配文本行。\n\n当前许多 AI 工具在处理复杂项目时，往往依赖简单的文本抓取或耗时的向量索引，导致返回的代码片段支离破碎或缺乏上下文。Probe 解决了这一痛点，它无需预先建立索引或调用外部嵌入模型，即可零配置启动。通过 AST 感知技术，Probe 能精准定位并返回完整的函数、类等语义块，确保 AI 获得的上下文连贯且有意义。其独特的布尔查询语言配合大模型的意图翻译能力，能以极低的延迟提供高准确度结果，大幅减少 AI 代理的无效循环。\n\n这款工具特别适合需要在企业级代码库中进行深度阅读、代码审查、规范驱动开发或快速上手的开发者及研究团队。无论是集成到 Claude Code 等智能助手，还是通过命令行直接使用，Probe 都能帮助用户在海量代码中迅速锁定关键逻辑，将原本需要多次试探的搜索过程简化为一次精准的调用，显著提升研发效率。","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fprobelabs_probe_readme_3e9c93f8cb4f.png\" alt=\"Probe Logo\" width=\"400\">\n\u003C\u002Fp>\n\n# Probe\n\n**We read code 10x more than we write it.** Probe is a code and markdown context engine, with a built-in agent, made to work on enterprise-scale codebases.\n\nToday's AI coding tools use a caveman approach: grep some files, read random lines, hope for the best. It works on toy projects. It falls apart on real codebases.\n\n**Probe is a context engine built for reading and reasoning.** It treats your code as code—not text. AST parsing understands structure. Semantic search finds what matters. You get complete, meaningful context in a single call.\n\n**The Probe Agent** is purpose-built for code understanding. It knows how to wield the Probe engine expertly—searching, extracting, and reasoning across your entire codebase. Perfect for spec-driven development, code reviews, onboarding, and any task where understanding comes before writing.\n\n**One Probe call captures what takes other tools 10+ agentic loops**—deeper, cleaner, and far less noise.\n\n---\n\n## Table of Contents\n\n- [Why Probe?](#why-probe)\n- [Quick Start](#quick-start)\n- [Features](#features)\n- [Usage Modes](#usage-modes)\n  - [Probe Agent (MCP)](#probe-agent-mcp)\n  - [Raw MCP Tools](#raw-mcp-tools)\n  - [CLI Agent](#cli-agent)\n  - [Direct CLI Commands](#direct-cli-commands)\n  - [Node.js SDK](#nodejs-sdk)\n- [LLM Script](#llm-script)\n- [Installation](#installation)\n- [Supported Languages](#supported-languages)\n- [Documentation](#documentation)\n- [Environment Variables](#environment-variables)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Why Probe?\n\nMost code search tools fall into two camps: **text-based** (grep, ripgrep) or **embedding-based** (vector search requiring indexing and an embedding model). Probe takes a third path: **AST-aware structural search with zero setup**.\n\n| | grep\u002Fripgrep | Embedding tools (grepai, Octocode) | Probe |\n|---|---|---|---|\n| **Setup time** | None | Minutes (indexing + embedding service) | None |\n| **Code understanding** | Text only | Text chunks (can split mid-function) | AST-aware (returns complete functions\u002Fclasses) |\n| **Search method** | Regex | Vector similarity | Elasticsearch-style boolean queries + BM25 |\n| **Result quality** | Line fragments | ~512-char chunks | Complete semantic code blocks |\n| **Ranking** | None (line order) | Cosine similarity | BM25\u002FTF-IDF\u002FHybrid with SIMD acceleration |\n| **External dependencies** | None | Embedding API (Ollama\u002FOpenAI) | None |\n| **Token awareness** | No | Partial | Yes (`--max-tokens`, session dedup) |\n| **Works offline** | Yes | Only with local model | Always |\n| **AI agent integration** | None | MCP server | Full agent loop + MCP + Vercel AI SDK |\n\n### The key insight: AI agents don't need embedding search\n\nEmbedding-based tools solve vocabulary mismatch -- finding \"authentication\" when the code says `verify_credentials`. But when an AI agent is the consumer, **the LLM already handles this**:\n\n```\nUser: \"find the authentication logic\"\n  -> LLM generates: probe search \"verify_credentials OR authenticate OR login OR auth_handler\"\n  -> Probe returns complete AST blocks in milliseconds\n```\n\nThe LLM translates intent into precise boolean queries. Probe gives it a powerful query language (`AND`, `OR`, `+required`, `-excluded`, `\"exact phrases\"`, `ext:rs`, `lang:python`) purpose-built for this. Combined with session dedup, the agent can run 3-4 rapid searches and cover more ground than a single embedding query -- faster, deterministic, and with zero setup cost.\n\n---\n\n## Quick Start\n\n### Option 1: Probe Agent via MCP (Recommended)\n\nOur built-in agent natively integrates with Claude Code, using its authentication—no extra API keys needed.\n\nAdd to `~\u002F.claude\u002Fclaude_desktop_config.json`:\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"agent\", \"--mcp\"]\n    }\n  }\n}\n```\n\nThe Probe Agent is purpose-built to read and reason about code. It piggybacks on Claude Code's auth (or Codex auth), or works with any model via your own API key (e.g., `GOOGLE_API_KEY`).\n\n### Option 2: Raw Probe Tools via MCP\n\nIf you prefer direct access to search\u002Fquery\u002Fextract tools without the agent layer:\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"mcp\"]\n    }\n  }\n}\n```\n\n### Option 3: Direct CLI (No MCP)\n\nUse Probe directly from your terminal—no AI editor required:\n\n```bash\n# Semantic search with Elasticsearch syntax\nnpx -y @probelabs\u002Fprobe search \"authentication AND login\" .\u002Fsrc\n\n# Extract code block at line 42\nnpx -y @probelabs\u002Fprobe extract src\u002Fmain.rs:42\n\n# AST pattern matching\nnpx -y @probelabs\u002Fprobe query \"fn $NAME($$$) -> Result\u003C$RET>\" --language rust\n```\n\n### Option 4: CLI Agent\n\nAsk questions about any codebase directly from your terminal:\n\n```bash\n# One-shot question (works with any LLM provider)\nnpx -y @probelabs\u002Fprobe@latest agent \"How is authentication implemented?\"\n\n# With code editing capabilities\nnpx -y @probelabs\u002Fprobe@latest agent \"Refactor the login function\" --allow-edit\n```\n\n---\n\n## Features\n\n- **Code-Aware**: Tree-sitter AST parsing understands your code's actual structure\n- **Semantic Search**: Elasticsearch-style queries (`AND`, `OR`, `NOT`, phrases, filters)\n- **Complete Context**: Returns entire functions, classes, or structs -- not text chunks that break mid-function\n- **Zero Indexing**: Instant results on any codebase. No embedding models, no vector databases, no setup\n- **Deterministic**: Same query always returns the same results. No model variance, no stale indexes\n- **Fully Local**: Your code never leaves your machine. No API calls for search\n- **Blazing Fast**: SIMD-accelerated pattern matching + ripgrep scanning + rayon parallelism\n- **Smart Ranking**: BM25, TF-IDF, and hybrid algorithms with optional BERT reranking\n- **Token-Aware**: `--max-tokens` budget, session-based dedup to avoid repeating context\n- **Built-in Agent**: Multi-provider (Anthropic, OpenAI, Google, Bedrock) with retry, fallback, and context compaction\n- **Multi-Language**: Rust, Python, JavaScript, TypeScript, Go, C\u002FC++, Java, Ruby, PHP, Swift, C#, and more\n\n---\n\n## Usage Modes\n\n### Probe Agent (MCP)\n\nThe recommended way to use Probe with AI editors. The Probe Agent is a specialized coding assistant that reasons about your code—not just pattern matches.\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"agent\", \"--mcp\"]\n    }\n  }\n}\n```\n\n**Why use the agent?**\n- Purpose-built to understand and reason about code\n- Piggybacks on Claude Code \u002F Codex authentication (or use your own API key)\n- Smarter multi-step reasoning for complex questions\n- Built-in code editing, task delegation, and more\n\n**Agent options:**\n\n| Option | Description |\n|--------|-------------|\n| `--path \u003Cdir>` | Search directory (default: current) |\n| `--provider \u003Cname>` | AI provider: `anthropic`, `openai`, `google` |\n| `--model \u003Cname>` | Override model name |\n| `--prompt \u003Ctype>` | Persona: `code-explorer`, `engineer`, `code-review`, `architect` |\n| `--allow-edit` | Enable code modification |\n| `--enable-delegate` | Enable task delegation to subagents |\n| `--enable-bash` | Enable bash command execution |\n| `--max-iterations \u003Cn>` | Max tool iterations (default: 30) |\n\n---\n\n### Raw MCP Tools\n\nDirect access to Probe's search, query, and extract tools—without the agent layer. Use this when you want your AI editor to call Probe tools directly.\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"mcp\"]\n    }\n  }\n}\n```\n\n**Available tools:**\n- `search` - Semantic code search with Elasticsearch-style queries\n- `query` - AST-based structural pattern matching\n- `extract` - Extract code blocks by line number or symbol name\n- `symbols` - List all symbols in a file (functions, classes, constants) with line numbers\n\n---\n\n### CLI Agent\n\nRun the Probe Agent directly from your terminal:\n\n```bash\n# One-shot question\nnpx -y @probelabs\u002Fprobe@latest agent \"How does the ranking algorithm work?\"\n\n# Specify search path\nnpx -y @probelabs\u002Fprobe@latest agent \"Find API endpoints\" --path .\u002Fsrc\n\n# Enable code editing\nnpx -y @probelabs\u002Fprobe@latest agent \"Add error handling to login()\" --allow-edit\n\n# Use custom persona\nnpx -y @probelabs\u002Fprobe@latest agent \"Review this code\" --prompt code-review\n```\n\n---\n\n### Direct CLI Commands\n\nFor scripting and direct code analysis.\n\n#### Search Command\n\n```bash\nprobe search \u003CPATTERN> [PATH] [OPTIONS]\n```\n\n**Examples:**\n```bash\n# Basic search\nprobe search \"authentication\" .\u002Fsrc\n\n# Boolean operators (Elasticsearch syntax)\nprobe search \"error AND handling\" .\u002F\nprobe search \"login OR auth\" .\u002Fsrc\nprobe search \"database NOT sqlite\" .\u002F\n\n# Search hints (file filters)\nprobe search \"function AND ext:rs\" .\u002F           # Only .rs files\nprobe search \"class AND file:src\u002F**\u002F*.py\" .\u002F    # Python files in src\u002F\nprobe search \"error AND dir:tests\" .\u002F           # Files in tests\u002F\n\n# Limit results for AI context windows\nprobe search \"API\" .\u002F --max-tokens 10000\n```\n\n**Key options:**\n\n| Option | Description |\n|--------|-------------|\n| `--max-tokens \u003Cn>` | Limit total tokens returned |\n| `--max-results \u003Cn>` | Limit number of results |\n| `--reranker \u003Calgo>` | Ranking: `bm25`, `tfidf`, `hybrid`, `hybrid2` |\n| `--allow-tests` | Include test files |\n| `--format \u003Cfmt>` | Output: `markdown`, `json`, `xml` |\n\n#### Extract Command\n\n```bash\nprobe extract \u003CFILES> [OPTIONS]\n```\n\n**Examples:**\n```bash\n# Extract function at line 42\nprobe extract src\u002Fmain.rs:42\n\n# Extract by symbol name\nprobe extract src\u002Fmain.rs#authenticate\n\n# Extract line range\nprobe extract src\u002Fmain.rs:10-50\n\n# From compiler output\ngo test | probe extract\n```\n\n#### Symbols Command\n\n```bash\nprobe symbols \u003CFILES> [OPTIONS]\n```\n\n**Examples:**\n```bash\n# List symbols in a file\nprobe symbols src\u002Fmain.rs\n\n# JSON output for programmatic use\nprobe symbols src\u002Fmain.rs --format json\n\n# Multiple files\nprobe symbols src\u002Fmain.rs src\u002Flib.rs\n```\n\n#### Query Command (AST Patterns)\n\n```bash\nprobe query \u003CPATTERN> [PATH] [OPTIONS]\n```\n\n**Examples:**\n```bash\n# Find all async functions in Rust\nprobe query \"async fn $NAME($$$)\" --language rust\n\n# Find React components\nprobe query \"function $NAME($$$) { return \u003C$$$> }\" --language javascript\n\n# Find Python classes with specific method\nprobe query \"class $CLASS: def __init__($$$)\" --language python\n```\n\n---\n\n### Node.js SDK\n\nUse Probe programmatically in your applications.\n\n```javascript\nimport { ProbeAgent } from '@probelabs\u002Fprobe\u002Fagent';\n\n\u002F\u002F Create agent\nconst agent = new ProbeAgent({\n  path: '.\u002Fsrc',\n  provider: 'anthropic'\n});\n\nawait agent.initialize();\n\n\u002F\u002F Ask questions\nconst response = await agent.answer('How does authentication work?');\nconsole.log(response);\n\n\u002F\u002F Get token usage\nconsole.log(agent.getTokenUsage());\n```\n\n**Direct functions:**\n\n```javascript\nimport { search, extract, query, symbols } from '@probelabs\u002Fprobe';\n\n\u002F\u002F Semantic search\nconst results = await search({\n  query: 'authentication',\n  path: '.\u002Fsrc',\n  maxTokens: 10000\n});\n\n\u002F\u002F Extract code\nconst code = await extract({\n  files: ['src\u002Fauth.ts:42'],\n  format: 'markdown'\n});\n\n\u002F\u002F List symbols in a file\nconst fileSymbols = await symbols({\n  files: ['src\u002Fauth.ts']\n});\n\n\u002F\u002F AST pattern query\nconst matches = await query({\n  pattern: 'async function $NAME($$$)',\n  path: '.\u002Fsrc',\n  language: 'typescript'\n});\n```\n\n**Vercel AI SDK integration:**\n\n```javascript\nimport { tools } from '@probelabs\u002Fprobe';\n\nconst { searchTool, queryTool, extractTool } = tools;\n\n\u002F\u002F Use with Vercel AI SDK\nconst result = await generateText({\n  model: anthropic('claude-sonnet-4-6'),\n  tools: {\n    search: searchTool({ defaultPath: '.\u002Fsrc' }),\n    query: queryTool({ defaultPath: '.\u002Fsrc' }),\n    extract: extractTool({ defaultPath: '.\u002Fsrc' })\n  },\n  prompt: 'Find authentication code'\n});\n```\n\n---\n\n## LLM Script\n\nProbe Agent can use the `execute_plan` tool to run deterministic, multi-step code analysis tasks. LLM Script is a sandboxed JavaScript DSL where the AI generates executable plans combining search, extraction, and LLM reasoning in a single pipeline.\n\n```javascript\n\u002F\u002F AI-generated LLM Script example (await is auto-injected, don't write it)\nconst files = search(\"authentication login\")\nconst chunks = chunk(files)\nconst analysis = map(chunks, c => LLM(\"Summarize auth patterns\", c))\nreturn analysis.join(\"\\n\")\n```\n\n**Key features:**\n- **Agent integration** - Probe Agent calls `execute_plan` tool to run scripts\n- **Auto-await** - Async calls are automatically awaited (don't write `await`)\n- **All tools available** - `search()`, `query()`, `extract()`, `LLM()`, `map()`, `chunk()`, plus any MCP tools\n- **Sandboxed execution** - Safe, isolated JavaScript environment with timeout protection\n\nSee the full [LLM Script Documentation](.\u002Fdocs\u002Fllm-script.md) for syntax and examples.\n\n---\n\n## Installation\n\n### NPM (Recommended)\n\n```bash\nnpm install -g @probelabs\u002Fprobe\n```\n\n### curl (macOS\u002FLinux)\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fprobelabs\u002Fprobe\u002Fmain\u002Finstall.sh | bash\n```\n\n### PowerShell (Windows)\n\n```powershell\niwr -useb https:\u002F\u002Fraw.githubusercontent.com\u002Fprobelabs\u002Fprobe\u002Fmain\u002Finstall.ps1 | iex\n```\n\n### From Source\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe.git\ncd probe\ncargo build --release\ncargo install --path .\n```\n\n---\n\n## Supported Languages\n\n| Language | Extensions |\n|----------|------------|\n| Rust | `.rs` |\n| JavaScript\u002FJSX | `.js`, `.jsx` |\n| TypeScript\u002FTSX | `.ts`, `.tsx` |\n| Python | `.py` |\n| Go | `.go` |\n| C\u002FC++ | `.c`, `.h`, `.cpp`, `.cc`, `.hpp` |\n| Java | `.java` |\n| Ruby | `.rb` |\n| PHP | `.php` |\n| Swift | `.swift` |\n| C# | `.cs` |\n| Markdown | `.md` |\n\n---\n\n## Documentation\n\nFull documentation available at [probelabs.com\u002Fprobe](https:\u002F\u002Fprobelabs.com\u002Fprobe) or browse locally in [`docs\u002F`](.\u002Fdocs\u002F).\n\n### Getting Started\n- [Quick Start](.\u002Fdocs\u002Fquick-start.md) - Get up and running in 5 minutes\n- [Installation](.\u002Fdocs\u002Finstallation.md) - NPM, curl, Docker, and building from source\n- [Features Overview](.\u002Fdocs\u002Ffeatures.md) - Core capabilities\n\n### Probe CLI\n- [Search Command](.\u002Fdocs\u002Fprobe-cli\u002Fsearch.md) - Elasticsearch-style semantic search\n- [Extract Command](.\u002Fdocs\u002Fprobe-cli\u002Fextract.md) - Extract code blocks with full AST context\n- [Symbols Command](.\u002Fdocs\u002Fprobe-cli\u002Fsymbols.md) - List all symbols in files with line numbers\n- [Query Command](.\u002Fdocs\u002Fprobe-cli\u002Fquery.md) - AST-based structural pattern matching\n- [CLI Reference](.\u002Fdocs\u002Fprobe-cli\u002Fcli-reference.md) - Complete command-line reference\n\n### LSP & Indexing\n- [LSP Features](.\u002Fdocs\u002Flsp-features.md) - What `--lsp` adds for semantic code intelligence\n- [LSP Quick Reference](.\u002Fdocs\u002Flsp-quick-reference.md) - Day-to-day LSP command cheatsheet\n- [Indexing Overview](.\u002Fdocs\u002Findexing-overview.md) - Project indexing concepts and workflow\n- [Indexing CLI Reference](.\u002Fdocs\u002Findexing-cli-reference.md) - `probe lsp index*` command reference\n\nLSP capabilities include call hierarchy enrichment (`extract --lsp`), direct symbol operations (`probe lsp call definition|references|hover|...`), daemon diagnostics (`probe lsp logs --analyze`), and workspace indexing (`probe lsp index`, `probe lsp index-status`).\n\n### Probe Agent\n- [Agent Overview](.\u002Fdocs\u002Fprobe-agent\u002Foverview.md) - What is Probe Agent and when to use it\n- [API Reference](.\u002Fdocs\u002Fprobe-agent\u002Fsdk\u002Fapi-reference.md) - ProbeAgent class documentation\n- [Node.js SDK](.\u002Fdocs\u002Fprobe-agent\u002Fsdk\u002Fnodejs-sdk.md) - Full Node.js SDK reference\n- [MCP Integration](.\u002Fdocs\u002Fprobe-agent\u002Fprotocols\u002Fmcp-integration.md) - Editor integration guide\n- [LLM Script](.\u002Fdocs\u002Fllm-script.md) - Programmable orchestration DSL\n\n### Guides & Reference\n- [Query Patterns](.\u002Fdocs\u002Fguides\u002Fquery-patterns.md) - Effective search strategies\n- [How Probe Compares](.\u002Fdocs\u002Freference\u002Fcomparison.md) - vs embedding search, knowledge graphs, LSP tools\n- [Architecture](.\u002Fdocs\u002Freference\u002Farchitecture.md) - System design and internals\n- [Environment Variables](.\u002Fdocs\u002Freference\u002Fenvironment-variables.md) - All configuration options\n- [FAQ](.\u002Fdocs\u002Freference\u002Ffaq.md) - Frequently asked questions\n\n---\n\n## Environment Variables\n\n```bash\n# AI Provider Keys\nANTHROPIC_API_KEY=sk-ant-...\nOPENAI_API_KEY=sk-...\nGOOGLE_API_KEY=...\n\n# Provider Selection\nFORCE_PROVIDER=anthropic\nMODEL_NAME=claude-sonnet-4-6\n\n# Custom Endpoints\nANTHROPIC_API_URL=https:\u002F\u002Fyour-proxy.com\nOPENAI_API_URL=https:\u002F\u002Fyour-proxy.com\n\n# Debug\nDEBUG=1\n```\n\n---\n\n## Contributing\n\nWe welcome contributions! See our [Contributing Guide](https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fblob\u002Fmain\u002FCONTRIBUTING.md).\n\nFor questions or support:\n- [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues)\n- [Discord Community](https:\u002F\u002Fdiscord.gg\u002FhBN4UsTZ)\n\n---\n\n## License\n\n---\n\nFor questions or contributions, please open an issue on [GitHub](https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues) or join our [Discord community](https:\u002F\u002Fdiscord.gg\u002FhBN4UsTZ) for discussions and support. Happy coding—and searching!\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fprobelabs_probe_readme_3e9c93f8cb4f.png\" alt=\"Probe Logo\" width=\"400\">\n\u003C\u002Fp>\n\n# Probe\n\n**我们阅读代码的频率是编写代码的10倍。** Probe是一款代码与Markdown上下文引擎，内置代理，专为企业级代码库设计。\n\n如今的AI编码工具大多采用“原始人式”的方法：用grep搜索一些文件，随机读取几行，然后寄希望于运气。这种方法在小型项目中或许奏效，但在真正的大型代码库面前却显得力不从心。\n\n**Probe则是一款专为阅读和推理而打造的上下文引擎。** 它将你的代码视为代码，而非文本。通过AST解析理解代码结构；语义搜索精准定位关键内容。只需一次调用，你就能获得完整且有意义的上下文信息。\n\n**Probe代理**专为代码理解而设计。它精通如何使用Probe引擎，在整个代码库中进行搜索、提取和推理。无论是基于规范的开发、代码审查、新员工入职，还是任何需要先理解后编写的任务，Probe代理都能完美胜任。\n\n**相比之下，其他工具往往需要10次以上的代理循环才能完成同样的工作，而Probe只需一次调用——更深入、更干净，且噪音更少。**\n\n---\n\n## 目录\n\n- [为什么选择Probe？](#why-probe)\n- [快速入门](#quick-start)\n- [功能特性](#features)\n- [使用模式](#usage-modes)\n  - [Probe代理（MCP）](#probe-agent-mcp)\n  - [原生MCP工具](#raw-mcp-tools)\n  - [CLI代理](#cli-agent)\n  - [直接CLI命令](#direct-cli-commands)\n  - [Node.js SDK](#nodejs-sdk)\n- [LLM脚本](#llm-script)\n- [安装指南](#installation)\n- [支持的语言](#supported-languages)\n- [文档](#documentation)\n- [环境变量](#environment-variables)\n- [贡献指南](#contributing)\n- [许可证](#license)\n\n---\n\n## 为什么选择Probe？\n\n大多数代码搜索工具无外乎两类：**基于文本的**（如grep、ripgrep）或**基于嵌入的**（如需要索引和嵌入模型的向量搜索）。而Probe则走出了第三条路：**无需任何配置的AST感知型结构化搜索**。\n\n| | grep\u002Fripgrep | 嵌入式工具（grepai、Octocode） | Probe |\n|---|---|---|---|\n| **设置时间** | 无 | 几分钟（索引+嵌入服务） | 无 |\n| **代码理解能力** | 仅文本 | 文本片段（可能截断函数中间部分） | AST感知（返回完整的函数\u002F类） |\n| **搜索方式** | 正则表达式 | 向量相似度 | Elasticsearch风格的布尔查询 + BM25 |\n| **结果质量** | 行片段 | ~512字符的文本块 | 完整的语义代码块 |\n| **排序机制** | 无（按行顺序） | 余弦相似度 | BM25\u002FTF-IDF\u002F混合算法，配备SIMD加速 |\n| **外部依赖** | 无 | 嵌入API（Ollama\u002FOpenAI） | 无 |\n| **Token意识** | 无 | 部分支持 | 支持（`--max-tokens`，会话去重） |\n| **离线可用性** | 是 | 仅限本地模型 | 始终可用 |\n| **AI代理集成** | 无 | MCP服务器 | 完整的代理流程 + MCP + Vercel AI SDK |\n\n### 关键洞察：AI代理并不需要嵌入式搜索\n\n基于嵌入的工具主要解决词汇不匹配的问题——比如用户输入“authentication”，而代码中却是`verify_credentials`。然而，当AI代理作为消费者时，**LLM本身已经能够处理这一问题**：\n\n```\n用户：“找到认证逻辑”\n  -> LLM生成：probe搜索 \"verify_credentials OR authenticate OR login OR auth_handler\"\n  -> Probe在毫秒级内返回完整的AST节点\n```\n\nLLM会将用户的意图转化为精确的布尔查询。Probe则提供了一套为此量身定制的强大查询语言（`AND`、`OR`、`+required`、`-excluded`、`\"exact phrases\"`、`ext:rs`、`lang:python等），结合会话去重功能，代理可以在短时间内执行3-4次快速搜索，覆盖的范围远超单次嵌入式查询——而且速度更快、结果确定，无需任何前期配置。\n\n---\n\n## 快速入门\n\n### 方法一：通过MCP使用Probe代理（推荐）\n\n我们的内置代理可与Claude Code原生集成，利用其身份验证机制，无需额外的API密钥。\n\n在`~\u002F.claude\u002Fclaude_desktop_config.json`中添加以下内容：\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"agent\", \"--mcp\"]\n    }\n  }\n}\n```\n\nProbe代理专为阅读和推理代码而设计。它可以借助Claude Code的身份验证（或Codex的身份验证），也可以通过你自己的API密钥与任何模型配合使用（例如`GOOGLE_API_KEY`）。\n\n### 方法二：通过MCP使用原生Probe工具\n\n如果你更倾向于直接访问搜索\u002F查询\u002F提取工具，而不经过代理层：\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"mcp\"]\n    }\n  }\n}\n```\n\n### 方法三：直接使用CLI（无需MCP）\n\n你可以直接在终端中使用Probe，无需任何AI编辑器：\n\n```bash\n# 使用Elasticsearch语法进行语义搜索\nnpx -y @probelabs\u002Fprobe search \"authentication AND login\" .\u002Fsrc\n\n# 提取第42行的代码块\nnpx -y @probelabs\u002Fprobe extract src\u002Fmain.rs:42\n\n# AST模式匹配\nnpx -y @probelabs\u002Fprobe query \"fn $NAME($$$) -> Result\u003C$RET>\" --language rust\n```\n\n### 方法四：CLI代理\n\n你可以在终端中直接提问关于任何代码库的问题：\n\n```bash\n# 一次性问答（适用于任何LLM提供商）\nnpx -y @probelabs\u002Fprobe@latest agent \"认证功能是如何实现的？\"\n\n# 具备代码编辑能力\nnpx -y @probelabs\u002Fprobe@latest agent \"重构登录函数\" --allow-edit\n```\n\n---\n\n## 功能特性\n\n- **代码感知**：Tree-sitter AST解析准确理解代码的实际结构\n- **语义搜索**：Elasticsearch风格的查询（`AND`、`OR`、`NOT`、短语、过滤条件）\n- **完整上下文**：返回完整的函数、类或结构体——而不是可能中断函数的文本片段\n- **无需索引**：对任何代码库即时响应。无需嵌入模型、向量数据库或任何配置\n- **确定性**：相同的查询始终返回相同的结果。没有模型差异，也没有过时的索引\n- **完全本地化**：你的代码永远不会离开你的设备。搜索过程中无需任何API调用\n- **极速运行**：SIMD加速的模式匹配 + ripgrep扫描 + rayon并行计算\n- **智能排序**：BM25、TF-IDF以及混合算法，并可选BERT重新排名\n- **Token意识**：支持`--max-tokens`预算和基于会话的去重，避免重复上下文\n- **内置代理**：支持多提供商（Anthropic、OpenAI、Google、Bedrock），具备重试、回退和上下文压缩功能\n- **多语言支持**：Rust、Python、JavaScript、TypeScript、Go、C\u002FC++、Java、Ruby、PHP、Swift、C#等\n\n---\n\n## 使用模式\n\n### Probe 代理（MCP）\n\n使用 Probe 结合 AI 编辑器的推荐方式。Probe 代理是一种专门的代码助手，它能够对你的代码进行推理——而不仅仅是模式匹配。\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"agent\", \"--mcp\"]\n    }\n  }\n}\n```\n\n**为什么使用代理？**\n- 专为理解和推理代码而设计\n- 借助 Claude Code \u002F Codex 的身份验证（或使用你自己的 API 密钥）\n- 针对复杂问题提供更智能的多步推理\n- 内置代码编辑、任务委派等功能\n\n**代理选项：**\n\n| 选项 | 描述 |\n|--------|-------------|\n| `--path \u003Cdir>` | 搜索目录（默认：当前目录） |\n| `--provider \u003Cname>` | AI 提供者：`anthropic`、`openai`、`google` |\n| `--model \u003Cname>` | 覆盖模型名称 |\n| `--prompt \u003Ctype>` | 角色设定：`code-explorer`、`engineer`、`code-review`、`architect` |\n| `--allow-edit` | 启用代码修改 |\n| `--enable-delegate` | 启用向子代理的任务委派 |\n| `--enable-bash` | 启用 Bash 命令执行 |\n| `--max-iterations \u003Cn>` | 最大工具迭代次数（默认：30） |\n\n---\n\n### 原生 MCP 工具\n\n直接访问 Probe 的搜索、查询和提取工具——无需代理层。当你希望你的 AI 编辑器直接调用 Probe 工具时，可以使用此方式。\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"mcp\"]\n    }\n  }\n}\n```\n\n**可用工具：**\n- `search` - 使用 Elasticsearch 风格查询的语义代码搜索\n- `query` - 基于 AST 的结构化模式匹配\n- `extract` - 按行号或符号名称提取代码块\n- `symbols` - 列出文件中的所有符号（函数、类、常量），并附带行号\n\n---\n\n### CLI 代理\n\n直接在终端运行 Probe 代理：\n\n```bash\n# 一次性提问\nnpx -y @probelabs\u002Fprobe@latest agent \"排名算法是如何工作的？\"\n\n# 指定搜索路径\nnpx -y @probelabs\u002Fprobe@latest agent \"查找 API 端点\" --path .\u002Fsrc\n\n# 启用代码编辑\nnpx -y @probelabs\u002Fprobe@latest agent \"为 login() 添加错误处理\" --allow-edit\n\n# 使用自定义角色\nnpx -y @probelabs\u002Fprobe@latest agent \"审查这段代码\" --prompt code-review\n```\n\n---\n\n### 直接 CLI 命令\n\n用于脚本编写和直接代码分析。\n\n#### 搜索命令\n\n```bash\nprobe search \u003CPATTERN> [PATH] [OPTIONS]\n```\n\n**示例：**\n```bash\n# 基本搜索\nprobe search \"authentication\" .\u002Fsrc\n\n# 布尔运算符（Elasticsearch 语法）\nprobe search \"error AND handling\" .\u002F\nprobe search \"login OR auth\" .\u002Fsrc\nprobe search \"database NOT sqlite\" .\u002F\n\n# 搜索提示（文件过滤）\nprobe search \"function AND ext:rs\" .\u002F           # 仅 .rs 文件\nprobe search \"class AND file:src\u002F**\u002F*.py\" .\u002F    # src\u002F 目录下的 Python 文件\nprobe search \"error AND dir:tests\" .\u002F           # tests\u002F 目录下的文件\n\n# 限制结果以适应 AI 上下文窗口\nprobe search \"API\" .\u002F --max-tokens 10000\n```\n\n**关键选项：**\n\n| 选项 | 描述 |\n|--------|-------------|\n| `--max-tokens \u003Cn>` | 限制返回的总 token 数 |\n| `--max-results \u003Cn>` | 限制结果数量 |\n| `--reranker \u003Calgo>` | 排序算法：`bm25`、`tfidf`、`hybrid`、`hybrid2` |\n| `--allow-tests` | 包含测试文件 |\n| `--format \u003Cfmt>` | 输出格式：`markdown`、`json`、`xml` |\n\n#### 抽取命令\n\n```bash\nprobe extract \u003CFILES> [OPTIONS]\n```\n\n**示例：**\n```bash\n# 提取第 42 行的函数\nprobe extract src\u002Fmain.rs:42\n\n# 按符号名称提取\nprobe extract src\u002Fmain.rs#authenticate\n\n# 提取行范围\nprobe extract src\u002Fmain.rs:10-50\n\n# 从编译器输出中提取\ngo test | probe extract\n```\n\n#### 符号命令\n\n```bash\nprobe symbols \u003CFILES> [OPTIONS]\n```\n\n**示例：**\n```bash\n# 列出文件中的符号\nprobe symbols src\u002Fmain.rs\n\n# JSON 格式输出，便于程序化使用\nprobe symbols src\u002Fmain.rs --format json\n\n# 多个文件\nprobe symbols src\u002Fmain.rs src\u002Flib.rs\n```\n\n#### 查询命令（AST 模式）\n\n```bash\nprobe query \u003CPATTERN> [PATH] [OPTIONS]\n```\n\n**示例：**\n```bash\n# 查找 Rust 中的所有异步函数\nprobe query \"async fn $NAME($$$)\" --language rust\n\n# 查找 React 组件\nprobe query \"function $NAME($$$) { return \u003C$$$> }\" --language javascript\n\n# 查找具有特定方法的 Python 类\nprobe query \"class $CLASS: def __init__($$$)\" --language python\n```\n\n---\n\n### Node.js SDK\n\n在你的应用程序中以编程方式使用 Probe。\n\n```javascript\nimport { ProbeAgent } from '@probelabs\u002Fprobe\u002Fagent';\n\n\u002F\u002F 创建代理\nconst agent = new ProbeAgent({\n  path: '.\u002Fsrc',\n  provider: 'anthropic'\n});\n\nawait agent.initialize();\n\n\u002F\u002F 提问\nconst response = await agent.answer('认证是如何工作的？');\nconsole.log(response);\n\n\u002F\u002F 获取 token 使用情况\nconsole.log(agent.getTokenUsage());\n```\n\n**直接函数：**\n\n```javascript\nimport { search, extract, query, symbols } from '@probelabs\u002Fprobe';\n\n\u002F\u002F 语义搜索\nconst results = await search({\n  query: 'authentication',\n  path: '.\u002Fsrc',\n  maxTokens: 10000\n});\n\n\u002F\u002F 提取代码\nconst code = await extract({\n  files: ['src\u002Fauth.ts:42'],\n  format: 'markdown'\n});\n\n\u002F\u002F 列出文件中的符号\nconst fileSymbols = await symbols({\n  files: ['src\u002Fauth.ts']\n});\n\n\u002F\u002F AST 模式查询\nconst matches = await query({\n  pattern: 'async function $NAME($$$)',\n  path: '.\u002Fsrc',\n  language: 'typescript'\n});\n```\n\n**Vercel AI SDK 集成：**\n\n```javascript\nimport { tools } from '@probelabs\u002Fprobe';\n\nconst { searchTool, queryTool, extractTool } = tools;\n\n\u002F\u002F 与 Vercel AI SDK 结合使用\nconst result = await generateText({\n  model: anthropic('claude-sonnet-4-6'),\n  tools: {\n    search: searchTool({ defaultPath: '.\u002Fsrc' }),\n    query: queryTool({ defaultPath: '.\u002Fsrc' }),\n    extract: extractTool({ defaultPath: '.\u002Fsrc' })\n  },\n  prompt: '查找认证代码'\n});\n```\n\n---\n\n## LLM 脚本\n\nProbe 代理可以使用 `execute_plan` 工具来运行确定性的多步代码分析任务。LLM 脚本是一个沙盒化的 JavaScript DSL，AI 可以在此生成可执行的计划，将搜索、提取和 LLM 推理结合在一个管道中。\n\n```javascript\n\u002F\u002F AI 生成的 LLM 脚本示例（await 会自动注入，无需手动编写）\nconst files = search(\"authentication login\")\nconst chunks = chunk(files)\nconst analysis = map(chunks, c => LLM(\"总结认证模式\", c))\nreturn analysis.join(\"\\n\")\n```\n\n**主要特性：**\n- **代理集成** - Probe 代理调用 `execute_plan` 工具来运行脚本\n- **自动 await** - 异步调用会自动等待（无需编写 `await`）\n- **所有工具可用** - `search()`、`query()`、`extract()`、`LLM()`、`map()`、`chunk()`，以及任何 MCP 工具\n- **沙盒执行** - 安全、隔离的 JavaScript 环境，并带有超时保护\n\n有关语法和示例，请参阅完整的 [LLM 脚本文档](.\u002Fdocs\u002Fllm-script.md)。\n\n---\n\n## 安装\n\n### NPM（推荐）\n\n```bash\nnpm install -g @probelabs\u002Fprobe\n```\n\n### curl（macOS\u002FLinux）\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fprobelabs\u002Fprobe\u002Fmain\u002Finstall.sh | bash\n```\n\n### PowerShell（Windows）\n\n```powershell\niwr -useb https:\u002F\u002Fraw.githubusercontent.com\u002Fprobelabs\u002Fprobe\u002Fmain\u002Finstall.ps1 | iex\n```\n\n### 从源码安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe.git\ncd probe\ncargo build --release\ncargo install --path .\n```\n\n---\n\n## 支持的语言\n\n| 语言 | 文件扩展名 |\n|----------|------------|\n| Rust | `.rs` |\n| JavaScript\u002FJSX | `.js`, `.jsx` |\n| TypeScript\u002FTSX | `.ts`, `.tsx` |\n| Python | `.py` |\n| Go | `.go` |\n| C\u002FC++ | `.c`, `.h`, `.cpp`, `.cc`, `.hpp` |\n| Java | `.java` |\n| Ruby | `.rb` |\n| PHP | `.php` |\n| Swift | `.swift` |\n| C# | `.cs` |\n| Markdown | `.md` |\n\n---\n\n## 文档\n\n完整文档可在 [probelabs.com\u002Fprobe](https:\u002F\u002Fprobelabs.com\u002Fprobe) 查看，或在本地 [`docs\u002F`](.\u002Fdocs\u002F) 目录中浏览。\n\n### 入门指南\n- [快速入门](.\u002Fdocs\u002Fquick-start.md) - 5 分钟内上手使用\n- [安装](.\u002Fdocs\u002Finstallation.md) - NPM、curl、Docker 以及从源码构建\n- [功能概览](.\u002Fdocs\u002Ffeatures.md) - 核心功能介绍\n\n### Probe CLI\n- [搜索命令](.\u002Fdocs\u002Fprobe-cli\u002Fsearch.md) - 类 Elasticsearch 风格的语义搜索\n- [提取命令](.\u002Fdocs\u002Fprobe-cli\u002Fextract.md) - 提取包含完整 AST 上下文的代码块\n- [符号命令](.\u002Fdocs\u002Fprobe-cli\u002Fsymbols.md) - 列出文件中的所有符号及其行号\n- [查询命令](.\u002Fdocs\u002Fprobe-cli\u002Fquery.md) - 基于 AST 的结构化模式匹配\n- [CLI 参考](.\u002Fdocs\u002Fprobe-cli\u002Fcli-reference.md) - 完整的命令行参考\n\n### LSP 与索引\n- [LSP 功能](.\u002Fdocs\u002Flsp-features.md) - `--lsp` 模式为语义代码智能带来的增强\n- [LSP 快速参考](.\u002Fdocs\u002Flsp-quick-reference.md) - 日常 LSP 命令速查表\n- [索引概述](.\u002Fdocs\u002Findexing-overview.md) - 项目索引的概念与工作流程\n- [索引 CLI 参考](.\u002Fdocs\u002Findexing-cli-reference.md) - `probe lsp index*` 命令参考\n\nLSP 功能包括调用层次结构增强（`extract --lsp`）、直接符号操作（`probe lsp call definition|references|hover|...`）、守护进程诊断（`probe lsp logs --analyze`）以及工作区索引（`probe lsp index`、`probe lsp index-status`）。\n\n### Probe Agent\n- [Agent 概述](.\u002Fdocs\u002Fprobe-agent\u002Foverview.md) - 什么是 Probe Agent 以及何时使用\n- [API 参考](.\u002Fdocs\u002Fprobe-agent\u002Fsdk\u002Fapi-reference.md) - ProbeAgent 类文档\n- [Node.js SDK](.\u002Fdocs\u002Fprobe-agent\u002Fsdk\u002Fnodejs-sdk.md) - 完整的 Node.js SDK 参考\n- [MCP 集成](.\u002Fdocs\u002Fprobe-agent\u002Fprotocols\u002Fmcp-integration.md) - 编辑器集成指南\n- [LLM 脚本](.\u002Fdocs\u002Fllm-script.md) - 可编程编排 DSL\n\n### 指南与参考\n- [查询模式](.\u002Fdocs\u002Fguides\u002Fquery-patterns.md) - 有效的搜索策略\n- [Probe 对比](.\u002Fdocs\u002Freference\u002Fcomparison.md) - 与嵌入式搜索、知识图谱、LSP 工具的对比\n- [架构](.\u002Fdocs\u002Freference\u002Farchitecture.md) - 系统设计与内部实现\n- [环境变量](.\u002Fdocs\u002Freference\u002Fenvironment-variables.md) - 所有配置选项\n- [常见问题](.\u002Fdocs\u002Freference\u002Ffaq.md) - 常见问题解答\n\n---\n\n## 环境变量\n\n```bash\n# AI 供应商密钥\nANTHROPIC_API_KEY=sk-ant-...\nOPENAI_API_KEY=sk-...\nGOOGLE_API_KEY=...\n\n# 供应商选择\nFORCE_PROVIDER=anthropic\nMODEL_NAME=claude-sonnet-4-6\n\n# 自定义端点\nANTHROPIC_API_URL=https:\u002F\u002Fyour-proxy.com\nOPENAI_API_URL=https:\u002F\u002Fyour-proxy.com\n\n# 调试\nDEBUG=1\n```\n\n---\n\n## 贡献\n\n我们欢迎各位贡献！请参阅我们的[贡献指南](https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)。\n\n如有任何问题或需要支持：\n- [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues)\n- [Discord 社区](https:\u002F\u002Fdiscord.gg\u002FhBN4UsTZ)\n\n---\n\n## 许可证\n\n---\n\n如有任何问题或想参与贡献，请在 [GitHub](https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues) 上提交 issue，或加入我们的 [Discord 社区](https:\u002F\u002Fdiscord.gg\u002FhBN4UsTZ) 进行讨论与支持。祝编码愉快——也祝搜索顺利！","# Probe 快速上手指南\n\nProbe 是一款专为大规模代码库设计的代码与 Markdown 上下文引擎。它基于 AST（抽象语法树）解析而非简单的文本匹配，能够理解代码结构，提供完整的函数、类或模块上下文，是 AI 编程助手的理想搭档。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS, 或 Windows (WSL 推荐)\n*   **Node.js**：版本 18.0 或更高（用于运行 `npx` 命令）\n*   **无需额外依赖**：Probe 无需配置向量数据库、嵌入模型或建立索引，开箱即用。\n*   **网络环境**：首次运行需下载 npm 包。若国内访问 npm 较慢，可临时设置镜像源：\n    ```bash\n    export NPM_CONFIG_REGISTRY=https:\u002F\u002Fregistry.npmmirror.com\n    ```\n\n## 安装步骤\n\nProbe 无需全局安装，推荐通过 `npx` 直接运行最新稳定版。\n\n### 方式一：直接在终端使用（推荐新手）\n无需修改配置文件，直接在命令行调用：\n```bash\nnpx -y @probelabs\u002Fprobe@latest --help\n```\n\n### 方式二：集成到 AI 编辑器 (MCP)\n若需在 **Claude Code** 或其他支持 MCP 的编辑器中使用 Probe Agent，请编辑配置文件 `~\u002F.claude\u002Fclaude_desktop_config.json` (Mac\u002FLinux) 或 `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows)，添加以下内容：\n\n```json\n{\n  \"mcpServers\": {\n    \"probe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probelabs\u002Fprobe@latest\", \"agent\", \"--mcp\"]\n    }\n  }\n}\n```\n*注：此配置将启用内置的 Probe Agent，它会自动复用编辑器的认证信息。*\n\n## 基本使用\n\n### 1. 语义搜索代码\n使用类似 Elasticsearch 的布尔语法搜索代码，返回完整的代码块而非碎片行。\n\n```bash\n# 搜索包含 \"authentication\" 和 \"login\" 的代码\nnpx -y @probelabs\u002Fprobe search \"authentication AND login\" .\u002Fsrc\n\n# 限定文件类型搜索 (仅 Rust 文件)\nnpx -y @probelabs\u002Fprobe search \"function AND ext:rs\" .\u002F\n\n# 限制输出 Token 数量以适应 AI 上下文窗口\nnpx -y @probelabs\u002Fprobe search \"API endpoint\" .\u002F --max-tokens 5000\n```\n\n### 2. 提取特定代码块\n根据行号或符号名称精准提取代码，保持结构完整。\n\n```bash\n# 提取 src\u002Fmain.rs 第 42 行所在的完整函数\nnpx -y @probelabs\u002Fprobe extract src\u002Fmain.rs:42\n\n# 通过符号名称提取 (如函数名 authenticate)\nnpx -y @probelabs\u002Fprobe extract src\u002Fauth.ts#authenticate\n```\n\n### 3. 启动 CLI 智能助手\n直接在终端向 Probe Agent 提问，让它分析整个代码库。\n\n```bash\n# 单轮问答：询问认证逻辑如何实现\nnpx -y @probelabs\u002Fprobe@latest agent \"How is authentication implemented?\"\n\n# 多轮交互并允许修改代码 (需谨慎使用)\nnpx -y @probelabs\u002Fprobe@latest agent \"Refactor the login function\" --allow-edit\n```\n\n### 4. AST 结构查询\n使用结构化模式匹配查找特定代码形态（如所有异步函数）。\n\n```bash\n# 查找 Rust 中所有的异步函数\nnpx -y @probelabs\u002Fprobe query \"async fn $NAME($$$)\" --language rust\n\n# 查找 React 函数组件\nnpx -y @probelabs\u002Fprobe query \"function $NAME($$$) { return \u003C$$$> }\" --language javascript\n```","某后端团队需要在拥有数百万行代码的遗留系统中，快速定位并重构分散在各处的“用户会话验证”逻辑，以修复一个严重的安全漏洞。\n\n### 没有 probe 时\n- **上下文支离破碎**：传统 grep 只能返回匹配的行片段，开发者无法直接看到完整的函数或类结构，必须手动翻阅周围代码来拼凑逻辑。\n- **语义匹配失效**：若代码中使用的是 `verify_credentials` 而非搜索词 `authentication`，基于文本的工具会直接漏掉关键文件，导致排查陷入僵局。\n- **AI 助手效率低下**：通用 AI 编程助手往往需要经历十几次“猜测 - 搜索 - 读取”的循环才能理清脉络，不仅耗时久，还容易产生大量无关噪音。\n- **环境配置繁琐**：引入基于向量嵌入（Embedding）的搜索方案通常需要漫长的索引构建时间和外部 API 依赖，无法在紧急故障中立即投入使用。\n\n### 使用 probe 后\n- **结构化完整返回**：probe 利用 AST 解析技术，直接返回完整的函数和类定义块，开发者一眼即可掌握核心逻辑，无需手动拼接上下文。\n- **智能语义转换**：借助内置 Agent，probe 能自动将“会话验证”意图转化为包含 `verify_credentials`、`auth_handler` 等变体的精准布尔查询，确保零遗漏。\n- **单次调用即洞察**：原本需要 AI 进行十多次迭代才能完成的任务，probe 仅需一次调用即可提供深度、干净且无噪音的全局视图，大幅缩短决策时间。\n- **零配置即时启动**：无需预建索引或连接外部服务，probe 开箱即用，支持离线运行，让团队在安全漏洞爆发的黄金时间内立即展开行动。\n\nprobe 通过将代码视为可理解的结构而非纯文本，让开发者在复杂的大型代码库中实现了从“盲目搜索”到“精准洞察”的质的飞跃。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fprobelabs_probe_3e9c93f8.png","probelabs","Probe","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fprobelabs_7d65c358.png","Next-gen context engineering for AI agents era",null,"hello@probelabs.com","buger","probelabs.com","https:\u002F\u002Fgithub.com\u002Fprobelabs",[83,87,91,95,99,103,106,110,113,116],{"name":84,"color":85,"percentage":86},"Rust","#dea584",72.8,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",26.3,{"name":92,"color":93,"percentage":94},"Shell","#89e051",0.5,{"name":96,"color":97,"percentage":98},"PowerShell","#012456",0.2,{"name":100,"color":101,"percentage":102},"Batchfile","#C1F12E",0.1,{"name":104,"color":105,"percentage":102},"Makefile","#427819",{"name":107,"color":108,"percentage":109},"Go","#00ADD8",0,{"name":111,"color":112,"percentage":109},"TypeScript","#3178c6",{"name":114,"color":115,"percentage":109},"Dockerfile","#384d54",{"name":117,"color":118,"percentage":109},"Python","#3572A5",543,56,"2026-04-17T07:32:30","Apache-2.0","未说明","不需要 GPU，完全本地运行且无需嵌入模型或向量数据库",{"notes":126,"python":127,"dependencies":128},"该工具基于 Node.js 运行（通过 npx 安装），而非 Python。它不需要外部嵌入模型、向量数据库或 GPU 加速，支持完全离线运行。核心依赖包括用于 AST 解析的 Tree-sitter 和用于快速扫描的 ripgrep。","未说明 (基于 Node.js)",[129,130,131,132,133],"Node.js","npx","Tree-sitter","ripgrep","rayon",[15,14,13,45],[136,137,138,139,140,141,142,143,132,144,145,146],"ai","ai-coder","search-engine","ast","cli","code-search","mcp","nodejs-sdk","rust","semantic-search","tree-sitter","2026-03-27T02:49:30.150509","2026-04-18T09:20:11.143777",[150,155,160,165,169],{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},38996,"为什么发布新版本（如 v0.4.0）后，直接运行 probe 命令显示的版本号仍然是旧版本（如 v0.3.0）？","这是因为 `Cargo.toml` 文件中的版本号未更新，而 GitHub 上已创建了新的 release tag。Clap 工具会直接从 `Cargo.toml` 读取版本信息。\n\n解决方案：\n1. **立即修复**：手动将 `Cargo.toml` 中的版本更新为正确的新版本号（例如从 \"0.3.0\" 改为 \"0.4.0\"），然后重新发布。\n2. **未来预防**：在 GitHub Actions 的发布工作流（`.github\u002Fworkflows\u002Frelease.yml`）中添加预检查步骤，自动验证 `Cargo.toml` 中的版本是否与发布的 tag 匹配，如果不匹配则失败或自动更新。","https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues\u002F22",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},38997,"如何在 GitHub Action 工作流中配置 Probe，使其在重复运行时更新现有的评论而不是每次都创建新评论？","可以通过在工作流输入中设置 `update_existing_comment: true` 并指定一个 `update_comment_marker` 来实现。具体实现需要修改 `.github\u002Fworkflows\u002Fprobe.yml`，采用两步法：\n\n1. **查找评论**：使用 `peter-evans\u002Ffind-comment@v3` 动作搜索包含特定标记的现有评论。\n   ```yaml\n   - name: Find Comment\n     id: fc\n     uses: peter-evans\u002Ffind-comment@v3\n     with:\n       issue-number: ${{ github.event.pull_request.number }}\n       comment-author: 'github-actions[bot]'\n       body-includes: '\u003C!-- probe-bot -->' # 你的标记\n   ```\n2. **创建或更新**：根据查找结果决定是创建新评论还是更新旧评论。\n   ```yaml\n   - name: Create or Update Comment\n     uses: peter-evans\u002Fcreate-or-update-comment@v4\n     with:\n       issue-number: ${{ github.event.pull_request.number }}\n       comment-id: ${{ steps.fc.outputs.comment-id }} # 如果找到则填入 ID，否则留空创建新评论\n       body: | \n         评论内容... \n         \u003C!-- probe-bot -->\n       edit-mode: replace\n   ```","https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues\u002F46",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},38998,"为什么父代理（Parent Agent）启用了 bash 工具，但通过 delegate 工具生成的子代理（Sub-agent）却无法使用 bash 命令？","这是一个已知问题。当父代理调用 `delegate` 工具生成子代理时，没有将 `enableBash` 和 `bashConfig` 配置参数传递给子代理，导致子代理默认无法访问 bash 工具。\n\n解决方法需要在代码层面修复 `delegateTool` 中的调用逻辑，确保显式传递 bash 配置：\n```javascript\nconst result = await delegate({\n  task,\n  timeout,\n  debug,\n  currentIteration,\n  maxIterations,\n  parentSessionId,\n  path: effectivePath,\n  provider,\n  model,\n  enableBash: this.enableBash, \u002F\u002F 添加此行\n  bashConfig: this.bashConfig  \u002F\u002F 添加此行\n});\n```","https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fissues\u002F327",{"id":166,"question_zh":167,"answer_zh":168,"source_url":164},38999,"为什么 AI 在使用工具时传入的 `workingDirectory` 参数会被忽略，始终指向工作区根目录？","这是 `ProbeAgent.js` 中的一个参数处理逻辑错误。代码在构建 `toolParams` 时，虽然使用了展开运算符 `...params` 接收 AI 传入的参数，但随后又无条件地将 `workingDirectory` 重置为 `allowedFolders[0]` 或当前进程目录，导致 AI 指定的路径被覆盖。\n\n错误代码示例：\n```javascript\nconst toolParams = {\n  ...params,\n  sessionId: this.sessionId,\n  workingDirectory: (this.allowedFolders && this.allowedFolders[0]) || process.cwd() \u002F\u002F 这行覆盖了前面的参数\n};\n```\n\n修复方法是修改逻辑，仅在 AI 未提供 `workingDirectory` 时才使用默认值，或者优先使用 AI 传入的值。",{"id":170,"question_zh":171,"answer_zh":172,"source_url":164},39000,"如何配置 ProbeAgent 以允许在 bash 工具中使用管道符（|）、逻辑运算符（&&, ||）等复杂 Shell 命令？","默认情况下，出于安全考虑，`bashCommandUtils.js` 和 `bashPermissions.js` 会直接拒绝包含管道符、重定向符等复杂结构的命令，即使这些命令在允许列表（allowlist）中。\n\n要支持此类命令，需要修改代码逻辑：\n1. 移除或调整 `parseSimpleCommand` 中对复杂模式的立即拒绝逻辑。\n2. 在 `bashPermissions.js` 的 `check` 函数中，先进行允许\u002F拒绝模式匹配，而不是先检查命令复杂度。\n3. 可以在配置中增加 `allowComplexCommands: true` 或 `allowOperators: ['&&', '|']` 选项，让用户显式启用特定操作符的支持。",[174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269],{"id":175,"version":176,"summary_zh":177,"released_at":178},314918,"v0.6.0-rc315","## 变更内容\n* 功能：在搜索 JSON 中添加结构化元数据，用于证据过滤，由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F556 中实现。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc314...v0.6.0-rc315","2026-04-06T09:23:46",{"id":180,"version":181,"summary_zh":182,"released_at":183},314919,"v0.6.0-rc314","## 变更内容\n* 修复：去重包含的搜索块，并在 JSON 输出中添加 `is_test` 字段，由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F554 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc313...v0.6.0-rc314","2026-04-06T08:32:23",{"id":185,"version":186,"summary_zh":187,"released_at":188},314920,"v0.6.0-rc313","## 变更内容\n* 功能新增：由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F550 中实现，丰富了任务遥测数据，用于重建嵌套任务树。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc312...v0.6.0-rc313","2026-04-03T19:45:40",{"id":190,"version":191,"summary_zh":192,"released_at":193},314921,"v0.6.0-rc312","## 变更内容\n* 功能新增：由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F548 中实现的基于智能体迭代和时间限制的结构化进度报告\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc310...v0.6.0-rc312","2026-03-27T21:28:12",{"id":195,"version":196,"summary_zh":197,"released_at":198},314922,"v0.6.0-rc311","## 变更内容\n* 修复：由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F547 中澄清了针对行的编辑指南\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc309...v0.6.0-rc311","2026-03-21T16:36:19",{"id":200,"version":201,"summary_zh":202,"released_at":203},314923,"v0.6.0-rc310","## 变更内容\n* 修复：由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F547 中澄清了针对行的编辑指南\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc309...v0.6.0-rc310","2026-03-21T16:22:14",{"id":205,"version":206,"summary_zh":207,"released_at":208},314924,"v0.6.0-rc309","## 变更内容\n* 功能新增：添加符号工具 —— 带行号的文件符号树，由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F546 中实现\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc308...v0.6.0-rc309","2026-03-21T15:45:26",{"id":210,"version":211,"summary_zh":212,"released_at":213},314925,"v0.6.0-rc308","## 变更内容\n* 修复：将 grantedMs\u002FgrantedMin 提升到作用域顶部，以避免在 ncc 打包中出现 ReferenceError，由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F545 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc307...v0.6.0-rc308","2026-03-20T20:11:12",{"id":215,"version":216,"summary_zh":217,"released_at":218},314926,"v0.6.0-rc307","## 变更内容\n* 功能新增：添加了支持 PDF 的 readMedia 工具，由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F544 中实现。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc306...v0.6.0-rc307","2026-03-20T19:41:40",{"id":220,"version":221,"summary_zh":222,"released_at":223},314927,"v0.6.0-rc306","## 变更内容\n* 修复：由 @buger 在 https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F543 中实现，将 MCP 配置和提示设置传播至委托子代理。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc305...v0.6.0-rc306","2026-03-20T18:07:55",{"id":225,"version":226,"summary_zh":227,"released_at":228},314928,"v0.6.0-rc305","## What's Changed\n* fix: preserve user-provided task IDs instead of auto-generating by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F542\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc304...v0.6.0-rc305","2026-03-20T16:40:12",{"id":230,"version":231,"summary_zh":232,"released_at":233},314929,"v0.6.0-rc304","## What's Changed\n* fix: non-blocking circuit breaker, language-aware dedup, delegate NaN guard by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F540\n* feat: structured delegate response, LLM-based semantic dedup, shared provider utility by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F541\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc303...v0.6.0-rc304","2026-03-20T11:52:32",{"id":235,"version":236,"summary_zh":237,"released_at":238},314930,"v0.6.0-rc303","## What's Changed\n* fix: code explorer search prompts — concept dedup and circuit breaker by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F539\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc302...v0.6.0-rc303","2026-03-19T15:14:33",{"id":240,"version":241,"summary_zh":242,"released_at":243},314931,"v0.6.0-rc302","## What's Changed\n* chore: update @probelabs\u002Fmaid to v0.0.29 by @probelabs[bot] in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F531\n* fix: bash redirection allowEdit gate, timeout prompt improvements (#536, #538) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F537\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc301...v0.6.0-rc302","2026-03-19T13:01:45",{"id":245,"version":246,"summary_zh":247,"released_at":248},314932,"v0.6.0-rc301","## What's Changed\n* fix: symlink search, null delegate response, allowEdit inheritance (#532, #533, #534) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F535\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc300...v0.6.0-rc301","2026-03-19T07:37:15",{"id":250,"version":251,"summary_zh":252,"released_at":253},314933,"v0.6.0-rc300","## What's Changed\n* feat: store AI response output on ai.request and search.delegate spans (#529) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F530\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc299...v0.6.0-rc300","2026-03-18T16:07:44",{"id":255,"version":256,"summary_zh":257,"released_at":258},314934,"v0.6.0-rc299","## What's Changed\n* fix: quoted search falls back to BM25 and returns unrelated files (#527) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F528\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc298...v0.6.0-rc299","2026-03-18T14:43:54",{"id":260,"version":261,"summary_zh":262,"released_at":263},314935,"v0.6.0-rc298","## What's Changed\n* fix: exact search fails for camelCase symbols (#525) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F526\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc297...v0.6.0-rc298","2026-03-18T11:51:07",{"id":265,"version":266,"summary_zh":267,"released_at":268},314936,"v0.6.0-rc297","## What's Changed\n* chore: update @probelabs\u002Fmaid to v0.0.28 by @probelabs[bot] in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F521\n* fix: cap negotiated timeout extensions to external hard timeout (#522) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F523\n* fix: emit timeout events instead of capping extensions (#522) by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F524\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc296...v0.6.0-rc297","2026-03-17T10:15:24",{"id":270,"version":271,"summary_zh":272,"released_at":273},314937,"v0.6.0-rc296","## What's Changed\n* feat: negotiated timeout with independent observer LLM pattern by @buger in https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fpull\u002F518\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fprobelabs\u002Fprobe\u002Fcompare\u002Fv0.6.0-rc295...v0.6.0-rc296","2026-03-13T18:07:33"]