首页
/ elkar 的安装和配置教程

elkar 的安装和配置教程

2025-05-18 21:32:06作者:管翌锬

项目基础介绍

elkar 是一个开源的任务管理层,用于构建基于 Google 的 Agent2Agent 协议(A2A)的人工智能代理。它允许开发者轻松地发送、跟踪和协调跨 AI 代理的任务。elkar 提供了一个 Python SDK,以及其他语言的即将支持,以简化 A2A 协议的实现,并且还有一个应用和 API 来管理、监控和调试代理任务。

主要编程语言

elkar 项目主要使用 Python 编程语言。

项目使用的关键技术和框架

  • A2A 协议:Google 开发的 Agent2Agent 协议,用于代理间的通信。
  • 异步操作:使用 Python 的异步编程特性来处理任务。
  • RESTful API:提供 API 以便其他应用或服务与之交互。
  • Supabase 或其他后端存储:用于任务存储和管理。

准备工作

在开始安装 elkar 之前,请确保您的系统中已经安装了以下软件:

  • Python 3.8 或更高版本
  • pip(Python 包管理器)
  • Node.js 和 npm(用于运行调试器)

安装步骤

步骤 1:安装 Python SDK

首先,确保您的 Python 环境已经准备好。然后,使用 pip 安装 elkar SDK:

pip install elkar

步骤 2:创建任务处理器

在您的 Python 文件中,定义一个异步函数来处理任务。下面是一个基本的任务处理器示例:

from elkar.a2a_types import *
from elkar.server.server import A2AServer
from elkar.task_manager.task_manager_base import RequestContext
from elkar.task_manager.task_manager_with_task_modifier import TaskManagerWithModifier
from elkar.task_modifier.base import TaskModifierBase

async def task_handler(task: TaskModifierBase, request_context: RequestContext):
    await task.set_status(
        TaskStatus(
            state=TaskState.WORKING,
            message=Message(
                role="agent",
                parts=[TextPart(text="我理解了任务,正在处理中...")]
            )
        )
    )
    await task.upsert_artifacts([
        Artifact(
            parts=[
                TextPart(text="任务完成,这是结果...")
            ],
            index=0
        )
    ])
    await task.set_status(
        TaskStatus(
            state=TaskState.COMPLETED,
            message=Message(
                role="agent",
                parts=[TextPart(text="任务已完成!")]
            ),
            is_final=True
        )
    )

步骤 3:创建代理卡片

代理卡片是根据 A2A 协议的要求定义的。在您的 Python 文件中创建一个代理卡片:

agent_card = AgentCard(
    name="测试代理",
    description="测试代理描述",
    url="https://example.com",
    provider=AgentProvider(
        organization="Elkar",
        url="https://www.elkar.co"
    ),
    documentationUrl="https://example.com/documentation",
    version="1.0.0",
    skills=[
        AgentSkill(
            id="1",
            name="生成图像",
            description="根据提示描述生成图像",
            inputModes=["text"],
            outputModes=["image"]
        ),
    ],
    capabilities=AgentCapabilities(
        streaming=True,
        pushNotifications=True,
        stateTransitionHistory=True
    )
)

步骤 4:创建 A2A 服务器

实例化您的 A2A 服务器,使用托管服务作为任务存储:

api_key = "YOUR_ELKAR_API_KEY"  # 替换为您的实际 Elkar API 密钥
store = ElkarClientStore(
    base_url="https://api.elkar.co/api",
    api_key=api_key
)

task_manager = TaskManagerWithModifier(
    agent_card,
    send_task_handler=task_handler,
    store=store
)

server = A2AServer(
    task_manager,
    host="0.0.0.0",
    port=5001,
    endpoint="/"
)

server.start()  # 注意:这在生产环境中应使用 ASGI 服务器如 Uvicorn

步骤 5:运行和调试

如果想要仅用于调试 A2A 服务器,可以运行调试器:

cd a2a-client
npm run a2adebugger

然后,在浏览器中打开 http://localhost:5173 进行调试。

以上步骤就是 elkar 的安装和配置的基本教程。在实际应用中,您可能需要根据自己的需求进行更多的配置和定制。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
166
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
85
563
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
17
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
cjoycjoy
一个高性能、可扩展、轻量、省心的仓颉应用开发框架。IoC,Rest,宏路由,Json,中间件,参数绑定与校验,文件上传下载,OAuth2,MCP......
Cangjie
94
15
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
199
279
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
17
0
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
954
564