██ ██
██ ██ ██ ██████ █████▄ ▄████▄
██ ██ ██ ██ ██▄▄██▄ ██▄▄██
██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██████ ██ ██ ██ ██ ██
▀████▀ ▄████ ▄████▄ █████▄ █████
██ ██ ██ ██ ██ ██▄▄▄
▀████ ▀████▀ █████▀ ██▄▄▄](https://www.npmjs.com/package/ultracode)   ](https://nodejs.org/)
用于快速准确代码工作的代码库RAG
🌐 语言EN 俄
______________________________________________________________________
用于AI编码代理的MCP服务器。构建完整的代码结构图(实体、关系、控制流、复杂性)和语义向量索引。AI代理查询图形而不是读取文件,并通过行引用获得精确、详尽的答案。
为什么这很重要
如果没有结构化索引,探索代码库的AI代理必须 grep → 读取文件→ 跟踪进口→ grep再次→ 读取更多文件。每一步都需要花费代币和时间。丢失的连接会导致修复不完整。代理中断代码、检查、修复、再次中断——对于单个任务,这个循环可以重复10-20次。
使用UltraCode,同一代理可以 一次MCP呼叫 并在一个响应中返回所有受影响的实体、它们的关系、调用者和影响。没有文件读取循环,没有丢失的连接。
实践中有什么变化
| 无UltraCode | 有UltraCode | |
|---|---|---|
| 搜索 | 代理抓取关键字,逐一读取文件,手动跟踪导入链。在大型项目中,查找模式的所有用法需要 数十次特工轮换 和 1M+代币间接参考文献经常被遗漏。 | 客服电话 semantic_search 或 query --获取中的所有匹配项(包括语义:相似逻辑、相关概念) 一个响应,约100ms,约5K个令牌图遍历可以找到grep无法找到的东西:间接调用者、接口实现者、数据流路径。 |
| 编辑 | 代理在不知道完整依赖关系树的情况下修改文件。典型周期:编辑→ 构建失败→ 读取错误→ fix → 新错误→ fix → ... 这个“修复循环”需要 10-20次迭代,最多1小时和2M+代币 为了实现跨领域的变革。 | 客服电话 analyze_code_impact 在编辑之前,看看会发生什么。 modify_code 通过自动验证(lint之前/之后)在实体级别应用更改。影响分析+追踪渔获物破损 之前 汇编。在大多数情况下,大型重构器在第一次尝试时就能正确编译。 |
| 记忆 | Agent会忘记先前的上下文,并重新创建已存在的功能。或者花几个小时调试它意外禁用的功能。令牌浪费随着会话长度的增加而增加。 | Graph为每次调用提供完整的结构上下文。 AutoDoc 自动维护最新文档。特工总是看到当前的状态——没有“失忆”问题。 |
| Git | 分支切换和外部文件更改会使代理的心智模型无效。过时的数据会导致无声错误。必须明确告知代理人重新分析。 | GitWatcher 实时检测文件更改和分支切换。图和嵌入的增量重新索引会自动发生。每个查询都返回当前数据,无需人工干预。 |
索引速度
中等项目(约500个文件)的完整索引在中完成 3-5秒 (并行解析+批处理SQL+流式嵌入)。大型项目,如VS Code(约180万LOC,7000多个文件)-- 约82秒 包括全嵌入生成。之后, GitWatcher 索引仅更改文件——通常 200ms以下 每次更改。
安装
该项目针对以下方面进行了优化 包子 (另一种JavaScript运行时),运行速度提高了50%。
Bun+UltraCode (推荐--安装+设置):
# macOS / Linux
curl -fsSL https://bun.sh/install | bash && ~/.bun/bin/bun i -g ultracode --trust && ultracode-setup# Windows (PowerShell)
irm bun.sh/install.ps1 | iex; bun i -g ultracode --trust; ultracode-setup仅限UltraCode (Bun已安装):
bun i -g ultracode --trust && ultracode-setupnpm (可选--安装+设置):
npm install -g ultracode && ultracode-setup如果ultracode-setupnpm安装后失败(路径与bun冲突),使用:node "$(npm root -g)/ultracode/dist/cli/setup-command.js"
为什么--trust为了Bun? 默认情况下,Bun会阻止安装后脚本。--trust允许本地插件构建(better-sxlite3、cbor extract、protobufjs)——所有合法的依赖项。
备注:对于不同语言的完整代码分析,需要运行时: - TypeScript/JavaScript-内置(TypeScript编译器API) - Python——需要Python 3.8+(python --version) - Java/Kotlin——需要JRE 11+(java --version) - Go--需要Go 1.18+(go version) - Rust——需要Rust工具链(rustc --version) - C#需要。NET SDK 8+(dotnet --version) - Zig——内置(基于正则表达式,不需要Zig工具链) - C/C++——需要Clang 12+(clang --version)
Claude代码配置 (~/.claude.json):
{
"mcpServers": {
"ultracode": {
"command": "ultracode"
}
}
}配置: .autodoc/claude.cfg/add-to-claude.md
本地模型设置
局部模型用于智能任务:嵌入模型用于语义搜索,LLM用于AutoDoc。这将从您的主AI代理中删除令牌成本。
安装后,安装向导将启动并下载和配置所需的一切。
步骤1:嵌入提供者 (语义搜索)
| 提供商 | 速度 | 推荐 |
|---|---|---|
| vLLM | 1352元/秒⭐ NVIDIA GPU(推荐) | |
| 文本编码倡议 | 1169年/月 | ⭐ NVIDIA GPU(布莱克威尔: 120-latest 图像) |
| MLX | ~500电磁脉冲/秒 | ⭐ macOS苹果硅(金属GPU) |
| llama.cpp | 441 emb/s | AMD通用GPU(Vulkan) |
| OVMS原生 | 260-326电磁脉冲/秒 | ⭐ CPU/Intel GPU。 |
| 如果主VRAM被本地LLM占用,可以提供帮助。 |
GTX xx50/xx60笔记本电脑的注意事项(GPU热节流) 笔记本电脑上的预算NVIDIA GPU(GTX 1650/1660、RTX 3050/3060、RTX 4050/4060)经常受到功率限制限制的限制,这会使TEI/vLLM嵌入吞吐量下降约1000 emb/s。GPU达到功率限制(PL1)并在批处理过程中停止运行。 通过修复 油门停止 (Windows): 1. TPL 按钮→ set PL1 最大功率(笔记本电脑为55-75W), PL2 最大功率(90-120W), 涡轮增压时间限制 → 28 秒(最大),启用 夹钳PL1/PL2 (TPL按钮变绿) 1. 主窗口→ 速度换档-EPP →0(最大性能,减少CPU限制) 1. BD PROCHOT 偏移 →0(禁用GPU的CPU热触发) 1. 限制原因 → 检查阻塞的内容(如果是“MS Platform”--忽略) 1. 应用 → 保存配置文件。CPU为GPU提供热预算,TEI批次稳定。 这通常会给出 +1000电磁脉冲/秒 受影响的硬件。
步骤2:LLM提供者 (自动文档,重构)
| 提供商 | 型号 | 推荐 |
|---|---|---|
| Docker模型运行器 | Qwen 2.5,DeepSeek R1,Phi-4,Llama 3.2 | ⭐ 如果安装了Docker Desktop |
| 奥拉玛 | qwen2.5编码器,深度搜索编码器,phi4 | 通用选项 |
| 跳过 | -- | 稍后配置 |
向导会自动执行以下操作:
- 检测您的GPU(NVIDIA Turing/Ampere/Ada/Hopper/Blackwell\*)
- 为您的硬件推荐最佳型号
- 安装选定的提供程序
- 将配置保存到系统目录
重新运行向导: ``bash # Bun bunx ultracode setup # Node.js npx ultracode setup ``\*对于Blackwell(RTX 50xx),使用非官方的TEI分叉
AUTODOC设置
要激活自动文档模式,请创建 .autodoc 项目根目录中的文件夹,并启用LLM使用(最容易使用相同的claude)。
在启用自动文档模式的情况下运行UltraCode后:
- 在所有包含源代码(来自支持的语言)的文件夹中,将创建AUTODOC.md文件,并使用目录中列出文件的模板。
- LLM将遍历这些文件,并在AUTODOC.md中生成描述——文件中的代码具体做什么。
在此之后,您可以自己(或在AI代理的帮助下)在.autodoc目录中创建所需的项目概述文件,并在需要的地方在autodoc.md文件中添加“人类描述”。在那里,您可以直接引用文件中的代码行(为了描述代码块的开始和结束,请使用两个数字。例如:FILE:XX-ZZ)。UltraCode将跟踪代码更改,并自动更新所有代码引用以保持其最新状态。它不会触及文档文本。
macOS苹果硅(MLX嵌入)
通过Apple MLX框架(Metal GPU)原生嵌入支持:
- MLX提供商 自动检测macOS ARM64并使用Metal GPU
- 安装向导将MLX设置为Apple Silicon上的默认值
- 模型:
intfloat/multilingual-e5-base(768d),intfloat/multilingual-e5-small(384d),BAAI/bge-m3(1024d,8K上下文) - 自动安装带有依赖项的Python venv,从HuggingFace下载模型
# Re-run wizard to switch to MLX:
bunx ultracode setup
# Select "MLX" → auto-setup venv + model + server on port 8087GPU加速(CUDA/WIGPU/金属)
# macOS: Metal backend for CUDA-like acceleration
# Build requirements:
# - Xcode Command Line Tools: xcode-select --install
# - Homebrew: https://brew.sh
# - CMake: brew install cmake
./node_modules/ultracode/scripts/build-native-libs-macos.sh特性
MCP服务器提供 78工具 用于代码分析和修改。
搜索与导航
| 工具 | 说明 |
|---|---|
| 语义研究 | 使用过滤器(复杂性、流程、文档)按意义进行语义搜索 |
| 图案搜索 | 高级搜索:正则表达式、语义、混合 |
| 查询 | 自然语言中关于代码的NLP查询 |
| 查找_类似代码 | 查找具有相似逻辑的函数 |
| 跨语言搜索 | 跨所有项目语言的统一搜索 |
| 查找相关概念 | 查找相关概念 |
代码分析
| 工具 | 说明 |
|---|---|
| 分析代码影响 | 影响分析——修改后会发生什么 |
| 查找重复项 | 语义代码克隆检测 |
| jscpd_detect_clones | 基于jscpd的克隆检测器 |
| 建议分解 | AI驱动的代码改进建议 |
| 分析热点 | 具有高圈复杂度的复杂区域 |
| 分析状态chaos | 复杂数据依赖关系分析 |
| 分析_摇摆器_影响 | Swagger/OpenAPI规范变更影响分析 |
| 分析影响 | 统一的API合同影响分析(Swagger+Protobuf+GraphQL) |
| get_database_schema | SQL/Prisma/ORM/Redis数据库模式,具有迁移分析和漂移检测功能 |
| 检测技术_停止 | 项目技术栈检测 |
| 检测模式 | 通过语义验证检测反模式、最佳模式、代码异味和优化机会。包括用于JS/TS的JIT去优化检测器(隐藏类、多孔数组、超纯调度) |
| check_entity_patterns | 检查特定实体的模式是否与置信度得分匹配 |
| graph_metrics | PageRank、Louvain社区检测、中心性分析和总线因素用于建筑理解 |
| 污染分析 | 过程间污染分析:从源到汇跟踪不受信任的数据,检测SQL注入、XSS、命令注入、缺少身份验证 |
静态跟踪和调试
所有跟踪和诊断工具均支持 highlightRecentChanges=true --交叉引用发现了具有Prolly Tree提交历史的实体,并注释了最近修改的代码。这有助于确定可能的根本原因:首先要查找崩溃呼叫链或决策点中最近更改的实体。
| 工具 | 说明 |
|---|---|
| trace_flow | 代码如何从A点流向B点 |
| 回溯 | 为什么函数没有被调用 |
| 跟踪数据流 | 数据如何影响状态 |
| 分析状态影响 | 不同价值观会带来什么变化 |
| 查找_决策点 | 代码中的分支点 |
架构图
| 工具 | 说明 |
|---|---|
| get_architecture_diagram | 从代码图生成Mermaid、Graphviz DOT或D2架构图 |
代码修改
| 工具 | 说明 |
|---|---|
| 修改代码 | 结构化AST级别编辑与验证 |
| 创建文件 | 创建新文件 |
| copy_file | 复制带有图形更新的文件 |
| 重命名文件 | 使用导入更新重命名文件 |
| split_file | 将文件拆分为多个部分 |
| 合成文件 | 合并文件 |
| 重命名_符号 | 项目范围内的符号重命名 |
| add_member | 向类添加方法/属性 |
代码验证
| 工具 | 说明 |
|---|---|
| validate_file | 通过oxlint/Pylint/golint/clippy进行文件验证 |
| validate_directory | 批量目录验证 |
文档(AutoDoc)
| 工具 | 说明 |
|---|---|
| autodoc_init | 初始化AutoDoc系统 |
| autodoc_generate | 为实体生成文档 |
| autodoc_save | 将文档保存到.autodoc |
| autodoc_get | 获取实体文档 |
| autodoc_search | 通过文档进行语义搜索 |
| autodoc_validate | 检查文档的新鲜度 |
| autodoc_status | 文件覆盖率统计 |
| autodoc_sync | 与代码更改同步 |
| autodoc_changelog | 文档更改历史 |
| autodoc_install_hooks | 安装Git挂钩以进行自动更新 |
| autodoc_detect_语言 | 检测生成语言 |
Git集成
| 工具 | 说明 |
|---|---|
| list_brances | 列出索引分支 |
| switch_branch | 使用自动重新索引功能切换分支 |
| get_branch_status | 当前分行状态 |
| get_changed_files | 比较分支之间的文件 |
| 清洁牧场 | 清理旧树枝(LRU) |
多代理工作树支持
多个AI代理可以并行工作,每个代理在单独的分支上的git工作树中。UltraCode通过以下方式检测所有工作树是否属于同一存储库 repoIdentity --一个稳定的哈希 git-common-dir所有工作树共享一个索引、一个数据库和一个服务器进程。
| 工具 | 说明 |
|---|---|
| spawn_agent_worktree | 为新代理创建git工作树 |
| list_worktree_agents | 列出活动工作树会话 |
| cleanup_worktree | 拆下工作台 |
| get_worktree_info | 详细的工作树/子模块/子树信息 |
从代理编排器启动
任何编排器(Claude Code、自定义脚本、CI/CD)都可以启动具有完整代码智能的并行代理。每个代理通过轻量级 ultracode.com 代理(约700KB,跨平台)。
步骤1:创建工作树
cd /path/to/your/project
# Create a worktree per agent (each on its own branch)
git worktree add ../wt-auth -b feature/auth main
git worktree add ../wt-pay -b feature/payments main
git worktree add ../wt-tests -b feature/tests main步骤2:使用UltraCode MCP启动代理
每个代理都连接到 运行相同的UltraCode服务器 通过命名管道(Windows)或Unix套接字(Linux/macOS)。代理二进制文件处理连接、自动启动和初始化握手。
# Agent 1: auth feature
ultracode.com --pipe \
--directory ../wt-auth \
--branch feature/auth \
--agent-id auth-agent
# Agent 2: payments feature
ultracode.com --pipe \
--directory ../wt-pay \
--branch feature/payments \
--agent-id pay-agent
# Agent 3: test writing
ultracode.com --pipe \
--directory ../wt-tests \
--branch feature/tests \
--agent-id test-agent| CLI参数 | 必需 | 说明 |
|---|---|---|
--pipe | 是 | 使用命名管道IPC(连接到正在运行的服务器) |
--directory PATH | 是 | 代理工作树的路径 |
--branch NAME | 推荐 | 分行名称(跳过 git 服务器上的检测) |
--agent-id ID | 推荐 | 用于协调的唯一代理标识符 |
步骤3:在中配置 claude_desktop_config.json 或MCP客户端
{
"mcpServers": {
"ultracode-auth": {
"command": "ultracode.com",
"args": ["--pipe", "--directory", "/path/to/wt-auth",
"--branch", "feature/auth", "--agent-id", "auth-agent"]
},
"ultracode-pay": {
"command": "ultracode.com",
"args": ["--pipe", "--directory", "/path/to/wt-pay",
"--branch", "feature/payments", "--agent-id", "pay-agent"]
}
}
}运作原理
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Agent #1 │ │ Agent #2 │ │ Agent #3 │
│ wt-auth │ │ wt-pay │ │ wt-tests │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
│ stdin/stdout │ stdin/stdout │ stdin/stdout
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ ultracode.com│ │ ultracode.com│ │ ultracode.com│
│ (proxy) │ │ (proxy) │ │ (proxy) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────┬───────┘────────┬───────┘
│ Named Pipe │
▼ ▼
┌───────────────────────────────┐
│ UltraCode MCP Server │
│ (single process, shared) │
│ │
│ repoIdentity: same for all │
│ Index: shared base + deltas │
│ Locks: per branch │
└───────────────────────────────┘- 共享索引:所有工作台使用一个
repoIdentity→ 一个数据库,一个FAISS索引池 - 分支隔离:每个代理对其自己的分支增量进行索引;不同分支的并行索引是安全的
- 锁协调:如果两个代理位于同一分支上,则只有一个索引--另一个等待并跳过
- 会话发现:代理可以通过以下方式互相查看
list_worktree_agents--可用于任务切换 - 子模块/子树感知:子模块有自己的
repoIdentity;子树被检测为父仓库的一部分
清理
# Remove worktrees when done
git worktree remove ../wt-auth
git worktree remove ../wt-pay
git worktree remove ../wt-tests
# Or via MCP tool (from any agent):
# cleanup_worktree({ branch: "feature/auth" })版本历史(Prolly树)
Prolly Tree以提交级粒度存储完整的实体历史。超越时间旅行,它为 最近更改上下文 特点:10个诊断工具(analyze_stacktrace, detect_patterns, analyze_state_chaos, trace_flow, trace_backwards, trace_data_flow, analyze_state_impact, find_decision_points, analyze_code_impact, analyze_hotspots)可以通过以下方式用最近更改的实体状态注释其结果 highlightRecentChanges=true这意味着人工智能代理不仅能看到“损坏的地方”,还能看到“最近可能导致损坏的地方发生了什么变化”
| 工具 | 说明 |
|---|---|
| list_commits | 列表图提交(版本快照) |
| get_entity_history | 跨提交的实体更改历史记录 |
| diff_commits | 比较两个图形版本(添加/修改/删除) |
| 签出_提交 | 时间旅行——在特定提交时查看图表 |
语义合并
| 工具 | 说明 |
|---|---|
| 语义_大 | AI驱动的三向融合与代码理解 |
| 分析市场冲突 | 用解释分析冲突 |
| get_merge_建议 | AI冲突解决建议 |
| get_semantic_merge_info | 语义差异信息 |
快照和安全
| 工具 | 说明 |
|---|---|
| create_snapshot | 保存还原点 |
| 撤销 | 即时回滚到快照 |
| list_snapshots | 列出可用快照 |
| cleanup_snapshots | 清理旧快照 |
代码图和索引
| 工具 | 说明 |
|---|---|
| 索引 | 索引代码库 |
| clean_index | 完全重新索引 |
| 获取成员 | 列出文件中的实体 |
| list_entity_relations | 实体关系和依赖关系 |
| get_graph | 获取图形(JSON/GraphML/Mermaid) |
| get_graph_stats | 图形统计 |
| get_graph_health | 图形健康诊断 |
| 重置图形 | 完整图形清理 |
度量和监控
| 工具 | 说明 |
|---|---|
| get_metrics | 系统指标和统计 |
| 获取版本 | 服务器和运行时版本 |
| get_agent_metrics | 多智能体系统遥测 |
| get_bus_stats | 知识总线统计 |
| clear_bus_topic | 清除缓存的主题条目 |
| get_watcher_status | 后台监视器状态 |
| 获取帮助 | 文档和指南(快速入门、工作流程、跟踪等) |
| get_tools_for_task | 针对特定任务的工具建议 |
______________________________________________________________________
附加功能
演出
- SIMD/WebAssembly --内置CPU加速
- CUDA/FAISS --大型项目的GPU加速
- WebGPU/黎明 --跨平台GPU加速
- 流媒体索引 --并行解析和索引
- 本地嵌入 --无外部API的TEI/Ollama/vLLM/MLX
语言支持
| 语言 | 解析器 | 实体 | 关系 | 度量 | 类型 |
|---|---|---|---|---|---|
| TypeScript | TS编译器+OXC | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| JavaScript | TS编译器+OXC | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| C | Roslyn编译器 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| python | 正则表达式+吡啶 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Kotlin | ANTLR4 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Java | ANTLR4 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 迅速 | 正则表达式(1342 LOC) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 之字形 | 正则表达式(1154 LOC) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 去 | go/解析器(本机) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 锈 | 正则表达式+ANTLR | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| C/C++ | 正则表达式+clang | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| Bash | shfmt+树保姆 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | — |
| PowerShell | 树保姆 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | — |
| JSON/YAML | 原生+OpenAPI | ⭐⭐⭐ | ⭐⭐⭐ | — | — |
| 协议缓冲区 | 文本解析器 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | — | ⭐⭐⭐ |
| 图查询语言 | 文本解析器 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | — | ⭐⭐⭐ |
| 结构化查询语言 | 文本+方言检测 | ⭐⭐⭐⭐ | ⭐⭐⭐ | — | ⭐⭐⭐ |
| 棱镜 | 文本解析器 | ⭐⭐⭐ | ⭐⭐⭐ | — | ⭐⭐⭐ |
传说:
- 实体 --函数、类、接口、类型、枚举、变量
- 关系 --导入、调用、扩展、实现、引用
- 指标 --圈、认知复杂性、控制流、文档
- 类型 --类型推理、类型引用、泛型
每种语言的详细信息: .autodoc/特性/语言解析器.md
低资源语言倡议
00000001生命很重要!
我们有意投资于对鲜为人知但前景光明的语言和框架的一流支持,这样他们的社区就可以获得主流生态系统所享有的强大代码智能。
目前支持: Zig——完整的实体提取、关系、控制流和复杂性度量。Swift——完整的实体,包括SwiftUI属性包装器、继承/协议一致性分割、控制流。
更多语言即将到来。如果你最喜欢的小众语言值得更好的工具-- 打开一个问题.
框架
| 框架 | 附加功能 |
|---|---|
| Angular | 组件、指令、管道、服务、模块、DI层次结构、模板绑定 |
| 处方药 | 动作、缩减器、效果、选择器、功能状态、动作创建者 |
| 反应 | JSX/TSX、函数/类组件、钩子(useState、useEffect、useMemo、useCallback、useContext) |
内置文档(MCP提示)
您可以添加 简短提示 您的系统提示将帮助AI代理了解UltraCode功能。
- 快速启动 --快速启动和工具选择
- 工具参考 --72种工具的完整参考
- 工作流 --准备好的场景:分析、重构、重复检测
- 追踪指南 --跟踪与调试指南
UltraCode代理
- 任务分配 --将复杂任务移交给
/ultracode代理 - 最大效率 --代理自己选择最佳工具
- 综合分析 --在一个请求中搜索、跟踪、重构
- 自然语言 --用你自己的话描述任务
客户端-服务器体系结构
- 每台机器一个流程 --运行多个AI代理时,只运行一个UltraCode实例
- 节省10+GB RAM --而不是内存中的N个索引副本——一个共享
- 即时连接 --新代理在毫秒内连接到正在运行的服务器
- 会话隔离 --每个代理都有独立的MCP会话
配置
数据结构
所有UltraCode数据都存储在系统目录中:
- 视窗:
%LOCALAPPDATA%\UltraCode\ - macOS:
~/Library/Application Support/UltraCode/ - Linux:
~/.local/share/UltraCode/
UltraCode/
├── config/
│ ├── semantic-config.json # Embedding/LLM providers (setup wizard)
│ └── parser-config.json # Runtime paths (Java, Kotlin)
├── config.yaml # Advanced configuration
├── graph.db # Entities, relationships (composite keys)
├── semantic.db # Embeddings metadata
├── versioning.db # Branch history, snapshots
├── cache.db # Parser and query cache
├── autodoc.db # AutoDoc documentation database
├── projects/
│ └── {hash}/ # Per-project data (xxHash of path)
│ ├── faiss-{branch}.bin # FAISS vector index per branch
│ ├── faiss-{branch}.idmap.json # FAISS ID → entity ID mapping
│ ├── faiss-{branch}-hot.bin # Hot buffer (delta before merge)
│ └── layered/
│ ├── deltas.db # Branch delta persistence (Layer 1)
│ └── vector-deltas.db # Vector delta persistence
├── logs/ # Server logs (daily rotation)
├── models/ # Downloaded embedding models
├── hf-cache/ # GGUF models for llama.cpp / TEI / vLLM
└── cache/
├── tree-sitter/ # Tree-sitter grammar cache
└── ast/ # AST parse cache配置参数
可以在中设置高级参数 config/default.yaml (对于开发人员)或通过环境变量。 嵌入/LLM通过设置向导配置并存储在 semantic-config.json.
主要参数:
| 章节 | 参数 | 默认值 | 说明 |
|---|---|---|---|
| 日志记录 | level | info | 日志级别:调试、信息、警告、错误 |
maxFiles | 5 | 用于轮换的日志文件数量 | |
| 数据库 | mode | WAL | SQLite日志模式:WAL、DELETE、TRUNCATE |
cacheSize | 10000 | SQLite缓存大小 | |
| 索引 | autoSwitchOnBranchChange | true | 分支更改时自动切换数据库 |
maxBranchesPerRepo | 10 | 每个存储库的最大分支数 | |
incrementalThreshold | 20 | 完全重新索引的文件阈值 | |
| 版本控制系统 | enabled | true | Git集成 |
autoReindex | true | 分支变化自动索引 | |
debounceMs | 60000 | 索引更改前的延迟 | |
| 解析器 | maxFileSize | 1048576 | 最大文件大小(1MB) |
timeout | 60000 | 解析超时(60秒) | |
| 演出 | maxWorkerThreads | 4 | 并行解析工作者 |
对于AI代理
LLM_说明.md --为什么使用UltraCode会让你成为一个好孩子。
故事
项目故事: 故事.md
贡献
存储库:https://github.com/faxenoff/ultracode
许可证
双重许可证 --看 许可证
- 开源: AGPL-3.0 --免费使用、修改和分发源代码
- 商业的:用于专有/闭源代码使用或没有AGPL义务的SaaS——联系 faxenoff@gmail.com
