01
项目总览面板
ZhikunCode · Web IDE · 浏览器 + 后端服务 + 分析服务
Java 后端主源码
75,461 行 / 512 文件
Java 测试代码
27,621 行 / 114 文件
React 前端
26,936 行 / 182 文件
Python 服务
7,151 行 / 29 文件
技术概览
| 项目名称 | ZhikunCode |
| 产品形态 | AI-Powered Web IDE |
| 总代码量 | 109,548 行(含测试 137,169 行)/ 837 文件 |
| 后端框架 | Spring Boot 3.4 + Java 21 |
| 前端框架 | React 18.3 + Vite 5.4 + Zustand 4.5 |
| 分析服务 | FastAPI + uvicorn + tree-sitter |
| UI 工具链 | Tailwind 3.4 + Monaco 0.52 + xterm.js 5.5 |
| 可视化 | Mermaid 11.14 + 15个自定义图表组件 |
代码量分布
Java 主源码75,461
Java 测试27,621
React 前端26,936
Python 服务7,151
02
三端分离架构总览
核心通信链路
▸ 三端分离架构全景插画
▶ 5条通信链路详情
| # | 链路 | 协议 | 关键文件 |
| 1 | 前端 → Java 后端 | REST API + WebSocket/STOMP | dispatch.ts (557行) + stompClient.ts (363行) |
| 2 | 前端 → Python 服务 | Vite Proxy 转发 | /api/git, /api/files, /api/code-quality, /api/analysis → :8000 |
| 3 | Java → LLM | HTTP/SSE Stream | LlmProviderRegistry → Anthropic / OpenAiCompatible |
| 4 | Java → MCP Server | 4种传输 | McpClientManager — STDIO/SSE/HTTP/WS |
| 5 | Java → Docker | Docker API | SandboxManager — 容器隔离执行 |
02.5
全链路数据流 — 从用户输入到流式响应
dispatch.ts 557行 → STOMP/WS → QueryEngine 8步循环 → 流式工具执行 → Zustand 实时更新
基于源码验证的端到端请求闭环:用户消息经 STOMP 发送至后端 Agent Loop,LLM 流式响应与工具执行结果通过 WebSocket 实时推送回前端 Zustand Store。
02b
全局数据流与模块依赖全景图
03
Agent Loop — 8步循环引擎
engine/ 8,873行 · QueryEngine.java 1,404行
压缩级联 ContextCascade
AutoCompact 状态回写 · 上下文窗口管理 · 触发条件: token数 > 阈值
创建流式执行会话 StreamingToolExecutor.newSession
初始化工具执行上下文 · 并行通道就绪
API 调用 + 模型降级 LlmProvider.streamChat
流式工具执行(立即启动) · 413二阶段恢复 · 模型降级链
收集 API 响应 StreamCollector.buildAssistantMessage
流式chunk聚合 · 工具调用提取 · thinking块处理
消费工具结果 并行执行,异步等待
工具权限检查 → 并行执行 → 结果收集 · 事务边界隔离
继续/终止判定
end_turn 信号检测 · max_tokens 恢复机制 · StopHook 自定义拦截
工具摘要注入 ToolResultSummarizer
长结果截断摘要 · LLM辅助压缩 · 上下文预算控制
状态更新 → 回到 Step 1 LOOP
消息历史追加 · 统计更新 · 压缩指标评估 · 循环继续
▸ Agent Loop 8步循环引擎
▶ 引擎关键特性
413二阶段恢复首次截断context → 二次仍失败则模型降级
自纠错检测 — 错误感知与自动恢复
▸ Step 5.5 Self-Correction Detection · SelfCorrectionLoop.java 350行 · MAX_ATTEMPTS=3
04
14步权限管线
permission/ 11文件 2,672行 · PermissionPipeline.java 752行
▶ STAGE 1: 拒绝 / 询问规则 11 步
工具自身权限检查
tool.checkPermissions() · 内置安全约束
requiresUserInteraction
标记需要用户交互 → ASK
内容级 ask 规则 优先于 bypass
内容模式匹配 → 强制ASK · bypass免疫
系统级命令黑名单 bypass 免疫
CommandBlacklistService → 高危命令永久拦截
写路径危险文件检查
.env / 配置 / 密钥写入 → ASK
Bash 危险删除 + 环境变量
rm -rf / export 等危险模式 → ASK
安全检查 bypass 免疫
敏感目录(.git/.zhikun/) → 永久拦截
敏感系统文件访问检查
系统文件(/etc/passwd ~/.ssh/) → 拦截
▶ STAGE 2: 允许规则 5 步
Hook 权限规则注入
StopHook / 插件动态权限注入
Classifier 权限规则注入 auto 模式
AutoModeClassifier 591行 · 智能分类 → 自动授权
Sandbox 权限规则覆盖
Docker沙箱 → 放宽约束
skipAllPrompts 模式
全局绕过开关 → 跳过非免疫检查
alwaysAllow 规则
持久化允许列表 → ALLOW
▶ STAGE 3: 模式转换 1 步 → 7 模式
passthrough → ask,进入模式分支
DEFAULT PLAN ACCEPT_EDITS DONT_ASK BYPASS AUTO BUBBLE
辅助组件: AutoModeClassifier (591行) · PermissionRuleRepository (271行) · PermissionRuleMatcher (253行) · PermissionModeManager (155行)
▸ 14步权限管线全景流程
AUTO 模式 — LLM 智能权限分类 (AutoModeClassifier · 591行)
▸ AutoModeClassifier 两阶段 XML 分类决策流
05
Bash 安全模块 — 6层 AST 解析
tool/bash/ 17文件 5,620行
AST 解析架构 (递归下降)
parseProgram()
└─ parseStatements(terminator)
└─ parseAndOr()
└─ parsePipeline()
└─ parseCommand()
├─ parseSimpleCommand()
├─ parseIf / While / For
├─ parseFunction
└─ subshell / compound
核心组件
BashParserCore1,116 行 — 递归下降解析器
BashCommandClassifier1,235 行 — 命令分类引擎
BashLexer824 行 — 词法分析器
BashSecurityAnalyzer771 行 — AST 安全扫描
PathValidator341 行 — 路径安全校验
SedValidator204 行 — sed 命令校验
HeredocExtractor196 行 — heredoc 提取
安全分析结果模式:
Simple(commands)
TooComplex(reason)
ParseUnavailable
Bash 安全模块 AST 解析流水线 — 6层纵深防御 · 17文件 5,620行
Docker 沙箱隔离 — 容器级安全边界 — SandboxManager.java 259行 · SandboxConfig.java 57行
06
LLM 多提供商架构
llm/ 26文件 3,456行
▶ Provider 抽象层
LlmProviderRegistry (237行) — 提供商注册中心
├── AnthropicProvider (338行) → Claude 系列
└── OpenAiCompatibleProvider (655行)
├── OpenAI GPT
├── 通义千问 (Qwen)
├── DeepSeek
├── Moonshot / Kimi
├── 智谱 GLM-4
└── Ollama 本地部署
模型别名:
light → qwen-plus
standard → qwen3.6-plus
premium → qwen3.6-max-preview
▶ 辅助组件
ModelRegistry
127行 · 模型配置注册
MessageParamConverter
272行 · 消息参数转换
ThinkingBudgetCalculator
104行 · thinking预算
LlmErrorClassifier
126行 · 错误分类
RetryPolicy
104行 · 重试策略
ApiKeyRotationManager
密钥轮换管理
模型降级与容错 — 多 Provider 自动切换
API 密钥轮换 — ApiKeyRotationManager · 150行
06a
Token 预算与模型策略
▶ IncrementalCollapseManager 增量折叠 · 175行
注解@Service @ConditionalOnProperty(name="context.cascade.incremental-collapse.enabled")
shouldCollapse()累计 turnCount,每10轮触发折叠
recordCollapse()记录折叠段元数据
状态管理会话级 ConcurrentHashMap · 30分钟超时自动清理
▶ ModelTierService 模型降级 · 156行
注解@Service
resolveModel()选择最佳可用层级
triggerCooldown()API容量错误 → 冷却管理
reportSuccess()健康探测恢复(3次成功阈值)
冷却策略30分钟默认 · retry-after感知 · 短期重试豁免
WebSocket/STOMP 实时通信时序 — 前端↔后端双向通信全景 · 基于源码实证
WebSocket/STOMP 实时通信 — stompClient.ts 363行 · 双向消息流
▸ WebSocket/STOMP 实时通信协议栈 — 源码验证
08
MCP 双向协议架构
mcp/ 30文件 5,219行(main/源码,含测试则34文件/6,325行)
McpClientManager · 586行 · 4协议
Client/Server 双向支持
MCP 2024-11-05 规范
生命周期: connect→init→ready→close
STDIO · SSE · HTTP · WebSocket
09
工具系统
tool/ 105+文件 ~19,081行 · tool/impl/ — 43个工具
▶ 工具分类树
文件操作
ReadFile
WriteFile
EditFile
ListDir
SearchFiles
执行 & 终端
BashTool → Sec §5
TaskTool
NotebookTool
搜索 & 分析
GrepTool
GlobTool
CodeSearchTool
Agent & 协作
SubAgentTool
MemoryTool → §11
McpTool → §7
Web & Git
WebFetchTool
WebSearchTool
GitTool
共 43 个工具实现 · 每个工具继承 AbstractTool 基类 · 支持权限声明 + Schema 定义 + 流式结果
▸ 工具分类与执行管道全景
插件生命周期 — 发现 · 隔离加载 · 注册 · 执行 · 卸载 — PluginManager 422行 · PluginLoader 330行 · PluginClassLoader 89行
▸ 工具权限决策模型 — 7种模式 · 7步管线 · 3层Bash验证
10
上下文管理 — 5层压缩策略
L0 SnipL1 MicroCompact 183行L2 AutoCompact 1,058行L3 IncrementalCollapse 174行L4 ReactiveCompact 148行
ContextCascade 348行 · 五级级联编排
三区划分 — Protected / Compressible / Tail
11
辅助系统
▶ 记忆系统 memdir/ 5文件 1,089行
MemdirService598行 — 核心记忆目录管理
MemorySearchEngine197行 — BM25检索(K1=1.2, B=0.75)
MemoryRerankService128行 — LLM精排(3000ms超时降级)
MemoryTool117行 — 工具接口
▶ Skill 系统 skill/ 9文件 1,437行
SkillRegistry412行 — 6级加载源
FrontmatterParserSkill 元数据解析
▶ 安全模块 security/ 5文件 1,248行
CommandBlacklistService377行 — 命令黑名单
PathSecurityService433行 — 路径安全
SensitivePathRegistry300行 — 敏感路径注册
SensitiveDataFilter68行 — 数据过滤
SecurityAuditLogger70行 — 审计日志
▶ Docker 沙箱 sandbox/ 2文件 316行
记忆系统架构 — BM25检索 · LLM重排序 · 会话历史
记忆检索-精排流水线 — Query → BM25 召回 → LLM Rerank → Context 注入
插件系统 SPI 发现与沙箱隔离架构 — plugin/ 14文件 + hook/ 5文件 · ServiceLoader SPI · URLClassLoader 隔离
Skill 系统任务分解架构 — skill/ 9文件 1,437行 · DAG执行
12
多Agent协调系统
coordinator/ 19文件 4,138行 + agent/ 10文件 2,409行 = 29个类
Team模式Swarm模式SubAgent模式
coordinator/ 19文件 · SubAgentExecutor 1,032行 · SwarmService 484行
▸ 多Agent协作系统 — Team / Swarm / SubAgent 三模式全景
三模式协调对比 — Team · Swarm · SubAgent
▸ CoordinatorWorkflowEngine 统一调度 — 三模式对比与转换
13
React 前端架构
182文件 26,936行
▶ 组件层 104文件 13,502行 24子目录
visualization ×14
message ×19
status ×9
layout ×6
input ×6
common ×5
settings ×4
dialog ×4
theme ×3
permission ×2
git ×2
browser ×3
apos ×2
command ×2
compact ×1
cost ×1
dashboard ×1
diff ×1
doctor ×1
help ×1
memory ×1
plan ×1
plugins ×1
▶ 15个可视化组件
CodeComplexityTreemap663行
CodePathTracer621行
ChangeImpactGraph570行
APIContractViewer527行
CodeDiagramGenerator407行
AgentDAGChart531行
GitTimeline369行
APISequenceDiagram255行
SchemaViewer235行
MermaidBlock204行
BlameView186行
AgentDAGNode103行
ToolProgressBar99行
MiniLogViewer67行
▶ 状态管理 — 30 个 Zustand Store 约2,846~3,278行(仅业务Store)
coordinatorStoremcpStoreconfigStoreswarmStoremessageStoreplanStoretaskStoresessionStoretoolStorepermissionStore
+ 19 more stores
▸ 30个 Zustand Store 分类与依赖关系
▸ Store 依赖关系 — dispatch.ts 558行 · 消息分发中枢
▸ 可视化组件矩阵 — 代码分析 · API契约 · Agent执行
▸ 前端路由架构 — 页面组织与导航结构
▶ API 通信层
dispatch.ts 557行
REST API 统一调度层 · 请求/响应拦截 · 错误重试
stompClient.ts 363行
WebSocket/STOMP 实时通信 · 消息订阅 · 重连机制
技术栈
React 18.3Vite 5.4Zustand 4.5Monaco Editor 0.52xterm.js 5.5Tailwind 3.4Mermaid 11.14
14
Python 分析服务架构
29文件 7,151行
▶ 分析引擎 analyzers/ 2,872行
flow_chart_generator.py657 行
code_path_tracer.py622 行
call_graph_builder.py582 行
sequence_diagram_generator.py527 行
change_impact_analyzer.py416 行
▶ 业务服务 services/ 1,725行
browser_service.py799 行
complexity_analyzer.py515 行
tree_sitter_service.py237 行
browser_models.py119 行 — Pydantic 浏览器数据模型
▶ API 路由 routers/ 1,526行
/api/analysis434行
/api/browser315行
/api/files276行
/api/code-intel213行
/api/git125行
/api/v1/tokens97行
/api/code-quality95行
/api/tokenizer73行
6个能力域 支持优雅降级
CODE_INTELFILE_PROCESSINGCODE_QUALITYANALYSISGIT_ENHANCEDBROWSER_AUTOMATION
▸ Python 代码分析引擎架构
代码分析能力域 — 分析器 · 服务 · API 端点
15
部署架构 — 单容器多进程
Single Container · Java主进程托管Python子进程 · 前端静态资源集成 · 日志按日滚动
Docker
docker-compose.yml · 单容器多进程架构
Dockerfile + docker-entrypoint.sh → 多阶段构建
Scripts
start.sh / stop.sh · 一键启停
Java + Python + 前端三进程统一管理
Logging
日志滚动 · app-YYYY-MM-DD-N.log.gz
按日期+序号自动滚动,gzip 压缩归档
Config
环境配置 · .env + .env.example
集中管理数据库、API Key、端口等环境变量
ZhikunCode Architecture Reference · 109,548 Lines · 837 Files · Generated for CTO Review