Skip to content

caict-4iot-dev/Xinghuo-developer-AI-copilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

星火链网智能助手

介绍

星火链网智能助手,是一个多智能体任务编排的演示系统,用于帮助开发者访问星火链网底层链和星火开放平台。其内部包含三个智能体,分别是编排智能体,离线智能体和在线智能体。

智能体介绍

离线智能体

之所以称作离线智能体,是因为该智能体的所有功能均不需要与星火底层链和开放平台交互。该智能体需要持有用户私钥,可以在安全环境下运行维护,以保护用户私钥信息。

  • 实现星火链网的离线的功能。
  • 密钥对管理(账户创建、BID/密钥生成)、
  • 私钥管理(校验、签名)、
  • 公钥管理(验签、有效性校验)、
  • 交易数据的生成和转换(序列化/反序列化)、
  • 账户与合约操作的数据生成(激活、元数据、权限、合约创建/调用、Gas发送)。
在线智能体

之所以称作在线智能体,是因为该智能体的所有操作均需要调用底层区块链和开放平台。为保护用户私钥安全,该智能体无需持有用户私钥,可以交给第三方运营维护。

  • 账户管理(激活、查询、权限)、
  • 区块管理(区块信息、出块节点)、
  • 链信息管理、合约管理(创建、调用、查询)、
  • 平台管理(交易缓存、许可)、
  • 交易管理(提交、费用评估、Gas、信息查询)
编排智能体

Orchestrate Agent

负责处理用户请求和任务编排。其中任务编排包括任务划分、任务分配、任务调度和跟踪等功能。 图中通过交易上链来展示其工作机制,可以看到交易上链这个目标包含多个子任务,子任务被分配给在线智能体和离线智能体来负责具体的执行,由用户智能体负责任务编排。

技术实现

所用到的智能体开源协议/开发框架
  • 模型上下文协议MCP负责功能封装
  • 智能体通信协议A2A负责智能体通信、任务状态跟踪
  • 智能体开发框架ADK负责用户交互界面和智能体编排。 protocol-framework
智能体在星火链网技术栈的位置

将星火链网开放平台BOP SDK封装成MCP智能体,将业务逻辑(如参数检查)与MCP协议解耦,可用性强。 tech-stacks

BOP SDK的开源代码,可访问链接https://github.com/caict-4iot-dev/bop-framework。

使用方法

系统启动

首先启动离线智能体和在线智能体

  • python -m offline_sdk_agent.a2a_server
  • python -m bop_sdk_agent.a2a_server

其次启动编排智能体

  • 执行python -m google.adk.cli web

测试用例

  • 打开与智能体交互的网页http://localhost:8000/dev-ui/
  • 在交互界面上分别输入任务请求:
    • 请帮我生成一个账户,将账户信息发给我;
    • 请帮我查询地址余额,地址字符串是did:bid:efQESvuR18rgZaWcsWE4mi8SEEUHAEwt和did:bid:ef23JVb42eryyAKD5fomZApJWzNjB3ucs
    • 请帮我生成一个账户,并查询该账户地址的余额
    • 请创建一个有效账户
    • 请向did:bid:ef23JVb42eryyAKD5fomZApJWzNjB3ucs转账,额度是1000,要能体现多智能体编排效果。

效果演示

在线智能体

在线智能体可以单独使用。用户通过命令行交互界面,来访问开放平台和底层链的功能。 bop-sdk-agent

离线智能体

离线智能体也支持单独使用。用户通过命令行交互界面,来通过自己的私钥、公钥等账户信息来实现星火协议格式的数据的生成和转换。 offline-sdk-agent

多智能体任务编排

与单个智能体相比,多智能体任务编排在能力和易用性上有提升,可以更好地理解和完成用户意图。 如下的动图展示了使用效果: orchestrate-agent-gif

项目负责人

xujinliang@信通院工物所

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages