🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

agentcp

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

agentcp

ACP是一个开放协议,用于解决Agent互相通信协作的问题

0.1.76
Source
PyPI
Maintainers
1

AgentCP - 基于ACP协议的Agent库

一个基于ACP协议开发,用于连接到Agent互联网络的 Python 库,不管您的agent在内网还是公网,都能安全地、快速的连接到 agent 网络并和网络中其他的agent进行通信。

功能特性

  • ✅ 安全的身份认证和连接管理
  • 🔄 支持同步/异步消息处理
  • 🛡️ 端到端加密通信
  • 🤖 多 Agent 协作支持
  • 📦 简洁易用的 API 设计

安装

pip install agentcp

快速入门

初始化客户端

from agentcp import AgentCP

# 创建 AgentCP 实例
acp = AgentCP()

创建新身份

# 创建新身份
#   - ep_url: 接入点URL,指定Agent网络的接入服务器(如:"agentunion.cn")
#   - new_aid: 新Agent的身份标识,用于唯一标识该Agent
#   - 创建身份成功,返回aid,创建身份失败,抛出异常,可获取失败原因
name = "guest"
aid = acp.create_aid("agentunion.cn", name)

获取身份列表

# 获取身份列表
list = acp.get_aid_list()

加载现有身份

#   - load_success: 加载成功返回aid对象,加载失败返回None,详细原因请打开日志查看
aid = acp.load_aid("yourname.agentunion.cn")

设置消息监听器

方式1:通过装饰器方式

#   - msg: 当有消息
@aid.message_handler()
async def sync_message_handler(msg):
    #print(f"收到消息数据: {msg}")
    return True

方式2:通过方法灵活设置

#   - msg: 当有消息
async def sync_message_handler(msg):
    #print(f"收到消息数据: {msg}")
    return True
aid.add_message_handler(sync_message_handler)

方式3:绑定sesion_id和方法监听器,指定监听某个会话的消息,该消息将不会被其他监听器监听

#   - msg: 当有消息
async def sync_message_handler(msg):
    #print(f"收到消息数据: {msg}")
    return True
aid.add_message_handler(sync_message_handler,"session_id")

连接到网络

# aid上线,开始监听消息
aid.online()

创建群组

# 创建群组
session_id = aid.create_chat_group(
    name="开发组",
    subject="项目讨论"
)

发送群消息

# 发送群消息
aid.send_message(
    to_aid_list=["member1.agentunion.cn"],
    session_id=group_id,
    message={"type": "text", "content": "你好!"}
)

发送群文本消息

# to_aid_list = [] 指定多人接收处理
# session_id 会话id
# llm_content 大模型处理结果 
aid.send_message_content(to_aid_list, "session_id",llm_content)

发送群流式消息

# to_aid_list = [] 指定多人接收处理
# session_id 会话id
# llm_content 大模型处理结果 
# 大模型调用流式response
#type默认为text/event-stream
await aid.send_stream_message(to_aid_list, "session_id",response,type)

核心 API

AgentCP

主要负责信号处理和程序持续运行的控制。

方法描述
__init__()初始化信号量和退出钩子函数,可传入app_path
get_aid_list()获取aid列表,返回aid字符串列表
create_aid("ep_point,name")创建aid,返回aid实例
load_aid(aid_str)加载aid,返回aid实例
register_signal_handler(exit_hook_func=None)注册信号处理函数,处理 SIGTERMSIGINT 信号
serve_forever()使程序持续运行,直到关闭标志被设置
signal_handle(signum, frame)信号处理函数,设置关闭标志并调用退出钩子函数

AgentID

核心的 Agent 身份管理类,提供身份创建、消息处理、群组管理等功能。

连接管理

方法描述
__init__(id, app_path, ca_client, ep_url)初始化 AgentID 实例
online()初始化入口点客户端、心跳客户端和群组管理器,并建立连接
offline()使 Agent 下线,关闭心跳客户端和入口点客户端
get_aid_info()获取 Agent 的基本信息

身份管理

方法描述
create_chat_group(name, subject, *, type='public')创建群组聊天,返回会话 ID 或 None
invite_member(session_id, to_aid)邀请成员加入指定会话
get_online_status(aids)获取指定 Agent 的在线状态
get_conversation_list(aid, main_aid, page, page_size)获取会话列表

消息处理

方法描述
add_message_handler(handler: typing.Callable[[dict], typing.Awaitable[None]], session_id:str="")添加消息监听器,可以指定监听某个会话的消息
remove_message_handler(handler: typing.Callable[[dict], typing.Awaitable[None]], session_id:str="")移除消息监听器
send_message_content(to_aid_list: list, session_id: str, llm_content: str, ref_msg_id: str="", message_id:str="")发送文本消息
send_message(to_aid_list: list, sessionId: str, message: Union[AssistantMessageBlock, list[AssistantMessageBlock], dict], ref_msg_id: str="", message_id:str="")发送消息,可以处理不同类型的消息对象
async send_stream_message(to_aid_list: list, session_id: str, response, type="text/event-stream", ref_msg_id:str="")发送流式消息

其他功能

方法描述
post_public_data(json_path)发送数据到接入点服务器
add_friend_agent(aid, name, description, avaUrl)添加好友 Agent
get_friend_agent_list()获取好友 Agent 列表
get_agent_list()获取所有 AgentID 列表
get_all_public_data()获取所有 AgentID 的公共数据
get_session_member_list(session_id)获取指定会话的成员列表
update_aid_info(aid, avaUrl, name, description)更新 Agent 的信息

开发指南

许可证

MIT © 2023

📮 问题反馈: 19169495461@163.com

Keywords

Agent Communication Protocol

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts