工作区智能

工作区智能(WsIntel)是 wescode 的项目感知层,负责自动检测和理解工作区的项目特征。它让 AI 能够"看懂"你的项目——使用什么语言、什么框架、什么构建系统、什么代码风格。


核心概念

什么是工作区智能?

工作区智能是 wescode 五层能力栈中 L3(理解层)的重要组成部分。它回答以下问题:

为什么需要它?

没有工作区智能时,AI 在面对以下问题时需要手动探索:

帮我运行测试

AI 不知道应该执行 go test、npm test、pytest 还是 cargo test。

有了工作区智能,AI 自动知道项目类型并执行正确的命令。


项目类型自动检测

检测机制

WsIntel 通过分析工作区根目录下的标志文件来检测项目类型:

标志文件检测到的项目类型
go.modGo 模块
package.jsonNode.js / JavaScript / TypeScript
Cargo.tomlRust
pyproject.toml / setup.py / requirements.txtPython
pom.xml / build.gradleJava
Makefile通用(叠加在其他类型上)
docker-compose.ymlDocker(叠加检测)
.gitGit 仓库

复合检测

一个项目可以同时是多种类型:

检测结果:
├── Go 模块 (go.mod)
├── Docker 项目 (Dockerfile + docker-compose.yml)
├── Makefile 项目 (Makefile)
└── Git 仓库 (.git)

框架识别

除了语言级别的检测,WsIntel 还识别常见框架:

框架识别方式
Gin (Go)go.mod 中的 github.com/gin-gonic/gin
Echo (Go)go.mod 中的 github.com/labstack/echo
Reactpackage.json 中的 react 依赖
Vuepackage.json 中的 vue 依赖
Next.jsnext.config.js 或 package.json 中的 next
Djangomanage.py + settings.py
FastAPIrequirements.txt 中的 fastapi
Springpom.xml 中的 spring-boot

依赖关系分析

Go 项目

go.mod 分析:
├── 直接依赖:23 个
├── 间接依赖:156 个
├── 主要依赖:
│   ├── github.com/gin-gonic/gin v1.10.0
│   ├── gorm.io/gorm v1.25.0
│   ├── github.com/redis/go-redis/v9 v9.5.0
│   └── go.uber.org/zap v1.27.0
└── 安全建议:2 个依赖有可用更新

Node.js 项目

package.json 分析:
├── 生产依赖:45 个
├── 开发依赖:32 个
├── 主要依赖:
│   ├── react 19.0.0
│   ├── typescript 5.5.0
│   └── vite 6.0.0
├── 包管理器:pnpm(检测到 pnpm-lock.yaml)
└── Node.js 版本要求:>=18.0.0

依赖版本检查

WsIntel 会检查依赖的版本状态:


构建系统识别

构建命令推断

WsIntel 根据项目类型推断构建命令:

项目类型构建命令测试命令运行命令
Gogo build ./...go test ./...go run .
Node.js (npm)npm run buildnpm testnpm start
Node.js (pnpm)pnpm buildpnpm testpnpm dev
Pythonpip install -e .pytestpython -m app
Rustcargo buildcargo testcargo run
Java (Maven)mvn packagemvn testmvn spring-boot:run
Makefilemake buildmake testmake run

Makefile 分析

如果项目包含 Makefile,WsIntel 会解析其目标:

Makefile 目标:
├── build    — 编译项目
├── test     — 运行测试
├── lint     — 代码检查
├── dev      — 启动开发服务器
├── docker   — 构建 Docker 镜像
└── clean    — 清理构建产物

CI/CD 检测

WsIntel 还识别 CI/CD 配置:

文件CI 系统
.github/workflows/*.ymlGitHub Actions
.gitlab-ci.ymlGitLab CI
JenkinsfileJenkins
.circleci/config.ymlCircleCI
DockerfileDocker 构建

代码风格推断

格式化工具检测

WsIntel 检测项目使用的格式化工具:

配置文件工具
.prettierrc / .prettierrc.jsPrettier
.eslintrc / eslint.config.jsESLint
.editorconfigEditorConfig
golangci-lint.ymlgolangci-lint
pyproject.toml [tool.black]Black
pyproject.toml [tool.ruff]Ruff
rustfmt.tomlrustfmt

代码风格推断

当没有显式配置文件时,WsIntel 从现有代码中推断风格:

注意:推断的代码风格通过 CKG 的 Convention probe-cache 缓存,不持久化到记忆中(遵循 INV-MEM-12)。

AI 行为影响

代码风格推断直接影响 AI 生成的代码:

# 如果项目使用 4 空格缩进,AI 生成的代码也会使用 4 空格
# 如果项目使用 Tab 缩进,AI 生成的代码也会使用 Tab
# 如果项目变量命名使用 snake_case,AI 也会遵循

宿主环境感知

系统环境探测

WsIntel 在首次启动时探测宿主机环境:

探测项信息
操作系统macOS / Linux / Windows
Shellbash / zsh / fish / PowerShell
已安装工具go / node / python / cargo / make / docker / ...
工具版本Go 1.22 / Node 22 / Python 3.12 / ...
包管理器brew / apt / pacman / ...

共享探测

宿主环境探测是进程级共享的——一台机器上的多个 workspace 共享同一份探测结果,不会重复执行。探测结果缓存 5 分钟,通过 exec.LookPath 检测工具是否在 PATH 上(不 fork 子进程)。

AI 如何使用

AI 会根据环境信息调整行为:

# 如果检测到 macOS + brew
"使用 brew install xxx 安装缺失工具"

# 如果检测到 Linux + apt
"使用 sudo apt install xxx 安装缺失工具"

# 如果检测到 Go 1.22+
"可以使用 Go 1.22 的新特性如 range over integer"

与其他子系统的集成

CKG 集成

WsIntel 的检测结果影响 CKG 的索引策略:

CSE 集成

WsIntel 为约束满足引擎(CSE)提供项目级约束:

上下文组装

WsIntel 信息注入 AI 的系统提示词:

当前项目:Go 微服务
框架:Gin + GORM
构建:Makefile
测试:go test + testify
环境:macOS + Go 1.22 + Docker

注意事项

  1. 首次打开延迟:WsIntel 在首次打开项目时需要几秒钟完成探测
  2. 多 workspace:每个 VS Code workspace 是独立的分析单元
  3. Monorepo:对于 monorepo,WsIntel 分析根目录的项目类型
  4. 自定义构建:非标准构建系统可能无法被自动检测
  5. runtime probe-cache:Convention 推断结果不入记忆——它是运行时缓存,切换 workspace 后重新推断