引言
你很可能已经感受到,全新的“智能体优先”人工智能时代已经到来——开发者开始使用新工具,这些工具不仅能被动生成代码,还能真正理解代码生成背后的独特流程。
Google Antigravity在这一领域有着重要的话语权。这款工具是构建高度可定制智能体的关键。本文将通过揭秘三个核心概念——规则、技能和工作流,展现其部分潜力。
在本文中,你将学习如何将这些关键概念结合起来,构建更稳健的智能体和强大的自动化流水线。具体来说,我们将逐步演示如何基于指定的规则和技能,搭建一个代码质量保证(QA)智能体工作流。现在就开始吧!
理解三个核心概念
在动手操作之前,我们先拆解Google Antigravity生态系统中的以下三个核心元素:
规则(Rule):作为指导智能体行为的基准约束,同时规定了智能体如何适配我们的技术栈并匹配我们的编码风格。规则以markdown文件形式存储。
技能(Skill):可将技能视为一个可复用的包,包含指导智能体如何处理具体任务的知识。技能存放在一个专用文件夹中,该文件夹内必须包含一个名为SKILL.md的文件。
工作流(Workflow):负责将所有元素整合在一起的协调器。工作流通过以斜杠开头的命令式指令调用,例如/deploy。简单来说,工作流引导智能体遵循一个结构清晰、包含多个步骤的行动计划或路径。这是在不损失精度的前提下自动化重复任务的关键。
动手实操
接下来我们进行实操演示。我们将展示如何配置Antigravity,使其能够审查Python代码、应用正确的格式并生成测试——全程无需额外的第三方工具。
在执行以下步骤之前,请确保你已在电脑上下载并安装了Google Antigravity。
安装完成后,打开桌面应用并打开你的Python项目文件夹——如果你是首次使用该工具,系统会要求你在电脑文件系统中指定一个文件夹作为项目文件夹。无论如何,将手动创建的文件夹添加到Antigravity的方法是:通过上方菜单栏的“文件 >> 将文件夹添加到工作区...”选项。
假设你有一个新的空工作区文件夹。在项目目录的根目录(左侧),创建一个新文件夹并命名为.agents。在这个文件夹内,我们将创建两个子文件夹:一个名为rules(规则),另一个名为skills(技能)。你可能已经猜到,这两个文件夹将分别用于定义智能体行为的两大支柱:规则和技能。
我们先定义一个规则,包含确保智能体遵循Python格式标准的基准约束。无需复杂的语法:在Antigravity中,我们可以用自然语言编写清晰的指令来定义规则。在rules子文件夹内,创建一个名为python-style.md的文件,并粘贴以下内容:
# Python 风格规则
始终遵循PEP 8标准。在提供或重构代码时,默认使用`black`工具进行格式化。严格限制依赖项为免费开源库,确保我们的项目保持开源友好。
如果想确保规则生效,可打开编辑器右侧激活的智能体自定义面板,找到并选择我们刚刚定义的规则:
自定义选项将出现在我们刚刚编辑的文件上方。将激活模式设置为“glob”,并指定glob模式:**/*.py,如下所示:
这样一来,我们就确保了后续启动的智能体在处理Python脚本时,始终会应用我们定义的规则。
接下来,是时候为智能体定义(或“教授”)一些技能了。我们将教授智能体对Python代码执行稳健测试的技能——这在当今要求严苛的软件开发环境中极为实用。在skills子文件夹内,创建一个名为pytest-generator的文件夹。在该文件夹内创建一个SKILL.md文件,内容如下:
现在,我们可以将所有元素整合起来并启动智能体,但在此之前,我们需要在项目工作区内准备一个包含“低质量”代码的示例Python文件,以便进行测试。如果没有现成的文件,可以创建一个新的.py文件,在根目录命名为flawed_division.py,并添加以下代码:
def divide_numbers( x,y ):
return x/y
你可能已经注意到,这段Python代码是故意写得杂乱且有缺陷的。让我们看看我们的智能体能做些什么。打开右侧的自定义面板,这次重点关注“工作流”导航栏。点击“+工作区”创建一个新的工作流,命名为qa-check,内容如下:
# 标题:Python QA检查
# 描述:自动化Python文件的代码审查和测试生成。
步骤1:按照我们的Python风格规则,审查当前打开的Python文件,检查漏洞和风格问题。
步骤2:重构任何低效代码。
步骤3:调用`pytest-generator`技能,为重构后的代码编写全面的单元测试。
步骤4:输出最终的测试代码,并建议在终端中运行`pytest`。
当智能体将所有这些部分整合在一起时,整个开发流程将发生转变。保持工作区内的杂乱Python文件处于打开状态,我们点击右侧面板中的智能体图标,输入qa-check命令,按回车键运行智能体:
执行完成后,智能体将审查代码,并在Python文件中自动建议一个新版本,如下所示:
但这还不是全部:智能体还会生成一系列代码片段,用于通过pytest运行不同类型的测试,实现我们所需的全面质量检查。为了便于说明,以下是部分测试代码的示例:
import pytest
from flawed_division import divide_numbers
def test_divide_numbers_normal():
assert divide_numbers(10, 2) == 5.0
assert divide_numbers(9, 3) == 3.0
def test_divide_numbers_negative():
assert divide_numbers(-10, 2) == -5.0
assert divide_numbers(10, -2) == -5.0
assert divide_numbers(-10, -2) == 5.0
def test_divide_numbers_float():
assert divide_numbers(5.0, 2.0) == 2.5
def test_divide_numbers_zero_numerator():
assert divide_numbers(0, 5) == 0.0
def test_divide_numbers_zero_denominator():
with pytest.raises(ValueError, match="Cannot divide by zero"):
divide_numbers(10, 0)
智能体执行的这一系列流程,首先是在我们通过规则定义的约束下分析代码,然后自主调用新定义的技能,为我们的代码库量身定制全面的测试策略。
总结
回顾全文,我们展示了如何结合Google Antigravity的三个关键元素——规则、技能和工作流,将通用智能体转变为专业、稳健且高效的工作伙伴。我们通过示例演示了如何让智能体专门处理杂乱代码的格式化和QA测试的定义。
推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !