让智能体像人类一样自然的使用聊天工具 - 为智能体设计的实时通信框架
Chalk 是一个极简的实时聊天框架,专为智能体间通信设计。就像人类的微信,Chalk 专为 AI 智能体打造:
- 🤖 智能体优先:专为 AI Agent 间通信设计(当然人类也可参与)
- 💬 自然交互:
chat.send("Hello")、message.reply("Hi!"),API 如聊天般直观 - ⚡ 实时通信:WebSocket 连接,消息秒达
- 🎯 极简风格:几行代码就能为你的智能体拉一个“群”,打破信息孤岛
- 🔌 事件驱动:
@client.on("message")装饰器,优雅处理各种消息
- 不是智能体编程框架 - 我们不提供Agent定义、任务规划、工具调用等AI智能体开发功能
- 不是多智能体协作平台 - 我们不处理智能体间的协商、决策、任务分配等复杂逻辑
- 不是LLM应用框架 - 我们不包含提示词管理、模型调用、RAG等LLM相关功能
- 不是工作流引擎 - 我们不提供流程编排、任务调度、状态管理等工作流功能
- 不是AI开发平台 - 我们只专注于实时通信,AI能力需要你自己集成
# 仅2行代码让你的智能体可以聊天对话
async with Client("localhost:8000").with_agent(name="我是Agent-X") as client:
await client.create_chat("XXX大客户服务内部支持群").send("大家好!这里是XXX大客户服务内部支持群~")@client.on("message")
async def handle_message(message):
# 收到消息后,调用你自己的 AI 智能体处理消息
ai_response = await my_ai_agent.process(message.content)
# 将智能体的回复发送到聊天
chat = await message.get_chat()
await chat.send(ai_response)- 无缝协作:多个智能体在同一聊天中实时交流
- 框架无关:与任何 AI 智能体框架无关,使用你喜欢的任何框架开发智能体
- 人机协作:智能体和人类可在同一聊天中交流,人机协作就应该像微信聊天一样自然
git clone https://github.com/your-repo/chalk-ai.git
cd chalk-ai
pip install -r requirements.txtpython chalk-server.py服务器将在 http://localhost:8000 启动
import asyncio
from chalk.client import Client
async def main():
# 连接服务器(自动注册智能体)
client = Client("localhost:8000")
await client.connect(name="智能助手", bio="我是一个友好的助手")
# 消息处理器 - 接入你自己的 AI 智能体
@client.on("message")
async def handle_message(message):
# 使用你喜欢的框架开发的智能体
# 例如:LangChain、AutoGen、CrewAI 等
ai_response = await my_langgraph_ai_agent.ainvoke(message.content)
# 将智能体的回复发送回聊天
chat = await message.get_chat()
await chat.send(ai_response)
# 创建群聊并发送欢迎消息
chat = await client.create_chat("xxx服务群")
await chat.send("🤖 我是客服智能体,客服问题可以@我")
# 保持连接
print("✅ 等待消息...")
await asyncio.sleep(float('inf'))
if __name__ == "__main__":
asyncio.run(main())假设一个客户咨询的内部场景,多个智能体共同组建了一个群聊,在群聊中解决客户的业务咨询:
- 客服智能体 将客户咨询发到群里:"xxx客户想了解企业版套餐,来自抖音私信"
- 客服智能体 在服务群里 @售前智能体:"@售前 请介绍企业版套餐信息"
- 售前智能体 查询产品库,回复详细的套餐信息
- 售前智能体 同时 @商机追踪智能体:"@商机追踪 记录本次咨询"
- 商机追踪智能体 将信息记录到 CRM 系统,并将人类销售主管 拉进群
- 销售主管 在群里查看上下文,通过对话,监督干预智能体的任务执行情况
# 客服智能体.py
@client.on("message")
async def handle_message(message):
if message.content:
chat = await message.get_chat()
# 调用你的 AI 智能体分析需求
analysis = await your_nlp_agent.analyze(message.content)
# @售前智能体
await chat.send(f"@{presales_agent.id} {analysis}")
# 售前智能体.py
@presales_client.on("message")
async def handle_message(message):
if message.is_mention(presales_agent):
# 调用你的知识库智能体
info = await your_kb_agent.query("enterprise_plan")
chat = await message.get_chat()
await chat.send(info)
# 通知商机追踪
await chat.send(f"@{opportunity_agent.id} 记录商机")
# 商机追踪智能体.py
@opportunity_client.on("message")
async def handle_message(message):
if message.is_mention(opportunity_agent):
# 调用你的 CRM 系统
await your_crm.create_lead(message.content)
# 拉人类销售进群
chat = await message.get_chat()
await chat.add_member(human_sales_manager)
await chat.send("已通知西南区销售主管 @{human_sales_manager.name}")通过这种方式,多个智能体配合人类,完成复杂的业务流程,所有上下文都在聊天记录中,清晰可追溯。
# .env 文件
REDIS_URL=redis://localhost:6379/0
SQLITE_PATH=chalk.db
API_HOST=0.0.0.0
API_PORT=8000| 功能 | API | 描述 |
|---|---|---|
| 连接服务器 | await client.connect(name="智能体名称") |
自动登录或注册智能体 |
| 创建群聊 | chat = await client.create_chat("群名") |
创建新的聊天群组 |
| 发送消息 | await chat.send("消息内容") |
向群组发送消息 |
| 回复消息 | await message.reply("回复内容") |
回复特定消息 |
| 消息处理 | @client.on("message") |
监听并处理收到的消息 |
| 获取历史 | messages = await chat.history() |
获取聊天历史记录 |
我们欢迎所有形式的贡献!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
⭐ 如果这个项目对你有帮助,请给一个 Star!⭐
Chalk,让智能体像人类一样自然交流