mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
- 将 WebView 调整到编辑器右侧 - 添加 ChatHeader 组件,实现会话下拉菜单 - 替换模态框为紧凑型下拉菜单 - 更新会话切换逻辑,显示当前标题 - 清理旧的会话选择器样式 基于 Claude Code v2.0.43 UI 分析实现。
25 KiB
25 KiB
AionUI VSCode 插件 vs 通义灵码对比分析
目录
核心架构差异
通义灵码(Tongyi Lingma)
VSCode 插件(紧密集成)
↓ 直接 API 调用
阿里云通义千问服务
↓
返回结果并深度集成 VSCode
特点:
- 单体应用架构
- 深度集成 VSCode Language Server Protocol (LSP)
- Agent 逻辑内置在插件中
- 代码上传到阿里云处理
AionUI VSCode 插件
VSCode 插件(轻量级集成)
↓ ACP 协议(JSON-RPC 2.0)
独立 Agent CLI(Qwen/Claude/Gemini)
↓ 可选择不同后端
多种 AI 服务(Qwen/Claude/OpenAI/本地模型)
特点:
- 模块化架构
- 基于开放标准(ACP 协议)
- Agent 可独立升级
- 支持本地/私有部署
- 遵循 UNIX 哲学:"做一件事,并做好"
功能对比
功能列表对比表
| 功能类别 | 通义灵码 | AionUI 插件 | 备注 |
|---|---|---|---|
| 智能代码补全 | |||
| 行级代码补全 | ✅ | ❌ | 需要 LSP 深度集成 |
| 函数级代码补全 | ✅ | ❌ | 需要 LSP 深度集成 |
| 聊天与对话 | |||
| AI 聊天界面 | ✅ | ✅ | 两者都支持 |
| 流式响应 | ✅ | ✅ | 两者都支持 |
| 会话历史 | ✅ | ✅ | 我们支持跨项目查看 |
| 多轮对话 | ✅ | ✅ | 两者都支持 |
| 代码操作 | |||
| 代码生成 | ✅ | ✅ | 通过聊天实现 |
| 代码解释 | ✅ | ⚠️ | 需手动复制代码 |
| 代码优化 | ✅ | ⚠️ | 通过聊天实现 |
| 代码注释生成 | ✅ | ❌ | 计划添加 |
| 代码重构建议 | ✅ | ⚠️ | 通过聊天实现 |
| 测试相关 | |||
| 单元测试生成 | ✅ | ⚠️ | 通过聊天实现 |
| 测试用例建议 | ✅ | ⚠️ | 通过聊天实现 |
| 错误处理 | |||
| 错误检测 | ✅ | ❌ | |
| 错误修复建议 | ✅ | ⚠️ | 通过聊天实现 |
| 高级功能 | |||
| 多文件编辑 | ✅ | ⚠️ | 需 Agent 支持 |
| 工程检索 | ✅ | ❌ | 计划添加 |
| 终端集成 | ✅ | ❌ | 计划添加 |
| 多模态问答 | ✅ | ❌ | |
| MCP 工具支持 | ✅ | ⚠️ | 需 Agent 支持 |
| 编程智能体 | ✅ | ⚠️ | 依赖 Agent 能力 |
| 模型与服务 | |||
| 单一模型 | ✅ | ❌ | 仅通义千问 |
| 多模型切换 | ❌ | ✅ | 支持多 Agent |
| 本地模型 | ❌ | ✅ | 支持 Ollama 等 |
| 私有部署 | ❌ | ✅ | 企业内部 LLM |
| 离线使用 | ❌ | ✅ | 本地模型可离线 |
| 隐私与安全 | |||
| 代码本地处理 | ❌ | ✅ | 可选本地模型 |
| 数据不上传云端 | ❌ | ✅ | 本地模式 |
| 企业合规支持 | ⚠️ | ✅ | 私有部署 |
| 代码审计能力 | ❌ | ✅ | 开源可审计 |
| 开发者体验 | |||
| 开箱即用 | ✅ | ⚠️ | 我们需要配置 |
| 完全免费 | ✅ | ✅ | 两者都免费 |
| 开源 | ❌ | ✅ | 我们完全开源 |
| 可定制 | ❌ | ✅ | 深度可定制 |
图例说明:
- ✅ 完全支持
- ⚠️ 部分支持或需要额外配置
- ❌ 不支持
核心优势
1. 🌟 多 Agent 支持(独家优势)
通义灵码的限制:
{
"model": "通义千问" // 仅此一个选择
}
我们的灵活性:
// 随时切换不同的 Agent
await connection.connect('qwen', ...) // 通义千问(中文好)
await connection.connect('claude', ...) // Claude Code(推理强)
await connection.connect('gemini', ...) // Gemini Code(多模态)
await connection.connect('custom', ...) // 自定义 Agent
真实使用场景:
// 场景 1:中文文档生成
switchAgent('qwen');
prompt('帮我写一份详细的中文 README');
// 场景 2:算法优化
switchAgent('claude');
prompt('优化这个排序算法的时间复杂度');
// 场景 3:数据可视化
switchAgent('gemini');
prompt('分析这张图表并生成代码');
优势:
- ✅ 不被单一服务商绑定
- ✅ 针对不同任务选择最佳模型
- ✅ 一个服务挂了可以立即切换
- ✅ 价格竞争带来的长期成本优势
2. 🔒 完全的数据隐私(企业级优势)
通义灵码的数据流:
你的代码
↓ 上传
阿里云服务器
↓ 处理
可能用于模型训练
↓ 返回
结果
潜在风险:
- ⚠️ 代码可能被用于模型训练
- ⚠️ 敏感业务逻辑暴露
- ⚠️ 无法通过安全审计
- ⚠️ 竞争对手可能使用相同模型(学习了你的代码风格)
我们的三种隐私方案:
方案 A:本地模型(最高隐私)
{
"aionui.qwen.openaiBaseUrl": "http://localhost:11434/v1",
"aionui.qwen.model": "qwen2.5-coder:32b"
}
你的代码 → 本地 Ollama → 本地模型 → 本地结果
↑ 完全不联网 ↑
方案 B:企业私有部署
{
"aionui.qwen.openaiBaseUrl": "https://llm.your-company.internal/v1",
"aionui.qwen.model": "company-qwen-fine-tuned"
}
你的代码 → 企业内网 → 私有 LLM → 返回结果
↑ 不出内网 ↑
方案 C:选择性云端
// 敏感代码 → 本地模型
if (isSensitiveCode(file)) {
useAgent('local-ollama');
}
// 普通代码 → 云端模型(速度快)
else {
useAgent('qwen-cloud');
}
适用场景:
- 💼 金融行业:代码绝对不能外泄
- 🏥 医疗行业:患者数据隐私保护
- 🛡️ 国防/政府:国家安全要求
- 🏭 核心技术公司:商业机密保护
3. 💰 不被服务商"绑架"(长期优势)
通义灵码的风险时间线:
2024.01:完全免费 🎉
↓
2024.06:部分高级功能收费 💰
↓
2025.01:基础功能也开始限额 📊
↓
2025.06:大幅涨价 📈
↓
2026.01:你已经深度依赖,无法迁移 😱
我们的应对策略:
// 今天:Qwen 免费且好用
config.agent = 'qwen';
// 明天:Qwen 开始收费
config.agent = 'claude'; // 一行配置切换
// 后天:Claude 也涨价了
config.agent = 'local-ollama'; // 切换到本地
// 大后天:想用最新的模型
config.agent = 'gpt-4'; // 又可以切回来
// 永远有多个备选方案
成本对比示例(假设场景):
场景:中型团队(20 人),每人每天 100 次 AI 调用
通义灵码:
- 2024:免费
- 2025:$0.01/次 → $20 * 100 * 20 = $40,000/年
- 2026:$0.02/次 → $80,000/年
- 无法迁移,继续被动接受涨价
AionUI 插件:
- 2024:免费
- 2025:Qwen 收费 → 切换到 Gemini(免费)→ $0
- 2026:都收费 → 部署本地 Ollama → $3,000(服务器成本)
- 永远有选择权
4. 🔧 开源和可定制(开发者优势)
通义灵码的局限:
你:这个功能不好用,能改吗?
官方:不能,等我们下次更新
你:能加一个 XXX 功能吗?
官方:已记录需求,排期中...
你:为什么这样设计?
官方:商业机密,不便透露
我们的自由:
// 不喜欢默认 prompt?直接改!
const systemPrompt = `
你是一个专注于性能优化的 Rust 专家。
回答时:
1. 优先考虑零成本抽象
2. 避免不必要的内存分配
3. 使用 unsafe 时必须详细说明理由
`;
// 想加自定义功能?自己写!
case 'vscode/analyze_performance':
const profile = await analyzePerformance(code);
return formatAnalysisReport(profile);
// 想改 UI?随便改!
// App.css - 所有样式都在你手里
// 想集成内部工具?轻松集成!
case 'company/check_code_style':
const result = await companyStyleChecker.check(code);
return result;
实际定制案例:
案例 1:团队专属 Prompt 模板
// 为不同团队定制不同的 AI 行为
const teamPrompts = {
backend: '你是 Go 后端专家,注重并发安全和性能',
frontend: '你是 React 专家,注重用户体验和可维护性',
ml: '你是 Python ML 专家,注重数据处理和模型优化',
};
function getTeamPrompt() {
const team = vscode.workspace.getConfiguration('company').get('team');
return teamPrompts[team];
}
案例 2:集成公司内部工具
// 自动调用公司的代码审查系统
async function handleCodeReview(code: string) {
const issues = await companyCodeReviewAPI.analyze(code);
const aiAnalysis = await agent.sendPrompt(`
这段代码有以下问题:
${JSON.stringify(issues)}
请给出修复建议:
${code}
`);
return aiAnalysis;
}
5. 🪶 轻量级和透明(信任优势)
通义灵码(黑盒):
# 安装包大小
du -sh ~/.vscode/extensions/alibaba-cloud.tongyi-lingma-*
50MB # 打包了大量功能和依赖
# 运行时行为
通义灵码:在后台做什么?不知道 🤷
- 是否收集代码统计?
- 是否上传使用数据?
- 是否有遥测功能?
- 网络请求去哪里?
我们(透明):
# 代码体积
du -sh dist/
300KB dist/extension.js # 扩展主体
150KB dist/webview.js # UI 界面
------
450KB 总计(极致轻量)
# 运行时行为 - 完全透明
src/extension/
├── extension.ts # 入口点,53 行
├── WebViewProvider.ts # WebView 管理,345 行
├── agents/
│ └── QwenAgentManager.ts # Agent 管理,165 行
└── acp/
└── AcpConnection.ts # 协议实现,391 行
# 所有行为都可以审计
- 启动时:spawn('qwen', ['--experimental-acp'])
- 发送消息时:connection.sendPrompt(message)
- 文件操作时:需要用户确认
- 网络请求:只有与 Agent 的通信(stdio)
安全审计示例:
# 审计 1:检查是否有未声明的网络请求
grep -r "https://" src/
# 结果:只有 README 中的文档链接
# 审计 2:检查是否上传数据
grep -r "telemetry\|analytics\|tracking" src/
# 结果:无
# 审计 3:检查文件访问
grep -r "fs\." src/
# 结果:只在 QwenSessionReader.ts 中读取会话文件(本地)
6. 📚 更好的会话管理(数据主权优势)
通义灵码的会话管理:
会话存储:阿里云服务器
访问方式:只能通过插件 UI
导出功能:不支持
备份功能:不支持
迁移功能:不支持
所有权:阿里云 > 你
我们的会话管理:
# 会话文件在本地,完全属于你
~/.qwen/tmp/
├── c8e6a9be.../chats/
│ ├── session-2025-11-15T10-44-xxx.json
│ └── session-2025-11-15T13-56-yyy.json
└── 330514947a.../chats/
└── session-2025-11-15T11-05-zzz.json
# 会话文件格式(JSON,易于处理)
{
"sessionId": "xxx",
"startTime": "2025-11-15T13:57:02.150Z",
"messages": [
{"type": "user", "content": "..."},
{"type": "qwen", "content": "..."}
]
}
你可以做的事:
1. 备份到版本控制
# 把重要的 AI 对话备份到 Git
cp ~/.qwen/tmp/*/chats/session-important.json \
~/project/docs/ai-conversations/
git add docs/ai-conversations/
git commit -m "Add AI pair programming session"
2. 导出为 Markdown
// 自己写脚本转换
function exportToMarkdown(sessionFile: string) {
const session = JSON.parse(fs.readFileSync(sessionFile));
let markdown = `# ${session.startTime}\n\n`;
session.messages.forEach((msg) => {
markdown += `## ${msg.type}\n${msg.content}\n\n`;
});
fs.writeFileSync('session.md', markdown);
}
3. 分析 AI 使用模式
// 统计你最常问的问题类型
const sessions = getAllSessions();
const topics = sessions.flatMap((s) =>
s.messages
.filter((m) => m.type === 'user')
.map((m) => classifyTopic(m.content)),
);
console.log(countBy(topics));
// 输出:{ "debug": 45, "refactor": 30, "explain": 25 }
4. 跨设备同步
# 通过云盘同步
ln -s ~/Dropbox/qwen-sessions ~/.qwen/tmp
# 或者通过 Git
cd ~/.qwen
git init
git remote add origin git@github.com:yourname/ai-sessions.git
git push
7. 🐧 更符合 UNIX 哲学(架构优势)
UNIX 哲学:
- 小而美:每个程序只做一件事
- 可组合:程序之间通过标准接口通信
- 文本流:使用通用的数据格式
通义灵码(违反 UNIX 哲学):
┌─────────────────────────────────────┐
│ 通义灵码(单体应用) │
│ ┌────────────────────────────────┐ │
│ │ 代码补全引擎 │ │
│ │ 聊天界面 │ │
│ │ 错误检测系统 │ │
│ │ 重构工具 │ │
│ │ 终端集成 │ │
│ │ 文件操作 │ │
│ │ ... 全都耦合在一起 │ │
│ └────────────────────────────────┘ │
└─────────────────────────────────────┘
我们(遵循 UNIX 哲学):
┌──────────────────┐
│ VSCode 插件 │ ← 只负责 UI 集成(300 行核心代码)
└────────┬─────────┘
│ ACP 协议(标准接口,类似 stdin/stdout)
↓
┌──────────────────┐
│ Qwen CLI │ ← 只负责 AI 对话(独立进程)
└────────┬─────────┘
│ HTTP API(标准接口)
↓
┌──────────────────┐
│ Qwen 服务 │ ← 只负责模型推理
└──────────────────┘
优势体现:
1. 组件独立升级
# Qwen CLI 更新 → 不需要更新插件
npm install -g @qwen-code/qwen-code@latest
# 插件更新 → 不影响 CLI
code --install-extension aionui-vscode-v2.0.0.vsix
# 模型更新 → CLI 自动使用新模型
# 无需任何操作
2. 跨平台复用
# 在 VSCode 中
VSCode 插件 → ACP → Qwen CLI
# 在 Vim 中(假设有人写了插件)
Vim 插件 → ACP → Qwen CLI
# 在终端中
$ qwen chat
> 帮我写个 Python 脚本
3. 可替换组件
// 今天用 Qwen CLI
spawn('qwen', ['--experimental-acp']);
// 明天换成 Claude CLI
spawn('claude', ['--experimental-acp']);
// 后天换成自己写的 Agent
spawn('./my-custom-agent', ['--acp']);
8. 📖 学习和教育价值(社区优势)
通义灵码(黑盒学习):
学生:这个是怎么实现的?
老师:源码不开放,我们只能猜测
学生:我想理解 AI 插件的原理
老师:只能看文档和表现,无法看代码
学生:能不能魔改一下做毕业设计?
老师:不行,闭源的
我们(开放学习):
// 完整的学习路径
// 第 1 课:理解 VSCode Extension API
// 📖 src/extension/extension.ts
export function activate(context: vscode.ExtensionContext) {
// 学习如何注册命令
// 学习如何创建 WebView
// 学习如何管理生命周期
}
// 第 2 课:理解 进程间通信(IPC)
// 📖 src/extension/acp/AcpConnection.ts
class AcpConnection {
// 学习如何 spawn 子进程
// 学习如何通过 stdio 通信
// 学习 JSON-RPC 2.0 协议
}
// 第 3 课:理解 React + TypeScript
// 📖 src/webview/App.tsx
export const App: React.FC = () => {
// 学习 React Hooks
// 学习状态管理
// 学习与 Extension 通信
}
// 第 4 课:理解 ACP 协议
// 📖 查看实际的协议交互
{
"jsonrpc": "2.0",
"method": "session/prompt",
"params": { "prompt": "..." }
}
实际教育场景:
场景 1:大学课程作业
课程:软件工程
作业:理解并扩展一个真实的开源项目
学生可以:
1. Fork 我们的项目
2. 添加新功能(如代码统计、历史分析)
3. 提交 Pull Request
4. 写技术报告分析架构
场景 2:技术博客/教程
博主可以:
1. 分析我们的代码架构
2. 写"如何实现 VSCode AI 插件"教程
3. 录制视频课程
4. 贡献改进建议
→ 形成正向循环,吸引更多贡献者
场景 3:企业内部培训
企业可以:
1. 用我们的代码培训新员工
2. 理解 VSCode 扩展开发最佳实践
3. 学习如何集成 AI 能力
4. 基于我们的代码开发内部工具
真实场景对比
场景 1:个人独立开发者
背景:
- 独立开发者 Alice
- 做开源项目
- 注重隐私
- 预算有限
使用通义灵码:
✅ 开箱即用,快速上手
✅ 功能丰富,提高效率
❌ 开源代码可能被用于商业模型训练
❌ 无法审查数据流向
❌ 被锁定在阿里云生态
使用 AionUI 插件:
✅ 完全隐私,代码不上传(本地模型)
✅ 可以审查所有代码
✅ 可以自由定制功能
✅ 符合开源精神
⚠️ 需要一点配置时间
推荐:AionUI 插件 理由:开源项目注重透明和隐私,完全可控更重要
场景 2:金融科技公司
背景:
- 中型金融科技公司
- 100 名开发者
- 严格的安全合规要求
- 代码绝对不能外泄
使用通义灵码:
❌ 代码上传到外部服务器(安全风险)
❌ 无法通过金融行业安全审计
❌ 可能违反数据保护法规
❌ 无法审计数据流向
❌ 竞争对手可能使用相同服务
使用 AionUI 插件(企业私有部署):
✅ 部署在内网,代码不出内网
✅ 可以通过安全审计(开源代码)
✅ 符合数据保护法规
✅ 完全自主可控
✅ 可以基于公司代码微调模型
✅ 成本可控(一次性部署成本)
推荐:AionUI 插件 + 私有部署 理由:安全合规是第一要务,不能有任何妥协
实施方案:
# 企业部署架构
内网服务器 (192.168.1.100):
- Ollama / vLLM 服务
- Qwen2.5-Coder 32B 模型
- 基于公司代码库微调
开发者机器:
- VSCode + AionUI 插件
- 配置:
openaiBaseUrl: "http://192.168.1.100:11434/v1"
model: "company-qwen-fine-tuned"
数据流:
开发者 → 内网 LLM → 开发者
↑ 完全不出内网 ↑
场景 3:初创公司快速迭代
背景:
- 5 人初创团队
- 需要快速 MVP
- 预算紧张
- 暂时不太在意隐私
使用通义灵码:
✅ 完全免费
✅ 开箱即用,不需要配置
✅ 功能丰富,覆盖大部分需求
✅ 中文支持好
⚠️ 未来可能收费(被动)
使用 AionUI 插件:
✅ 免费
✅ 功能覆盖核心需求
✅ 未来可切换模型(主动)
⚠️ 需要配置
推荐:通义灵码(短期) → AionUI 插件(长期) 理由:
- 短期:用通义灵码快速启动
- 长期:迁移到 AionUI 插件避免锁定
迁移策略:
第 1-3 月:用通义灵码快速开发 MVP
第 4-6 月:团队熟悉 AionUI 插件
第 7 月:开始迁移关键项目
第 8-12 月:完全迁移,删除通义灵码
场景 4:教育机构/大学
背景:
- 计算机系,200 名学生
- 教授 AI 辅助编程课程
- 培养学生理解底层原理
使用通义灵码:
✅ 学生容易上手
❌ 无法看到实现代码
❌ 学习价值有限(黑盒)
❌ 无法做深入研究
❌ 无法定制教学功能
使用 AionUI 插件:
✅ 完全开源,学生可以阅读代码
✅ 可以作为课程项目基础
✅ 学生可以贡献代码(实践)
✅ 可以定制教学功能
✅ 可以写论文分析架构
推荐:AionUI 插件 理由:教育的核心是理解,开源项目提供完整的学习路径
教学方案:
第 1-4 周:理解 VSCode Extension API
- 作业:阅读 extension.ts,理解插件激活流程
第 5-8 周:理解 IPC 和 ACP 协议
- 作业:实现一个简单的 JSON-RPC 客户端
第 9-12 周:理解 React 和 WebView
- 作业:为聊天界面添加新功能
第 13-16 周:大作业
- 选项 1:添加代码统计功能
- 选项 2:集成新的 Agent
- 选项 3:实现代码审查功能
场景 5:开源项目维护者
背景:
- 维护一个流行的开源库
- 社区贡献者来自全球
- 注重透明和信任
使用通义灵码:
❌ 代码可能被用于训练商业模型
❌ 贡献者无法审查工具
❌ 不符合开源精神
❌ 社区可能质疑隐私问题
使用 AionUI 插件:
✅ 完全开源,符合项目精神
✅ 贡献者可以审查
✅ 可以选择不上传代码的模型
✅ 社区可以贡献改进
✅ 可以写在项目 CONTRIBUTING.md 中推荐
推荐:AionUI 插件 理由:开源项目用开源工具,保持一致的价值观
适用人群
推荐使用通义灵码的人群
-
🆕 初学者
- 刚接触编程
- 想要开箱即用的体验
- 不想花时间配置
-
⚡ 追求效率的个人开发者
- 对隐私不太敏感
- 需要丰富的功能
- 愿意接受未来可能的收费
-
🇨🇳 中文为主的项目
- 代码和文档都是中文
- 团队都在国内
- 网络访问阿里云很快
推荐使用 AionUI 插件的人群
-
💼 企业开发者
- 注重数据安全
- 需要通过安全审计
- 有私有部署需求
-
🔧 极客/技术专家
- 喜欢折腾和定制
- 理解底层原理
- 有开源精神
-
🎓 学生/研究者
- 想要学习技术实现
- 需要用于研究项目
- 希望贡献开源社区
-
🌍 国际化团队
- 团队成员分布全球
- 需要使用多种 AI 模型
- 不想被单一服务商锁定
-
🏢 注重长期成本的组织
- 不想被供应商涨价绑架
- 希望有多个备选方案
- 有技术能力进行部署
-
🛡️ 开源项目维护者
- 保持工具链的开源
- 社区透明度要求高
- 贡献者遍布全球
未来规划
短期目标(1-2 个月)
1. VSCode 深度集成
- ✅ 自动上下文注入(当前文件、选中内容)
- ✅ 右键菜单快捷命令
- ✅
@filename文件引用语法 - ✅ Terminal 输出集成
2. 用户体验优化
- ✅ Markdown 渲染优化
- ✅ 代码块语法高亮
- ✅ 复制代码按钮
- ✅ 会话搜索功能
中期目标(3-6 个月)
3. 多 Agent 完善
- ✅ Claude Code 集成
- ✅ Gemini Code 集成
- ✅ Agent 切换 UI
- ✅ Agent 性能对比
4. 高级功能
- ✅ MCP 工具支持(如果 Agent 支持)
- ✅ 多文件编辑预览
- ✅ 代码 Diff 可视化
- ✅ 工具调用可视化
长期目标(6-12 个月)
5. 企业级功能
- ✅ 私有部署文档
- ✅ 团队协作功能
- ✅ 使用统计和分析
- ✅ 自定义模型微调指南
6. 社区生态
- ✅ 插件市场(自定义 Agent)
- ✅ Prompt 模板库
- ✅ 最佳实践文档
- ✅ 贡献者指南
总结:核心差异
| 维度 | 通义灵码 | AionUI 插件 |
|---|---|---|
| 定位 | 一体化 AI 编程助手 | 灵活的 AI Agent 接入层 |
| 类比 | iPhone(封闭生态) | Android(开放生态) |
| 适合 | 普通用户 | 技术用户 |
| 优势 | 开箱即用、功能丰富 | 隐私、灵活、开源 |
| 劣势 | 锁定、不透明 | 需要配置 |
| 长期价值 | 可能被供应商控制 | 完全自主可控 |
最终建议
不是非此即彼的选择:
短期 + 快速迭代 → 通义灵码
长期 + 数据安全 → AionUI 插件
企业 + 合规要求 → AionUI 插件(私有部署)
学习 + 研究 → AionUI 插件
开源项目 → AionUI 插件
最佳策略:
- 两个都试用
- 理解各自优势
- 根据具体场景选择
- 必要时可以并存使用
联系我们
- GitHub: iOfficeAI/aionui-vscode
- 问题反馈: GitHub Issues
- 文档: README.md
License
Apache-2.0