@GoogleCloudTech: https://x.com/GoogleCloudTech/status/2091986652595950079
摘要
本文介绍了驾驭工程作为控制AI代理的关键趋势,通过设计确定性环境并使用如Google Antigravity SDK等工具,展示了团队如何通过沙箱化和修复循环来发布使用AI生成代码的软件。
查看缓存全文
缓存时间: 2026/08/25 10:05
什么是工具链工程,为何需要关注?
如何实现零行手写代码来交付软件产品?
今日友人相询,我意识到自己无法给出简明答案,于是深入探究了一番。
原来答案就藏在如何设计你的工具链之中。
作者:@shirmeir86
等一下,这到底是什么?工具链工程指什么?
这正是当前编码智能体领域最重要的趋势。如今最核心的挑战在于:如何验证AI生成的代码而无需逐行审阅?如何确保智能体不会破坏生产环境或删除数据?
我最近读到一项有趣的实验:三位工程师构建并发布了一款内部测试版软件,其中零行代码由人工编写——包括应用逻辑、测试、CI配置、文档、可观测性工具乃至内部工具链,所有代码均由Codex生成。
他们如何做到的?关键不在于编写应用程序,而在于设计工具链。
工具链具体指什么?
可以把AI智能体想象成一匹强大的赛马。工具链就是跑道、马眼罩和骑手缰绳的集合,确保它始终沿着正确方向奔跑,而非冲入观众席。
正如我的同事Arthur Thompson今日所阐释:对智能体而言,工具链由所有包裹大语言模型的确定性组件构成。
Balaji Subramaniam在其博客中详细阐述了这些确定性组件**——**编排层、执行沙箱、状态持久化以及验证工具。
若想构建可靠的智能体系统,你的工作重心需从编写逻辑转向设计运行环境。以下是你需要关注的重点:
- 设定严格边界: 不要让智能体自行判断可操作范围。实施严格的访问控制(例如将其限制在特定沙箱中),防止意外破坏生产数据。
- 构建“修复闭环“: 智能体难免会犯错。优秀的工具链能自动捕获错误(如构建失败或测试不通过),并将清晰的日志反馈给智能体,使其能自主修复代码。
- 提供导航图而非说明书: 正如OpenAI团队发现的,切勿用海量指令文件压垮智能体。应逻辑化组织代码库,让智能体在工作过程中渐进式发现上下文。
代码示例
实际应用中这是什么样子?以下示例使用Google Antigravity SDK配合Google ADK配置本地工具链。请注意我们如何将智能体严格限制在特定工作空间(workspaces=[“./sandbox”]),并为其提供记忆存储位置(save_dir=“./trajectories”),使其能从历史经验中学习:
import os
from google.adk.labs.antigravity import AntigravityAgent
from google.antigravity import LocalAgentConfig
from google.antigravity.hooks import policy
# 确保工作空间的绝对路径
sandbox_dir = os.path.abspath("./sandbox")
os.makedirs(sandbox_dir, exist_ok=True)
save_dir = os.path.abspath("./trajectories")
# 1. 设计工具链环境
sdk_config = LocalAgentConfig(
system_instructions="你是一个乐于助人的本地环境助手。",
workspaces=[sandbox_dir],
# 允许智能体在受限沙箱边界内安全写入
policies=[policy.allow_all()],
save_dir=save_dir,
)
# 2. 将配置包装为在工具链内运行的智能体
root_agent = AntigravityAgent(
name="antigravity_assistant",
description="在ADK中运行Antigravity SDK智能体。",
config=sdk_config,
)
策略确保智能体仅能访问Sandbox文件夹
策略确保智能体仅能访问Sandbox文件夹
有了这套设计,你可以将遗留代码放入沙箱,编写简单循环对其运行单元测试,让智能体迭代修复自身缺陷。
添加测试
那么,如何对这个沙箱化的智能体实际运行测试呢?
在现代工具链工程中,测试是智能体工作流图谱的活跃组成部分。通过Google ADK 2.0引入的基于图的工作流,你可以将测试验证步骤定义为简单的路由节点。
测试通过则任务完成;若失败,工具链会自动将错误信息反馈给智能体重试。注意其中的内置“熔断机制“: 我们跟踪迭代次数,防止智能体陷入无限修复循环,此时工具链会安全终止进程。
from google.adk.agents.context import Context
from google.adk import Event
from google.adk.events.event_actions import EventActions
from google.genai import types
# 3. 在沙箱中评估代码
def execution_test_node(ctx: Context):
# 安全追踪尝试次数,防止无限循环
iteration_count = ctx.state.get("iteration_count", 0) + 1
ctx.state["iteration_count"] = iteration_count
test_passed = ctx.state.get("test_passed", False)
feedback = ctx.state.get("feedback", "")
if test_passed:
# 成功!结束工作流。
return Event(actions=EventActions(route="END"))
if iteration_count > 5:
# 熔断机制:智能体已卡死,终止循环
return Event(actions=EventActions(route="END"))
# 失败!将错误追踪信息反馈给智能体并循环。
feedback_msg = f"单元测试失败,错误追踪如下:\n\n{feedback}"
return Event(
content=types.Content(role="user", parts=[types.Part(text=feedback_msg)]),
actions=EventActions(route="loop_back")
)
若想查看此测试路由模式的完整实现,可参阅Balaji的ADK工具链示例库。
使用基于图的工作流连接所有组件
要连接智能体与测试节点,可通过工作流图谱精确规划执行流程,无需编写复杂的嵌套Python循环。
可将其理解为在赛道上绘制实际车道:
from google.adk import Workflow
# 4. 将智能体与测试节点连接成循环
repair_loop = Workflow(
name="repair_loop",
edges=[
# 第一步:定义主序列(起始 → 智能体 → 测试节点)
("START", root_agent, execution_test_node),
# 第二步:若测试返回"loop_back",则返回智能体
(execution_test_node, {"loop_back": root_agent})
]
)
测试循环
测试循环
恭喜!你已构建出自主系统。智能体编写代码后交付测试节点,若测试失败并返回loop_back路由,智能体将携带错误日志再次尝试。
更多循环模式示例请参阅ADK示例库。
亲自尝试
你可能会疑惑:为何需要Python脚本来运行智能体?在普通聊天界面中,你本身就是工具链——负责复制错误日志并监督模型运行。而软件工具链使系统能自我监督,从而实现完全自动化的测试驱动开发,或安全重构大型遗留代码库。
在本地机器上运行此自修复循环,设置过程不超过五分钟:
- 安装框架: 在终端运行
pip install "google-adk[antigravity]"获取开源Agent Development Kit及Antigravity集成。 - 设置API密钥: 从Google AI Studio获取免费Gemini API密钥,并导出至环境变量(
export GEMINI_API_KEY="你的密钥")。 - 运行循环: 将上述代码块保存为Python脚本,将损坏的Python或Node文件放入新建的
./sandbox目录,运行脚本即可。 - 扩展图谱: 单元测试仅是基础。要让工具链坚不可摧,可在工作流中加入第二个AI智能体(如SecurityAuditor),在代码通过前进行审查,或接入自定义检查器以强制执行严格的架构规范。
此后,你可将简单测试节点替换为实际执行pytest或npm test的子进程,从而获得功能完备的修复闭环。
若准备投入规模化应用,可从antigravity.google下载完整IDE和CLI工具,探索用于远程执行的Antigravity托管智能体,以及google的ADK 2.0实现基于图的工作流。
延伸阅读
我的Google同事们精心编写了系列指南。如需了解如何构建安全智能体环境,请查阅Sara展示的Cloud Run沙箱实操教程。若想掌握自我纠正技术,Balaji Subramaniam近期发布的智能体循环工程深度解析值得研读。欲观此技术在企业级场景的应用,请阅读James O’Reilly关于使用智能体流水线与Antigravity自动化大规模遗留系统现代化的案例分析。
相似文章
@sairahul1: https://x.com/sairahul1/status/2063544956158185927
本文介绍了“Harness Engineering”这一概念,这是一门专注于设计约束和引导AI代理的系统,使其在生产中可靠的学科,并认为Harness(约束系统)比模型本身更重要。
@googlev: 为不容许失败的环境构建可信赖的AI。在Sonoma Raceway,GDEs部署了AI Race Coach…
Google Developer Experts在Sonoma Raceway使用Antigravity、Gemini和Gemma(在Pixel 10上)部署了AI Race Coach,以100英里/小时的速度提供瞬间遥测指导,展示面向高风险环境的可信赖AI。
@GoogleCloudTech:构建AI智能体是轻松的部分。管理部署、治理和安全才是真正的挑战。加入这……
Google Cloud Tech 正在举办一场关于使用 Gemini Enterprise Agent Platform 扩展和管理AI智能体的直播,内容涉及部署、治理和安全挑战。
@GoogleCloudTech: 如果初始提示是恶意的,就别浪费算力启动整个AI代理集群了。观看我们测试Model A…
Google Cloud Tech 展示了 Model Armor,一个集中式安全层,可保护多代理AI系统免受间接提示注入、恶意URL和敏感数据泄露的影响,并附有实践实验室。
@0xMovez: Google Antigravity负责人刚刚展示了他们的旗舰级智能体优先的IDE,在30分钟内演示运行。25分钟。免费。由Googl…
Google DeepMind的‘Antigravity’部门演示了一款智能体优先的IDE,使得AI智能体能够在30分钟内完成规划、编码、浏览、自我验证和自我学习。