抖音vlog号脚本提示词模板
2026-06-12
2026-06-13 0
单 Agent 的能力边界正在被快速触及。

一个典型的例子:你想让 AI 帮你做一次竞品分析。这需要先搜索公开资料、抓取网页、提取关键信息、对比分析、最后生成报告。如果只用一个 Agent,Prompt 会变得极其复杂,上下文窗口很快爆满,而且每一步的可靠性会随着链路拉长急剧下降。
Google 在 2025 年提出的 A2A(Agent-to-Agent)协议 正是为了解决这个问题。它的核心思路很简单:把复杂任务拆成多个专业 Agent,让它们通过标准协议相互通信、协作完成。
听起来很美好,但落地面临三个现实问题:
阿里云的 函数计算 AgentRun 恰好在这三个问题上给出了一个开箱即用的答案。它基于 Serverless 架构,内置百炼大模型集成,可选配 NAS 文件存储,而且原生支持 Google ADK 框架的多 Agent 协同。
本文带你在 AgentRun 上跑通一个完整的 A2A 多 Agent 工作流。不聊概念,直接上实操。
访问 AgentRun 控制台(通过链接可体验:AgentRun 控制台体验),完成以下准备:
确保本地安装了以下工具:
# 安装 Serverless Devs 工具
npm install -g @serverless-devs/s
# 配置阿里云凭证
s config add --AccessKeyID --AccessKeySecret
我们要搭建的系统包含三个专业 Agent:
┌──────────────┐ A2A ┌──────────────┐ A2A ┌──────────────┐
│ 搜索 Agent │ ────────→ │ 分析 Agent │ ────────→ │ 报告 Agent │
│ (资料收集) │ 搜索结果 │ (对比分析) │ 分析结果 │ (生成报告) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└─────────────────────────┼─────────────────────────┘
│┌──────┴──────┐│ NAS 存储 ││ (共享中间结果)│└─────────────┘
每个 Agent 职责单一:
搜索 Agent 的核心逻辑:接收查询关键词,调用搜索 API,格式化输出。
# search_agent/main.py
from google.adk.agents import Agent
from google.adk.tools import ToolContext
import requests
import json
import os
def web_search(query: str, tool_context: ToolContext) -> str: """执行网络搜索并返回结构化结果""" # 实际场景中使用搜索 API(如 Bing Search API) # 这里展示核心逻辑结构 results = [
{ "title": f"关于"{ query}"的搜索结果", "snippet": "模拟搜索摘要信息...", "url": "https://example.com/result"
} ]
# 存入 NAS 共享路径,供下游 Agent 读取 output_path = "/mnt/nas/search_results.json" os.makedirs(os.path.dirname(output_path), exist_ok=True) with open(output_path, "w", encoding="utf-8") as f:
json.dump({ "query": query, "results": results}, f, ensure_ascii=False)
tool_context.actions.skip_summarization = True return json.dumps(results, ensure_ascii=False, indent=2)
search_agent = Agent( name="search_agent", model="qwen-plus",# 百炼提供的通义千问模型 instruction="""你是一个专业的搜索 Agent。
当用户提出搜索需求时,调用 web_search 工具执行搜索。
然后将结果传递给下游的分析 Agent。""", tools=[web_search],
)
分析 Agent 读取搜索结果,调用大模型做深度对比分析。
# analysis_agent/main.py
from google.adk.agents import Agent
import json
import os
def load_search_results() -> str: """从 NAS 读取搜索 Agent 的结果""" input_path = "/mnt/nas/search_results.json" if not os.path.exists(input_path):
return "未找到搜索结果,请先运行搜索 Agent。"
with open(input_path, "r", encoding="utf-8") as f:
data = json.load(f) return json.dumps(data, ensure_ascii=False, indent=2)
def save_analysis(analysis_text: str) -> str: """将分析结果存入 NAS""" output_path = "/mnt/nas/analysis_result.md" os.makedirs(os.path.dirname(output_path), exist_ok=True) with open(output_path, "w", encoding="utf-8") as f:
f.write(analysis_text) return "分析结果已保存"
analysis_agent = Agent( name="analysis_agent", model="qwen-plus", instruction="""你是一个专业的竞品分析 Agent。
1. 读取搜索 Agent 返回的结果
2. 从产品定位、核心功能、定价策略、技术架构四个维度做对比分析
3. 输出结构化的分析结论
4. 将最终结果保存到 NAS 供报告 Agent 使用""", tools=[load_search_results, save_analysis],
)
# report_agent/main.py
from google.adk.agents import Agent
import os
def load_analysis() -> str: """读取分析 Agent 的输出""" input_path = "/mnt/nas/analysis_result.md" if not os.path.exists(input_path):
return "分析结果尚未生成" with open(input_path, "r", encoding="utf-8") as f:
return f.read()
report_agent = Agent( name="report_agent", model="qwen-plus", instruction="""你是一个专业的报告生成 Agent。
1. 读取分析 Agent 的输出
2. 生成一份格式规范的 Markdown 报告
3. 报告包含:摘要、详细对比、结论与建议三部分
4. 确保输出排版清晰,适合直接分享""", tools=[load_analysis],
)
multi-agent-analysis/
├── search_agent/
│ ├── main.py
│ └── requirements.txt
├── analysis_agent/
│ ├── main.py
│ └── requirements.txt
├── report_agent/
│ ├── main.py
│ └── requirements.txt
└── s.yaml # Serverless Devs 配置
# s.yaml
edition: 4.0.0
name: multi-agent-analysis
services:search: component: fc props:
region: cn-hangzhou
serviceName: adk-multi-agent
functionName: search-agent
runtime: python3.9
codeUri: ./search_agent
handler: main.search_agent
memorySize: 1024
# 挂载 NAS 实现 Agent 间文件共享
nasConfig:
groupId: 0
userId: 0
mountPoints:- serverAddr: "xxxxx.cn-hangzhou.nas.aliyuncs.com" mountDir: /mnt/nas
analysis: component: fc props:
region: cn-hangzhou
serviceName: adk-multi-agent
functionName: analysis-agent
runtime: python3.9
codeUri: ./analysis_agent
handler: main.analysis_agent
memorySize: 2048
nasConfig:
groupId: 0
userId: 0
mountPoints:- serverAddr: "xxxxx.cn-hangzhou.nas.aliyuncs.com" mountDir: /mnt/nas
report: component: fc props:
region: cn-hangzhou
serviceName: adk-multi-agent
functionName: report-agent
runtime: python3.9
codeUri: ./report_agent
handler: main.report_agent
memorySize: 1024
nasConfig: ...
# 部署全部 Agent
s deploy
# 部署结果示例:
# search-agent: deployed (URL: https://xxx.cn-hangzhou.fc.aliyuncs.com/...)
# analysis-agent: deployed
# report-agent: deployed
部署完成后,三个 Agent 各自获得一个独立的 HTTP 端点,通过 A2A 协议互相调用,无需额外配置服务发现或负载均衡——Serverless 架构天然处理了这些问题。
多 Agent 系统的传统部署方式需要至少 3 台 ECS 实例(或一个 K8s 集群),基础成本每月几百到上千元,而且不管有没有请求都要付费。
AgentRun 的 Serverless 模式按实际调用计费:
参考吉利汽车在 AgentRun 上的实际案例:算力成本优化了 33%。
如果你想亲自体验 AgentRun 的多 Agent 开发能力,可以通过链接注册并开通:体验 AgentRun 的多 Agent 开发能力
本文从零搭建了一个基于 AgentRun + Google ADK 的多 Agent 竞品分析系统。核心收获:
AI Agent 正在从"能用"走向"好用",而多 Agent 协同是其中最关键的一块拼图。AgentRun 让这块拼图的落地门槛降低了不少。