当前位置: 首页 > news >正文

easya2a: 一键将 LangChain Agent 发布为 A2A 服务

easya2a: 一键将 LangChain Agent 发布为 A2A 服务

随着 A2A (Agent-to-Agent) 协议的发布,相关的实践项目也逐渐涌现。对于许多希望体验 A2A 功能,但又担心学习成本和开发时间的开发者来说,推荐使用 easya2a——一个可以快速、无缝地将现有 LangChain Agent 转换为在线 A2A URL 的 Python 包。

https://github.com/whillhill/easya2a

快速开始

第一步:安装 easya2a

首先,通过 pip 安装 easya2a 包。

pip install easya2a

第二步:代码实例

下面是一个完整且可直接运行的示例。我们会先创建一个常规的 LangChain Agent,然后展示如何用 easya2a 将其“打包”成一个 A2A 服务。

1. 创建一个常规的 LangChain Agent

这部分代码展示了如何创建一个集成了高德地图工具的 Agent,这在 easya2a 介入之前是标准的 LangChain Agent 创建流程。

from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from mcpstore import MCPStoredemo_mcp = {"mcpServers": {"amap-amap-sse": {"url": "[https://mcp.amap.com/sse?key=da2c9c39f9edad643b9c53f506fb381c](https://mcp.amap.com/sse?key=da2c9c39f9edad643b9c53f506fb381c)"}}
}
store = MCPStore.setup_store()
store.for_store().add_service(demo_mcp)
tools = store.for_store().for_langchain().list_tools()llm = ChatOpenAI(temperature=0,model="deepseek-chat",openai_api_key="sk-...", # 请替换为您的 DeepSeek API Keyopenai_api_base="[https://api.deepseek.com](https://api.deepseek.com)"
)# --- 创建提示模板 (Prompt) ---
prompt = ChatPromptTemplate.from_messages([("system", "你是一个乐于助人的助手,回答的时候请带上可爱的表情符号。"),("human", "{input}"),("placeholder", "{agent_scratchpad}"),
])# --- 创建并运行 Agent ---
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)# 到此为止,我们拥有了一个标准的、可执行的 agent_executor
2. 使用 easya2a 进行封装和发布

接下来是见证奇迹的时刻!只需几行代码,我们就能将上面创建的 agent_executor 封装成一个功能强大的 A2A 服务。

# 导入 a2a 封装器
from easya2a import A2AAgentWrapper# --- 核心步骤:初始化并设置 Agent 信息 (必填) ---
easya2a_agent = A2AAgentWrapper.set_up(agent=agent_executor,name="高德地图路线查询Agent",description="这是一个拥有高德地图MCP功能的Agent,可以查询路线和地理位置的经纬度。"
)# --- 可选配置:为 Agent 添加具象化的技能 (可选) ---
# 这能让其他 Agent 更好地理解您的 Agent 能做什么
easya2a_agent.add_skill(skill_id="query_poi",name="城市景点查询",description="根据用户提供的城市名称,返回该城市的著名景点和对应的经纬度。",examples=["你好,山东有什么值得一去的景点吗?","我想知道北京有哪些好玩的景点?"],tags=["query", "conversation", "nlp", "location", "poi"]
)# --- 可选配置:设置元数据和能力开关 (可选) ---# 设置版本号
easya2a_agent.set_version("1.2.3")# 启用流式响应
easya2a_agent.enable_streaming()# 启用会话历史记录
easya2a_agent.enable_history()# 启用多模态能力
easya2a_agent.enable_multimodal()# 设置支持的输入/输出模式
easya2a_agent.set_input_modes(["text","text/plain","application/json","text/markdown"
])easya2a_agent.set_output_modes(["text","text/plain","application/json","text/markdown","text/html"
])# --- 最后一步:启动服务! ---
easya2a_agent.run_a2a(port=10012, host="0.0.0.0")# 启动后,您可以访问 [http://127.0.0.1:10012/](http://127.0.0.1:10012/) 来查看 A2A 服务的 OpenAPI 文档
http://www.dtcms.com/a/336584.html

相关文章:

  • Matlab数字图像处理——基于BM4D压缩感知的三维图像信号重构算法
  • 知识点汇集-web
  • 第三十八天(Node.JS)
  • 【LeetCode 热题 100】(八)二叉树
  • 如何使用java写一个agent
  • 说一下分离读写
  • c_str()函数的详细解析
  • 力扣438:找到字符串中所有的字母异位词
  • ACCESS/SQL SERVER保存软件版本号为整数类型,转成字符串
  • 第13章《远程处理:一对一及一对多》——PowerShell Remoting 学习笔记
  • Windows_Server软件定义网络架构
  • MXFP4量化:如何在80GB GPU上运行1200亿参数的GPT-OSS模型
  • 编程算法实例-阶乘
  • 天地图开发的优点
  • Steam 上传游戏包体操作步骤
  • Win11 文件资源管理器预览窗格显示 XAML 文件内容教程
  • K8S集群环境搭建(一)
  • STL 容器
  • 华东师范上海AiLab商汤!NaviMaster:学习适用于GUI和具身导航任务的统一策略
  • React学习(四)
  • 计算机视觉(一):nvidia与cuda介绍
  • 王树森深度强化学习DRL(一)RL基本概念+价值学习
  • 基于51单片机汽车自动照明灯超声波光敏远近光灯设计
  • Git安装使用
  • 【软考中级网络工程师】知识点之网络存储
  • 如何巧妙通过面试提高业务经验?
  • Spring IoC DI 终极指南:从造车模型到企业级开发实战
  • 嵌入式开发入门—电子元器件~半导体
  • Linux中iSCSI存储配置与管理指南
  • Java的网络攻防仿真演练系统