
一个基于飞书(Lark)的全场景 MCP Function Call AI Agent ,实现大模型通过飞书进行函数调用和消息处理。
欢迎 star 和 fork
项目地址https://github.com/cv-cat/LarkAgentX
无需配置飞书机器人,你的飞书账号即是 AI 助手。
只需定义函数和注释,你的飞书机器人会自动根据场景调用。
Lark MCP 是一个现代化的 Python 应用程序,能够:
项目目前内置了以下函数供大模型调用:
| 函数名 | 描述 |
|---|---|
tell_joke | 讲一个随机笑话 |
get_time | 获取当前时间 |
roll_dice | 掷一个指定面数的骰子 |
make_todo_list | 从逗号分隔的任务创建待办清单 |
translate_to_chinese | 将英文单词翻译成中文 |
countdown | 创建一个从指定数字开始的倒计时 |
random_color | 生成一个随机的十六进制颜色代码 |
fortune | 抽取一个随机运势 |
count_daily_speakers | 获取今天发言的人数统计 |
get_top_speaker_today | 获取今天发言最多的用户 |
send_message | 给指定用户发送消息 |
list_tools | 列出所有可用的工具及其描述 |
你可以通过在飞书中输入触发指令后跟要执行的操作来调用这些功能,例如: /run 讲个笑话
project/ ├── app/ # 应用程序模块 │ ├── api/ # API 相关模块 │ │ ├── auth.py # 认证模块 │ │ └── lark_client.py # 飞书客户端 │ ├── config/ # 配置模块 │ │ └── settings.py # 应用配置 │ ├── core/ # 核心业务逻辑 │ │ ├── mcp_server.py # MCP 服务器 │ │ └── message_service.py # 消息处理服务 │ ├── db/ # 数据库相关 │ │ ├── models.py # 数据模型 │ │ └── session.py # 数据库会话管理 │ └── utils/ # 工具函数 ├── builder/ # 请求构建器 ├── static/ # 静态资源 │ ├── resource/ # 图片资源 │ ├── proto_pb2.py # 协议定义 │ └── lark_decrypt.js # 飞书解密工具 ├── .env # 环境变量 ├── main.py # 应用入口 └── Dockerfile # Docker 配置 在 app/core/mcp_server.py 文件中,您可以使用 @register_tool 装饰器添加您自己的自定义函数:
@register_tool(name="tell_joke", description="讲一个随机笑话") def tell_joke() -> str: jokes = [ "为什么程序员都喜欢黑色?因为他们不喜欢 bug 光。", "Python 和蛇有什么共同点?一旦缠上你就放不下了。", "为什么 Java 开发者很少被邀去派对?因为他们总是抛出异常。", ] return random.choice(jokes) @register_tool(name="send_message", description="给指定用户发送消息 {user:用户名称 content:消息内容}") def send_message(user: str, content: str) -> str: """给指定用户发送私信""" lark_client = LarkClient(get_auth()) # ... 实现逻辑 ... return f"成功向 {user} 发送了私信: '{content}'" 重要: 只需添加函数和对应的描述,AI 会根据用户的文字自动分析并调用最匹配的函数,无需手动实现函数匹配逻辑。
正在实习的一名研二学生,有问题欢迎加群或者加 V 交流,联络方式在 github 上哈,感谢 star
1 cvcat OP 没人 star 、评论 ┭┮┭┮ |
2 kid1412621 224 天前 via iPhone 飞书 != lark |
3 cvcat OP @kid1412621 why |
4 kid1412621 224 天前 via iPhone @cvcat #3 账号不相通 |
5 cvcat OP @kid1412621 加密是通的 |
6 liewstar 223 天前 via iPhone 能调到用户加入的群组信息吗 |
8 hugetimors 222 天前 想了解咋逆向的 |
9 cvcat OP @hugetimors protobuf js 逆向 |
10 cvcat OP @hugetimors 这个是 protobuf 的 |