工具1 ace 站内应该是鼎鼎大名的了:
目前使用的是 ace-tool-rs , 不过我让codex 对其做了 cli + skills 化改造
工具2 MinishLab/semble , 站内讨论较少
测试仓库是 4.1 泄露的claude 源码
测试结果摘要:

完整测试报告:
代码检索 skill 对比测试报告
测试对象:当前项目源码。
测试对象 skill:
ace-codebase-search:通过ace-tool-rs search-context执行。semble-search:通过semble search执行,参数为--top-k 5。
评分方法:每轮设定一个检索目标与一条提示词;以预期源码文件是否出现在结果中衡量命中,记录首次命中排名、耗时与前 5 个候选结果。
汇总
指标 ace-codebase-search semble-search 成功执行 20/20 20/20 Hit@1 11/20 14/20 Hit@3 14/20 18/20 Hit@5 16/20 20/20 未命中 3 0 平均耗时 4.31 秒 10.18 秒 中位耗时 4.28 秒 10.19 秒 Top5 加权分 67 89质量胜出:
- ACE 更靠前:2 轮
- Semble 更靠前:8 轮
- 命中排名相同:10 轮
- 均未命中:0 轮
速度胜出:
- ACE 更快:20 轮
- Semble 更快:0 轮
- 耗时相同:0 轮
结论:如果优先考虑定位准确性,semble-search 更合适;如果优先考虑响应速度,ace-codebase-search 更合适。
每轮测试明细
轮次 检索目标 ACE 排名 Semble 排名 ACE 耗时 Semble 耗时 质量结果 1 定位 MCP add 子命令入口、transport 参数解析与服务器配置保存逻辑。 1 1 4.71 秒 8.37 秒 命中排名相同 2 定位 MCP 服务器配置中 allowedMcpServers 与 deniedMcpServers 托管策略过滤逻辑。 未命中 1 4.31 秒 8.47 秒 Semble 更靠前 3 定位 MCP 工具完整名称构造、服务名规范化与反向解析相关逻辑。 1 1 4.12 秒 8.62 秒 命中排名相同 4 定位 Bash 工具只读命令校验、危险命令提示与权限控制逻辑。 2 2 4.59 秒 8.58 秒 命中排名相同 5 定位 sed 编辑命令解析与替换校验逻辑。 1 1 4.24 秒 10.97 秒 命中排名相同 6 定位 FileEdit 精确字符串替换、编辑校验与 diff 展示逻辑。 1 1 4.27 秒 10.17 秒 命中排名相同 7 定位 FileRead 图片处理、大文件读取与行数限制逻辑。 1 1 4.19 秒 10.04 秒 命中排名相同 8 定位 Glob 文件模式搜索、结果截断与按修改时间排序逻辑。 未命中 1 4.37 秒 10.07 秒 Semble 更靠前 9 定位 Grep 对 ripgrep 的封装、glob 过滤与输出模式处理逻辑。 3 1 3.66 秒 10.01 秒 Semble 更靠前 10 定位 TodoWrite 任务列表输入 schema、状态与优先级校验逻辑。 10 2 3.93 秒 10.03 秒 Semble 更靠前 11 定位 token、价格与总费用统计逻辑。 1 1 4.40 秒 10.18 秒 命中排名相同 12 定位 login 命令的 OAuth 与 key 认证流程。 1 4 4.68 秒 10.84 秒 ACE 更靠前 13 定位 logout 命令清理凭据与账户信息的逻辑。 1 1 4.20 秒 10.20 秒 命中排名相同 14 定位 model 命令的模型选择与配置写入逻辑。 1 1 4.72 秒 10.40 秒 命中排名相同 15 定位 hooks 命令配置事件回调与 shell hook 的逻辑。 5 1 4.15 秒 10.30 秒 Semble 更靠前 16 定位 statusline 命令设置流程与终端状态栏渲染逻辑。 5 2 4.12 秒 10.39 秒 Semble 更靠前 17 定位 plugin 市场浏览、安装、启用、禁用与管理逻辑。 未命中 4 4.33 秒 11.56 秒 Semble 更靠前 18 定位 LSP 客户端、诊断注册表与被动反馈逻辑。 1 1 4.78 秒 12.41 秒 命中排名相同 19 定位 remote bridge 的轮询配置、会话创建、受信设备、JWT 与 work secret 逻辑。 3 1 4.28 秒 10.91 秒 Semble 更靠前 20 定位 AgentTool 创建子任务、运行内置 agent 与恢复 agent 会话逻辑。 1 3 4.15 秒 11.03 秒 ACE 更靠前第 1 轮
检索目标:定位 MCP add 子命令入口、transport 参数解析与服务器配置保存逻辑。
提示词:
MCP add CLI subcommand that parses transport options and saves server configuration
期望命中文件:
src/commands/mcp/addCommand.tssrc/commands/mcp/mcp.tsx
结果摘要:
- ACE:首次命中排名
1,耗时4.71 秒。 - Semble:首次命中排名
1,耗时8.37 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/commands/mcp/addCommand.tssrc/services/mcp/utils.tssrc/commands/mcp/xaaIdpCommand.tssrc/utils/plugins/mcpPluginIntegration.tssrc/cli/transports/transportUtils.ts
Semble 前 5 个候选结果:
src/commands/mcp/addCommand.tssrc/main.tsxsrc/services/mcp/config.tssrc/cli/handlers/mcp.tsxsrc/services/mcp/SdkControlTransport.ts
第 2 轮
检索目标:定位 MCP 服务器配置中 allowedMcpServers 与 deniedMcpServers 托管策略过滤逻辑。
提示词:
filter MCP server configs by allowedMcpServers deniedMcpServers managed policy
期望命中文件:
src/services/mcp/config.ts
结果摘要:
- ACE:首次命中排名
未命中,耗时4.31 秒。 - Semble:首次命中排名
1,耗时8.47 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/tools.tssrc/services/mcp/channelPermissions.tssrc/services/mcp/utils.tssrc/utils/plugins/marketplaceHelpers.tssrc/services/mcp/channelNotification.ts
Semble 前 5 个候选结果:
src/services/mcp/config.tssrc/main.tsxsrc/utils/settings/types.tssrc/cli/print.tssrc/migrations/migrateEnableAllProjectMcpServersToSettings.ts
第 3 轮
检索目标:定位 MCP 工具完整名称构造、服务名规范化与反向解析相关逻辑。
提示词:
build fully qualified MCP tool name mcp__server__tool and normalize server name
期望命中文件:
src/services/mcp/mcpStringUtils.tssrc/services/mcp/normalization.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.12 秒。 - Semble:首次命中排名
1,耗时8.62 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/services/mcp/mcpStringUtils.tssrc/services/mcp/normalization.tssrc/services/mcp/utils.tssrc/tools/McpAuthTool/McpAuthTool.tssrc/components/mcp/MCPStdioServerMenu.tsx
Semble 前 5 个候选结果:
src/services/mcp/mcpStringUtils.tssrc/services/mcp/client.tssrc/services/mcp/utils.tssrc/services/tools/toolExecution.tssrc/utils/settings/permissionValidation.ts
第 4 轮
检索目标:定位 Bash 工具只读命令校验、危险命令提示与权限控制逻辑。
提示词:
Bash tool validates read-only commands and blocks destructive shell commands
期望命中文件:
src/tools/BashTool/readOnlyValidation.tssrc/tools/BashTool/destructiveCommandWarning.tssrc/tools/BashTool/bashSecurity.tssrc/tools/BashTool/bashPermissions.tssrc/tools/BashTool/BashTool.tsx
结果摘要:
- ACE:首次命中排名
2,耗时4.59 秒。 - Semble:首次命中排名
2,耗时8.58 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/tools/BashTool/modeValidation.tssrc/tools/BashTool/destructiveCommandWarning.tssrc/tools/BashTool/shouldUseSandbox.tssrc/tools/PowerShellTool/modeValidation.tssrc/tools/BashTool/utils.ts
Semble 前 5 个候选结果:
src/utils/shell/readOnlyCommandValidation.tssrc/tools/BashTool/readOnlyValidation.tssrc/tools/BashTool/prompt.tssrc/utils/promptShellExecution.tssrc/tools/PowerShellTool/readOnlyValidation.ts
第 5 轮
检索目标:定位 sed 编辑命令解析与替换校验逻辑。
提示词:
parse sed edit commands and validate sed replacements for the shell tool
期望命中文件:
src/tools/BashTool/sedEditParser.tssrc/tools/BashTool/sedValidation.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.24 秒。 - Semble:首次命中排名
1,耗时10.97 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/tools/BashTool/sedEditParser.tssrc/tools/BashTool/modeValidation.tssrc/tools/BashTool/shouldUseSandbox.tssrc/utils/settings/permissionValidation.tssrc/utils/bash/ShellSnapshot.ts
Semble 前 5 个候选结果:
src/tools/BashTool/sedEditParser.tssrc/tools/BashTool/sedValidation.tssrc/tools/BashTool/BashTool.tsxsrc/tools/BashTool/pathValidation.tssrc/tools/BashTool/prompt.ts
第 6 轮
检索目标:定位 FileEdit 精确字符串替换、编辑校验与 diff 展示逻辑。
提示词:
File edit tool replaces exact strings and shows diff before applying edits
期望命中文件:
src/tools/FileEditTool/FileEditTool.tssrc/tools/FileEditTool/utils.tssrc/tools/FileEditTool/UI.tsx
结果摘要:
- ACE:首次命中排名
1,耗时4.27 秒。 - Semble:首次命中排名
1,耗时10.17 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/tools/FileEditTool/utils.tssrc/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsxsrc/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsxsrc/tools/FileEditTool/prompt.tssrc/tools/NotebookEditTool/NotebookEditTool.ts
Semble 前 5 个候选结果:
src/tools/FileEditTool/utils.tssrc/components/FileEditToolDiff.tsxsrc/tools/FileEditTool/UI.tsxsrc/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsxsrc/components/permissions/FilePermissionDialog/ideDiffConfig.ts
第 7 轮
检索目标:定位 FileRead 图片处理、大文件读取与行数限制逻辑。
提示词:
Read file tool processes images and enforces large file line limits
期望命中文件:
src/tools/FileReadTool/FileReadTool.tssrc/tools/FileReadTool/imageProcessor.tssrc/tools/FileReadTool/limits.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.19 秒。 - Semble:首次命中排名
1,耗时10.04 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/tools/FileReadTool/limits.tssrc/utils/readEditContext.tssrc/tools/FileReadTool/prompt.tssrc/utils/json.tssrc/utils/file.ts
Semble 前 5 个候选结果:
src/tools/FileReadTool/FileReadTool.tssrc/tools/FileReadTool/prompt.tssrc/utils/readFileInRange.tssrc/utils/attachments.tssrc/tools/FileWriteTool/prompt.ts
第 8 轮
检索目标:定位 Glob 文件模式搜索、结果截断与按修改时间排序逻辑。
提示词:
Glob tool searches files by pattern and sorts results by modification time
期望命中文件:
src/tools/GlobTool/GlobTool.tssrc/tools/GlobTool/prompt.tssrc/tools/GlobTool/UI.tsx
结果摘要:
- ACE:首次命中排名
未命中,耗时4.37 秒。 - Semble:首次命中排名
1,耗时10.07 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/components/GlobalSearchDialog.tsxsrc/utils/markdownConfigLoader.tssrc/memdir/memdir.tssrc/utils/ripgrep.tssrc/tools.ts
Semble 前 5 个候选结果:
src/tools/GlobTool/GlobTool.tssrc/tools/GlobTool/prompt.tssrc/tools/GrepTool/GrepTool.tssrc/tools/GrepTool/prompt.tssrc/utils/glob.ts
第 9 轮
检索目标:定位 Grep 对 ripgrep 的封装、glob 过滤与输出模式处理逻辑。
提示词:
Grep tool wraps ripgrep and supports glob filtering and output modes
期望命中文件:
src/tools/GrepTool/GrepTool.tssrc/tools/GrepTool/prompt.tssrc/tools/GrepTool/UI.tsx
结果摘要:
- ACE:首次命中排名
3,耗时3.66 秒。 - Semble:首次命中排名
1,耗时10.01 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/utils/ripgrep.tssrc/components/GlobalSearchDialog.tsxsrc/tools/GrepTool/UI.tsxsrc/tools/AgentTool/built-in/claudeCodeGuideAgent.tssrc/tools/PowerShellTool/prompt.ts
Semble 前 5 个候选结果:
src/tools/GrepTool/GrepTool.tssrc/tools/GrepTool/prompt.tssrc/utils/bash/ShellSnapshot.tssrc/tools/GlobTool/GlobTool.tssrc/tools/BashTool/prompt.ts
第 10 轮
检索目标:定位 TodoWrite 任务列表输入 schema、状态与优先级校验逻辑。
提示词:
Todo write tool validates task status priority list schema
期望命中文件:
src/tools/TodoWriteTool/TodoWriteTool.tssrc/tools/TodoWriteTool/constants.tssrc/tools/TodoWriteTool/prompt.ts
结果摘要:
- ACE:首次命中排名
10,耗时3.93 秒。 - Semble:首次命中排名
2,耗时10.03 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/utils/todo/types.tssrc/tools/TaskListTool/TaskListTool.tssrc/tools/ScheduleCronTool/CronCreateTool.tssrc/tools/LSPTool/schemas.tssrc/tools/SyntheticOutputTool/SyntheticOutputTool.ts
Semble 前 5 个候选结果:
src/tools/TaskListTool/TaskListTool.tssrc/tools/TodoWriteTool/TodoWriteTool.tssrc/tools/TaskGetTool/TaskGetTool.tssrc/tools/TodoWriteTool/prompt.tssrc/tools/TaskUpdateTool/TaskUpdateTool.ts
第 11 轮
检索目标:定位 token、价格与总费用统计逻辑。
提示词:
cost tracking tracks tokens pricing and total API cost
期望命中文件:
src/cost-tracker.tssrc/costHook.tssrc/commands/cost/cost.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.40 秒。 - Semble:首次命中排名
1,耗时10.18 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/cost-tracker.tssrc/utils/modelCost.tssrc/commands/cost/cost.tssrc/costHook.ts
Semble 前 5 个候选结果:
src/cost-tracker.tssrc/utils/modelCost.tssrc/services/api/claude.tssrc/services/api/logging.tssrc/components/StatusLine.tsx
第 12 轮
检索目标:定位 login 命令的 OAuth 与 key 认证流程。
提示词:
login command UI OAuth API key authentication flow
期望命中文件:
src/commands/login/login.tsxsrc/commands/login/index.tssrc/cli/handlers/auth.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.68 秒。 - Semble:首次命中排名
4,耗时10.84 秒。 - 质量判断:ACE 更靠前。
ACE 前 5 个候选结果:
src/commands/login/index.tssrc/commands/install-github-app/OAuthFlowStep.tsxsrc/commands/mcp/xaaIdpCommand.tssrc/services/oauth/index.tssrc/commands/extra-usage/extra-usage.tsx
Semble 前 5 个候选结果:
src/commands/install-github-app/OAuthFlowStep.tsxsrc/components/ConsoleOAuthFlow.tsxsrc/commands/init-verifiers.tssrc/cli/handlers/auth.tssrc/services/policyLimits/index.ts
第 13 轮
检索目标:定位 logout 命令清理凭据与账户信息的逻辑。
提示词:
logout command removes credentials and organization accounts
期望命中文件:
src/commands/logout/logout.tsxsrc/commands/logout/index.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.20 秒。 - Semble:首次命中排名
1,耗时10.20 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/commands/logout/logout.tsxsrc/commands/exit/exit.tsxsrc/commands/mcp/xaaIdpCommand.tssrc/commands/login/index.tssrc/commands/extra-usage/extra-usage.tsx
Semble 前 5 个候选结果:
src/commands/logout/index.tssrc/cli/handlers/auth.tssrc/utils/auth.tssrc/commands/init-verifiers.tssrc/main.tsx
第 14 轮
检索目标:定位 model 命令的模型选择与配置写入逻辑。
提示词:
model command selects model and writes model configuration
期望命中文件:
src/commands/model/model.tsxsrc/commands/model/index.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.72 秒。 - Semble:首次命中排名
1,耗时10.40 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/commands/model/index.tssrc/utils/model/configs.tssrc/commands/vim/vim.tssrc/tools/ConfigTool/ConfigTool.tssrc/tools/ConfigTool/prompt.ts
Semble 前 5 个候选结果:
src/commands/model/index.tssrc/utils/model/model.tssrc/tools/ConfigTool/prompt.tssrc/commands/model/model.tsxsrc/utils/settings/types.ts
第 15 轮
检索目标:定位 hooks 命令配置事件回调与 shell hook 的逻辑。
提示词:
hooks command configures shell hooks for events
期望命中文件:
src/commands/hooks/hooks.tsxsrc/commands/hooks/index.ts
结果摘要:
- ACE:首次命中排名
5,耗时4.15 秒。 - Semble:首次命中排名
1,耗时10.30 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/commands/init.tssrc/schemas/hooks.tssrc/utils/hooks/hooksConfigManager.tssrc/utils/hooks/hooksSettings.tssrc/commands/hooks/hooks.tsx
Semble 前 5 个候选结果:
src/commands/hooks/index.tssrc/utils/hooks.tssrc/utils/hooks/AsyncHookRegistry.tssrc/schemas/hooks.tssrc/skills/bundled/updateConfig.ts
第 16 轮
检索目标:定位 statusline 命令设置流程与终端状态栏渲染逻辑。
提示词:
statusline command setup and render terminal status line
期望命中文件:
src/commands/statusline.tsxsrc/commands/status/status.tsxsrc/commands/status/index.ts
结果摘要:
- ACE:首次命中排名
5,耗时4.12 秒。 - Semble:首次命中排名
2,耗时10.39 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/tools/AgentTool/built-in/statuslineSetup.tssrc/ink/hooks/use-tab-status.tssrc/utils/terminalPanel.tssrc/bridge/bridgeUI.tssrc/commands/status/status.tsx
Semble 前 5 个候选结果:
src/components/StatusLine.tsxsrc/commands/statusline.tsxsrc/tools/AgentTool/built-in/statuslineSetup.tssrc/commands/terminalSetup/terminalSetup.tsxsrc/commands.ts
第 17 轮
检索目标:定位 plugin 市场浏览、安装、启用、禁用与管理逻辑。
提示词:
plugin marketplace browsing installing enabling disabling plugins
期望命中文件:
src/commands/plugin/plugin.tsxsrc/commands/plugin/BrowseMarketplace.tsxsrc/commands/plugin/ManagePlugins.tsxsrc/commands/plugin/PluginOptionsFlow.tsx
结果摘要:
- ACE:首次命中排名
未命中,耗时4.33 秒。 - Semble:首次命中排名
4,耗时11.56 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/services/plugins/pluginCliCommands.tssrc/plugins/builtinPlugins.tssrc/utils/plugins/pluginBlocklist.tssrc/commands/plugin/AddMarketplace.tsxsrc/utils/plugins/headlessPluginInstall.ts
Semble 前 5 个候选结果:
src/services/plugins/pluginOperations.tssrc/utils/plugins/pluginInstallationHelpers.tssrc/commands/thinkback/thinkback.tsxsrc/commands/plugin/BrowseMarketplace.tsxsrc/commands/plugin/ManagePlugins.tsx
第 18 轮
检索目标:定位 LSP 客户端、诊断注册表与被动反馈逻辑。
提示词:
LSP client diagnostic registry and passive feedback
期望命中文件:
src/services/lsp/LSPClient.tssrc/services/lsp/LSPDiagnosticRegistry.tssrc/services/lsp/passiveFeedback.tssrc/tools/LSPTool/LSPTool.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.78 秒。 - Semble:首次命中排名
1,耗时12.41 秒。 - 质量判断:命中排名相同。
ACE 前 5 个候选结果:
src/services/lsp/LSPDiagnosticRegistry.tssrc/services/lsp/passiveFeedback.ts
Semble 前 5 个候选结果:
src/services/lsp/passiveFeedback.tssrc/services/lsp/LSPDiagnosticRegistry.tssrc/utils/attachments.ts
第 19 轮
检索目标:定位 remote bridge 的轮询配置、会话创建、受信设备、JWT 与 work secret 逻辑。
提示词:
remote bridge polling configuration create session trusted device JWT work secret
期望命中文件:
src/bridge/createSession.tssrc/bridge/pollConfig.tssrc/bridge/jwtUtils.tssrc/bridge/trustedDevice.tssrc/bridge/workSecret.ts
结果摘要:
- ACE:首次命中排名
3,耗时4.28 秒。 - Semble:首次命中排名
1,耗时10.91 秒。 - 质量判断:Semble 更靠前。
ACE 前 5 个候选结果:
src/bridge/pollConfigDefaults.tssrc/bridge/envLessBridgeConfig.tssrc/bridge/pollConfig.tssrc/bridge/codeSessionApi.tssrc/bridge/types.ts
Semble 前 5 个候选结果:
src/bridge/trustedDevice.tssrc/bridge/remoteBridgeCore.tssrc/bridge/codeSessionApi.tssrc/bridge/bridgeMain.tssrc/bridge/bridgeApi.ts
第 20 轮
检索目标:定位 AgentTool 创建子任务、运行内置 agent 与恢复 agent 会话逻辑。
提示词:
agent tool forks subagents runs built-in agents and resumes agent sessions
期望命中文件:
src/tools/AgentTool/AgentTool.tsxsrc/tools/AgentTool/forkSubagent.tssrc/tools/AgentTool/runAgent.tssrc/tools/AgentTool/resumeAgent.tssrc/tools/AgentTool/builtInAgents.ts
结果摘要:
- ACE:首次命中排名
1,耗时4.15 秒。 - Semble:首次命中排名
3,耗时11.03 秒。 - 质量判断:ACE 更靠前。
ACE 前 5 个候选结果:
src/tools/AgentTool/forkSubagent.tssrc/tools/AgentTool/resumeAgent.tssrc/tools/AgentTool/loadAgentsDir.tssrc/tools/AgentTool/prompt.tssrc/tools/AgentTool/built-in/planAgent.ts
Semble 前 5 个候选结果:
src/tools/AgentTool/loadAgentsDir.tssrc/utils/agentContext.tssrc/tools/AgentTool/runAgent.tssrc/tools/AgentTool/built-in/claudeCodeGuideAgent.tssrc/tools/AgentTool/AgentTool.tsx
1 个帖子 - 1 位参与者