编程 Google Antigravity 2.0 深度实战:从单Agent IDE到多智能体协同平台——2026年Google I/O最重磅开发者工具完全指南

2026-05-24 17:02:54 +0800 CST views 7

Google Antigravity 2.0 深度实战:从单Agent IDE到多智能体协同平台——2026年Google I/O最重磅开发者工具完全指南

前言

2026年5月19日,Google I/O 2026开发者大会在美国山景城召开。这届大会最受全球开发者关注的产品,不是某个新的语言模型,而是一个彻底重构了"AI编程工具"定义的平台——Antigravity 2.0

这不是一次简单的版本迭代。谷歌从战略层面做了一个极具魄力的决定:把Antigravity从"面向开发者的智能体式IDE",彻底转型为"通用智能体优先工作平台"。换句话说,AI不再只是程序员手里的辅助工具,而是一个可以独立管理、调度、协作的数字员工团队。

本文将从架构设计、多Agent协同机制、交互范式革新、云端自动化等维度,对Antigravity 2.0进行全方位深度解析,并结合代码示例展示如何在实际工程中使用这个平台构建复杂的多智能体工作流。


一、背景:从单Agent时代到多智能体协作

1.1 单Agent编程助手的局限

过去两年,以Cursor、Copilot为代表的第一代AI编程工具,核心范式是"一人对一Agent":一个AI助手在一个编辑器窗口内,响应用户的指令。它们能写代码、能解释代码、能做代码审查——但当项目规模扩大时,单Agent的局限性就暴露出来了:

上下文窗口被填满:当项目包含数十万行代码时,单个Agent的上下文窗口被日志、编译错误、文档填充,真正有价值的业务逻辑反而被挤出窗口。

任务串行执行效率低:一个需要代码审查+单元测试生成+文档更新的任务,必须由Agent逐个完成,后面的任务无法利用前面任务的结果,形成等待瓶颈。

缺乏权限边界:单Agent同时拥有所有文件读写权限,任何一个Prompt Injection攻击都能让AI修改关键系统文件。

无法主动执行:人类必须手动触发每一步操作,Agent无法在后台定时执行例行任务。

这些问题的本质,是"一个Agent + 一个上下文"的架构天花板。Antigravity 2.0正是针对这些痛点给出的谷歌答案。

1.2 谷歌的战略转向

值得注意的是,Google在I/O上透露了一个关键信息:Gemini 3.5 Flash模型本身,就是借助Antigravity协同开发完成的。这意味着Antigravity已经经过了谷歌内部的实战检验。用自己的工具造自己的模型,再把工具开放给开发者——这是一个完整的生态闭环。


二、架构解析:从IDE到智能体工作平台

2.1 核心架构:Project → Agent → Task三层模型

Antigravity 2.0最根本的架构变化,是引入了Project → Agent → Task三层模型,替代了原来"单一工作区 + 单一Agent"的扁平结构。

Project (项目层)
├── Folder A (文件夹A) — Agent A (专属子Agent) — 独立上下文
├── Folder B (文件夹B) — Agent B (专属子Agent) — 独立上下文
├── Folder C (文件夹C) — Agent C (专属子Agent) — 独立上下文
└── Shared Memory (共享记忆层)

Project层:不再强绑定特定代码仓库。一个Project可以横跨本地多个物理文件夹,每个文件夹有独立的Agent实例和权限边界。这解决了Monorepo场景下多团队协作的问题——A团队的Agent B无法访问B团队的代码,除非明确授权。

Agent层:每个子Agent拥有独立上下文、专属工具集和独立的记忆存储。Agent之间通过消息队列通信,主Agent负责协调。

Task层:任务被解构为原子操作单元,可以在Agent之间并行调度。

2.2 主Agent协调机制

# Antigravity 2.0 伪代码:多Agent并行任务调度
class Project:
    def __init__(self, name: str):
        self.name = name
        self.agents: List[Agent] = []
        self.shared_memory = SharedMemory()
        self.task_queue = asyncio.Queue()
    
    def spawn_agent(self, folder: str, config: AgentConfig) -> Agent:
        """为指定文件夹创建专属Agent"""
        agent = Agent(
            folder=folder,
            model="gemini-3.5-flash",
            tools=self._resolve_tools(config.capabilities),
            memory=self.shared_memory.slice(folder),
            permissions=config.permissions
        )
        self.agents.append(agent)
        return agent
    
    async def dispatch_parallel(self, tasks: List[Task]) -> List[TaskResult]:
        """将任务并行分发给所有可用Agent"""
        # 根据任务类型和Agent能力做智能路由
        agent_task_map = self._route_tasks(tasks)
        
        # 并行执行
        coroutines = []
        for agent, task_batch in agent_task_map.items():
            coroutines.append(agent.execute_batch(task_batch))
        
        results = await asyncio.gather(*coroutines)
        return self._merge_results(results)

这个架构的关键创新在于智能路由:主Agent不是简单地把任务随机分配给子Agent,而是分析每个任务的类型(代码审查、文档生成、测试编写)、每个Agent的当前负载和历史表现,做出最优分配决策。

2.3 上下文隔离与安全边界

# 每个Agent的文件系统权限边界示例
class AgentPermissions:
    # Agent A:只读访问docs目录,无写权限
    agent_a = AgentPermissions(
        read_paths=["/project/docs/**", "/project/specs/**"],
        write_paths=[],
        execute_commands=["python test_runner.py"]
    )
    
    # Agent B:完整代码权限,无系统命令执行权限
    agent_b = AgentPermissions(
        read_paths=["/project/src/**", "/project/tests/**"],
        write_paths=["/project/src/**", "/project/tests/**"],
        execute_commands=["pytest", "black", "mypy"]
    )
    
    # Agent C:CI/CD权限,只能访问.github/workflows
    agent_c = AgentPermissions(
        read_paths=["/project/.github/workflows/**"],
        write_paths=["/project/.github/workflows/**"],
        execute_commands=["gh workflow run"]
    )

这种细粒度的权限控制,解决了单Agent时代"权限全开"的安全隐患。即使某个子Agent被恶意提示词注入,攻击面也被严格限制在其负责的文件夹范围内。


三、核心功能深度解析

3.1 多Agent并行执行

Antigravity 2.0支持多个子Agent并行工作,每个Agent独立维护自己的上下文。官方给出了一个典型的使用场景:

场景:为一个新功能写完整的代码实现

  • Agent A(代码编写):接收功能需求,在 src/ 目录下实现核心逻辑
  • Agent B(测试生成):接收Agent A的代码变更,自动生成单元测试和集成测试
  • Agent C(文档更新):扫描代码变更,自动更新相关API文档和CHANGELOG
  • Agent D(代码审查):分析代码质量和潜在Bug,给出改进建议

这四个Agent可以同时启动,Agent B不需要等Agent A完全写完代码——它只需要知道函数签名和输入输出规范,就可以开始生成测试骨架。Google内部测试数据显示,这种并行化可以将复杂任务的端到端时间减少约40%。

3.2 定时任务系统(Scheduled Tasks)

Antigravity 2.0创新性地将定时任务引入桌面级AI工具,使用/schedule命令:

# 设置一次性定时任务:30分钟后自动执行代码巡检
/schedule check-code --delay 30m --agent review-bot

# 设置周期性任务:每天早上9点运行全量测试
/schedule run-tests --cron "0 9 * * *" --agents test-suite

# 设置触发式任务:当指定文件变更时自动执行
/schedule on-change --watch "src/**/*.go" --agent security-scan

定时任务系统支持:

  • 一次性延迟任务:指定时间后执行
  • Cron表达式:标准5段式Cron,支持复杂调度
  • 文件监控触发:基于文件变更事件触发
  • Git事件触发:PR创建、MR合并时自动执行

这意味着,开发者可以在睡前设置一个整夜运行的代码优化任务,第二天早上回来查看结果——Antigravity Agent会像一名不知疲倦的工程师一样,持续在后台工作。

3.3 斜杠命令体系(Slash Commands)

Antigravity 2.0引入了一套精心设计的斜杠命令,这些命令的本质是划定AI自主权的边界

命令功能自主权限
/goal <描述>设定一个高阶目标,让Agent自主拆解执行高自主,需要时才问
/grill-me让Agent先向你澄清需求,再执行低自主,严格确认
/browser显式调用浏览器能力,搜索或验证信息中等自主
/schedule创建定时任务中等自主,需要参数
/review启动代码审查流程中等自主
/test生成并运行测试高自主,按预设策略

斜杠命令的设计哲学是:让开发者明确声明意图,减少AI的"自由裁量空间"。当你说/grill-me时,Agent知道它必须先和你反复确认需求,不会擅自行动;当你输入/goal时,Agent知道你愿意让它自主决策。

# Antigravity 2.0 命令解析逻辑(简化)
class SlashCommandParser:
    COMMANDS = {
        "/goal": CommandConfig(
            autonomy=AutonomyLevel.HIGH,
            confirmation_required=False,
            subagent_allowed=True
        ),
        "/grill-me": CommandConfig(
            autonomy=AutonomyLevel.LOW,
            confirmation_required=True,
            subagent_allowed=False
        ),
        "/browser": CommandConfig(
            autonomy=AutonomyLevel.MEDIUM,
            confirmation_required=False,
            subagent_allowed=True
        ),
        "/schedule": CommandConfig(
            autonomy=AutonomyLevel.MEDIUM,
            confirmation_required=True,
            subagent_allowed=True
        ),
    }
    
    def parse(self, user_input: str) -> ParsedCommand:
        cmd = user_input.split()[0]
        if cmd not in self.COMMANDS:
            return ParsedCommand(autonomy=AutonomyLevel.DEFAULT)
        return ParsedCommand(
            command=cmd,
            config=self.COMMANDS[cmd],
            args=user_input[len(cmd):].strip()
        )

3.4 Antigravity CLI:轻量化终端工具链

对于习惯在终端工作的开发者,Antigravity CLI是本次更新的另一大亮点。CLI完全重写了原有的Gemini CLI,启动速度提升65%,且与桌面应用深度集成:

# 安装(替代原有的 Gemini CLI)
npm install -g @google/antigravity-cli

# 在终端启动一个子Agent
antigravity agent spawn --name backend-dev --folder ./backend

# 查看所有运行中的Agent
antigravity agent list

# 向指定Agent发送任务
antigravity task submit --agent backend-dev "实现用户认证模块"

# 从终端调用桌面应用中的Agent
antigravity agent invoke main --prompt "帮我审查这周的代码变更"

# 将终端Agent与桌面Agent协同
antigravity collab --local backend-dev --desktop frontend-agent

# 导出Agent对话记录
antigravity export --agent backend-dev --format markdown > backend-log.md

CLI和桌面端的深度集成是这次更新的一个重要特性:开发者在终端写的代码,可以通过CLI调用桌面端Agent做智能审查;桌面端的多Agent协作结果,可以通过CLI导出供CI/CD流程使用。两种界面不再是割裂的工具,而是统一的Agent生态系统。


四、云端自动化:Managed Agents服务

4.1 隔离Linux环境智能体

Antigravity 2.0最具生产力的新功能之一,是Gemini API提供的Managed Agents服务。这是真正面向生产环境的多Agent解决方案:

# 通过 Gemini API 启动一个隔离的 Managed Agent
import google.genai as genai
from google.antigravity import ManagedAgent

client = genai.Client(api_key="YOUR_GEMINI_API_KEY")

# 创建一个隔离的Linux环境Agent
agent = client.agents.create(
    environment=AgentEnvironment.LINUX_ISOLATED,
    resources={
        "cpu": "4 cores",
        "memory": "16GB",
        "storage": "50GB",  # 持久化存储
        "timeout": "2h"
    },
    capabilities=[
        "code_execution",
        "git_operations",
        "web_search",
        "file_upload"
    ]
)

# 向Agent提交任务
task = agent.submit("""
    克隆仓库 https://github.com/your-org/your-repo
    检出 main 分支
    运行完整的CI测试套件
    如果测试失败,生成详细的失败报告
    将报告上传到 S3 指定桶
""")

# 监控执行状态
for status in task.stream_status():
    print(f"[{status.timestamp}] {status.phase}: {status.message}")

# 等待完成并获取结果
result = task.await_completion(timeout=7200)
print(f"最终状态: {result.exit_code}")
print(f"输出: {result.output}")

这个API的核心价值在于环境隔离和状态持久化

  • 每次请求启动一个全新的Linux容器,与宿主机完全隔离
  • 容器配备持久化存储,编译产物、日志文件、项目状态全部保留
  • 支持最长2小时的长时间运行任务,适合CI/CD集成
  • Agent具备完整的命令行工具链,无需额外配置

4.2 生产级集成:游戏团队的CI实践

根据谷歌披露的一个案例,某游戏团队将Managed Agents集成到CI/CD流水线后,效果惊人:

  • 之前:完整的CI测试周期需要12小时,包含单元测试、集成测试、性能测试和回归测试,全部串行执行
  • 之后:同样的测试周期缩短至3小时。Managed Agents将测试集拆分,自动分配到多个隔离环境中并行执行。测试失败时,Agent自动收集堆栈信息并分类,开发者只需要处理真正需要人工判断的问题
# .github/workflows/ci.yml — 与 Antigravity Managed Agents 集成
name: CI with Antigravity

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  # 传统CI任务(保持兼容性)
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Linter
        run: make lint
  
  # Antigravity Agent驱动的智能测试
  antigravity-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Invoke Antigravity Agent
        env:
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
        run: |
          curl -X POST "https://api.gemini.google.com/v1/agents/execute" \
            -H "Authorization: Bearer $GEMINI_API_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "task": "执行项目完整测试套件,失败时自动分类并报告",
              "environment": "linux_isolated",
              "timeout": 7200,
              "notify": {
                "type": "github_comment",
                "pr_number": "${{ github.event.pull_request.number }}"
              }
            }'

五、与竞品的深度对比

5.1 技术架构对比

特性Antigravity 2.0CursorCopilotClaude Code
多Agent并行✅ 原生支持❌ 单Agent❌ 单Agent❌ 单Agent
定时任务✅ /schedule
细粒度权限✅ 按文件夹隔离
独立上下文✅ 每个Agent独立
CLI工具✅ Antigravity CLI✅ Claude CLI
云端托管Agent✅ Managed Agents
斜杠命令✅ 6种命令
SDK支持✅ 完整SDK

5.2 性能基准:Gemini 3.5 Flash的Agent任务表现

Google在I/O上公布的基准数据极具冲击力:在Antigravity平台上,针对Agent任务优化的Gemini 3.5 Flash版本,执行速度最高可达其他前沿模型的12倍。这个数字的来源是Agentic Bench标准测试集,测试任务包括:

  1. 代码补全:根据上下文自动补全函数实现
  2. 多文件重构:跨多个文件执行一致的重构操作
  3. 测试生成:为新功能生成完整测试套件
  4. 代码审查:扫描代码并给出安全和质量改进建议
  5. 文档生成:根据代码变更自动更新API文档

12倍的性能提升,部分归功于Antigravity平台与Gemini 3.5 Flash的深度联合优化——平台层面的任务分派、上下文管理和结果聚合,与模型层面的思考token优化共同作用,实现了远超单独调用API的性能表现。


六、开发实战:从零构建多Agent代码审查流水线

6.1 场景设计

我们设计一个实际场景:为一个中型Node.js项目构建自动化代码审查流水线,包含以下子Agent:

  • Linter Agent:运行ESLint、Prettier,检查代码风格
  • Security Agent:扫描依赖漏洞和潜在安全风险
  • Test Coverage Agent:评估测试覆盖率,识别未覆盖区域
  • Reviewer Agent:综合以上结果,生成结构化审查报告

6.2 实现代码

import asyncio
from google.antigravity import Antigravity, Agent, Task

async def code_review_pipeline(project_path: str):
    """构建多Agent代码审查流水线"""
    antigravity = Antigravity()
    
    # 创建项目
    project = await antigravity.create_project(
        name="code-review-pipeline",
        root=project_path
    )
    
    # 初始化4个子Agent
    linter_agent = await project.spawn_agent(
        name="linter",
        folder=f"{project_path}/src",
        model="gemini-3.5-flash",
        tools=["shell", "file_read", "file_write"]
    )
    
    security_agent = await project.spawn_agent(
        name="security",
        folder=f"{project_path}",
        model="gemini-3.5-flash",
        tools=["shell", "npm_audit", "snyk"]
    )
    
    coverage_agent = await project.spawn_agent(
        name="coverage",
        folder=f"{project_path}",
        model="gemini-3.5-flash",
        tools=["shell", "jest", "coverage_report"]
    )
    
    reviewer_agent = await project.spawn_agent(
        name="reviewer",
        folder=f"{project_path}",
        model="gemini-3.5-flash",
        tools=["file_read", "file_write", "github_comment"]
    )
    
    # 创建任务
    tasks = [
        Task(
            id="lint",
            prompt="""
            对 src/ 目录下的所有 TypeScript 文件执行检查:
            1. 运行 eslint --format json > eslint-report.json
            2. 运行 prettier --check "src/**/*.ts"
            3. 统计违规类型分布
            4. 输出结构化报告
            """,
            agent=linter_agent
        ),
        Task(
            id="security",
            prompt="""
            对项目执行安全审查:
            1. 运行 npm audit --json > npm-audit.json
            2. 检查 package.json 中的已知漏洞依赖
            3. 扫描 secrets (.env, credentials) 是否意外提交
            4. 输出高危问题列表及修复建议
            """,
            agent=security_agent
        ),
        Task(
            id="coverage",
            prompt="""
            评估测试覆盖率:
            1. 运行 jest --coverage --coverageReporters=json-summary
            2. 读取 coverage/coverage-summary.json
            3. 识别覆盖率低于80%的文件
            4. 生成未覆盖代码行列表
            """,
            agent=coverage_agent
        ),
    ]
    
    # 并行执行前3个Agent任务
    print("🔄 启动并行审查...")
    results = await project.dispatch_parallel(tasks)
    
    # 汇总结果给Reviewer Agent
    summary_prompt = """
    基于以下三个子Agent的审查结果,生成最终代码审查报告:
    
    --- ESLint 检查结果 ---
    {eslint_results}
    
    --- 安全扫描结果 ---
    {security_results}
    
    --- 测试覆盖率 ---
    {coverage_results}
    
    要求:
    1. 按严重程度分类问题(Critical / High / Medium / Low)
    2. 每个问题给出具体代码位置和修复建议
    3. 给出总体评分(0-100)
    4. 提供执行摘要(适合PR评论)
    """
    
    final_report = await reviewer_agent.execute(
        prompt=summary_prompt.format(
            eslint_results=results["lint"].output,
            security_results=results["security"].output,
            coverage_results=results["coverage"].output
        )
    )
    
    # 保存报告
    report_file = f"{project_path}/antigravity-review-{datetime.now().strftime('%Y%m%d-%H%M%S')}.md"
    with open(report_file, 'w') as f:
        f.write(final_report.content)
    
    print(f"✅ 审查完成,报告已保存到: {report_file}")
    return final_report


# 运行
if __name__ == "__main__":
    result = asyncio.run(code_review_pipeline("/path/to/your/project"))

6.3 执行效果分析

这个流水线的设计,充分利用了Antigravity 2.0的多项核心能力:

并行化:三个审查任务(lint、security、coverage)同时执行,充分利用多核CPU和AI并行推理能力。以往需要3×5=15分钟的串行执行,现在只需要约5分钟。

上下文隔离:每个Agent只访问自己需要的文件和工具。security_agent运行npm audit时不会意外修改源代码,coverage_agent的分析不会触发security扫描。

结果聚合:reviewer_agent专门负责"思考"——将三个子Agent的原始数据转化为结构化的审查报告。这种"Worker + Thinker"的分离模式,是多Agent系统中的经典设计。

可扩展性:如果需要增加性能分析、依赖更新检查或国际化验证,只需新增Agent实例并在任务列表中添加对应Task,无需修改现有Agent的逻辑。


七、Gemini 3.5 Flash技术规格与定价分析

7.1 模型规格

Gemini 3.5 Flash在Antigravity平台中扮演核心角色,以下是关键规格对比:

指标Gemini 2.5 FlashGemini 3 Flash PreviewGemini 3.5 Flash
输入价格$0.30/MTok$0.50/MTok$1.50/MTok
输出价格$2.50/MTok$3.00/MTok$9.00/MTok
思考Token
Agent任务优化✅ (12x加速)
上下文缓存✅ ($0.15 + $1.00/小时)
搜索整合✅ (深度整合)

3.5 Flash的价格是2.5 Flash的5倍,但Google的逻辑是:对于Agent性任务(需要多轮调用、长上下文、工具调用),3.5 Flash的速度是2.5 Flash的12倍——折算到每次任务的总体成本,反而更便宜。

7.2 成本优化策略

对于有大规模AI Agent需求的团队,以下是几个实用的成本优化策略:

# 策略1:使用上下文缓存减少重复token消耗
cached_context = await model.create_cached_context(
    content=open("large_codebase_summary.json").read(),
    ttl_hours=24
)

# 后续请求复用缓存,只需支付差量
response = await model.generate(
    prompt="审查这段代码...",
    cached_context=cached_context.id,
    model="gemini-3.5-flash"
)

# 策略2:批量处理多个小任务
batch = await model.create_batch([
    {"prompt": "审查 auth.go", "priority": "high"},
    {"prompt": "审查 db.go", "priority": "high"},
    {"prompt": "审查 cache.go", "priority": "medium"},
], batch_pricing=True)  # Batch API享5折优惠

# 策略3:降级策略——简单任务用轻量模型
async def smart_route(task: Task):
    complexity = await assess_complexity(task.description)
    if complexity < 0.3:
        return await model.generate(task, model="gemini-3.5-flash-preview")
    elif complexity < 0.7:
        return await model.generate(task, model="gemini-3.5-flash")
    else:
        return await model.generate(task, model="gemini-3.1-pro")

八、局限性与挑战

8.1 多Agent协调的开销

虽然多Agent并行可以加速任务执行,但Agent之间的通信本身也需要消耗Token和计算资源。对于简单的单一任务,单Agent的执行效率反而更高。Google的基准测试显示,当任务复杂度评分低于3分(满分10分)时,单Agent的性价比更高。多Agent的优势主要体现在需要多维度分析或跨领域协作的复杂任务上。

8.2 共享记忆的一致性

当多个Agent同时读写共享记忆层时,可能会出现竞态条件。Antigravity 2.0使用了乐观锁+版本向量的机制来缓解这个问题,但在极高并发场景下,仍可能需要开发者手动处理一致性问题。

8.3 厂商锁定风险

Managed Agents服务完全运行在Google云上,任务定义、Agent状态、输出结果都存储在Google的基础设施中。对于有严格数据主权要求的企业(如金融、医疗行业),这可能是一个合规障碍。


九、总结与展望

Antigravity 2.0代表了Google对"AI编程工具应该是什么"这一问题的完整答案。它不仅仅是一个更强大的IDE替代品,更是一个多智能体协作平台——在这个平台上,AI可以像人类团队一样分工协作、异步工作、共享知识。

从技术视角看,这次更新的核心价值在于三点:

  1. 架构升级:从单Agent到Project→Agent→Task三层模型,解锁了多智能体协作的工程可能性
  2. 交互创新:斜杠命令和定时任务重新定义了人机协作的边界,让AI真正变成"可委托的员工"
  3. 云端落地:Managed Agents服务将多Agent协作从Demo级别的玩具,变成了可以在生产环境稳定运行的基础设施

对于普通开发者,Antigravity 2.0意味着更高的开发效率——用多个AI助手并行处理代码审查、测试生成、文档编写这些重复性工作,将精力集中在真正需要人类创造力的架构设计和业务逻辑上。

对于工程团队,Managed Agents提供了一个可以深度集成到CI/CD流水线的AI工作节点,12小时→3小时的效率跃升只是开始——随着多Agent协作的成熟,我们完全可以畅想:未来的软件工程团队,可能只需要少数几个"AI工程师管理者",其余的编码、测试、部署工作全部由AI Agent团队自动完成。

这不是科幻。Antigravity 2.0用Google内部开发Gemini 3.5 Flash的实践证明了这个模式的可行性。现在,轮到你了。


参考资料

推荐文章

资源文档库
2024-12-07 20:42:49 +0800 CST
批量导入scv数据库
2024-11-17 05:07:51 +0800 CST
支付宝批量转账
2024-11-18 20:26:17 +0800 CST
全栈工程师的技术栈
2024-11-19 10:13:20 +0800 CST
Vue3结合Driver.js实现新手指引功能
2024-11-19 08:46:50 +0800 CST
记录一次服务器的优化对比
2024-11-19 09:18:23 +0800 CST
小技巧vscode去除空格方法
2024-11-17 05:00:30 +0800 CST
Vue3 中提供了哪些新的指令
2024-11-19 01:48:20 +0800 CST
程序员茄子在线接单