Skip to main content
Glama
cv-cat
by cv-cat

Lark Agentx - Ihr Feishu KI-Assistent 🚀

Python Version Node.js Version

Ein auf Feishu (Lark) basierender KI-Agent, der es großen Sprachmodellen ermöglicht, Funktionsaufrufe und Nachrichtenverarbeitung über Feishu durchzuführen.

Keine Konfiguration eines Feishu-Bots erforderlich, Ihr Feishu-Konto fungiert als KI-Assistent.

Sie müssen lediglich Funktionen und Kommentare definieren; Ihr Feishu-Bot ruft diese automatisch je nach Szenario auf.

Projektübersicht 🌟

Lark Agentx ist eine moderne Python-Anwendung, die Folgendes ermöglicht:

  • 📊 Reverse Engineering von Websockets und APIs, die im Feishu-Protobuf-Format übertragen werden, um Nachrichten zu überwachen und zu protokollieren

  • 🤖 Bereitstellung benutzerdefinierter Funktionen für den Aufruf durch große Sprachmodelle

  • 🔄 Implementierung eines Frameworks für Funktionsaufrufe basierend auf dem MCP (Model Context Protocol)

  • 💾 Speicherung von Nachrichten in einer MySQL-Datenbank mittels SQLAlchemy

Related MCP server: Feishu MCP Server

Screenshots🧸

✨ Funktionen

  • Funktionsregistrierungsmechanismus: Einfacher und intuitiver Dekorator zur Funktionsregistrierung

  • Automatische Nachrichtenverarbeitung: Protokollierung aller empfangenen Nachrichten (Privat- und Gruppenchats)

  • Asynchrone Verarbeitung: Verwendung des async/await-Musters für asynchrone Kommunikation

  • Datenpersistenz: Speicherung von Nachrichten in einer MySQL-Datenbank mittels SQLAlchemy

  • Flexible Konfiguration: Konfiguration über Umgebungsvariablen

  • Containerisierte Bereitstellung: Unterstützung für schnelle Docker-Bereitstellung

  • Intelligente Funktionsaufrufe: Die KI analysiert Benutzereingaben automatisch und ruft die am besten passende Funktion auf; Entwickler müssen nur die Funktion und deren Kommentarbeschreibung hinzufügen

📦 Aktuell unterstützte Funktionen

Das Projekt enthält derzeit die folgenden integrierten Funktionen für den Aufruf durch große Sprachmodelle:

Funktionsname

Beschreibung

tell_joke

Erzählt einen zufälligen Witz

get_time

Ruft die aktuelle Uhrzeit ab

fortune

Zieht ein zufälliges Horoskop

get_weather

Ruft das Wetter für eine Stadt ab

count_daily_speakers

Ruft die Statistik der heutigen Sprecher ab

get_top_speaker_today

Ruft den Benutzer mit den meisten Nachrichten heute ab

send_message

Sendet eine Nachricht an einen bestimmten Benutzer

list_tools

Listet alle verfügbaren Tools und deren Beschreibungen auf

extra_order_from_content

Extrahiert Bestellinformationen aus Texten, einschließlich Bestellnummer, Produktname, Menge usw.

Sie können diese Funktionen aufrufen, indem Sie in Feishu einen Trigger-Befehl gefolgt von der gewünschten Aktion eingeben, z. B.: /run Erzähl einen Witz

📂 Projektstruktur

project/
├── app/                    # 应用程序模块
│   ├── api/                # API相关模块
│   │   ├── auth.py         # 认证模块
│   │   └── lark_client.py  # 飞书客户端
│   ├── config/             # 配置模块
│   │   └── settings.py     # 应用配置
│   ├── core/               # 核心业务逻辑
│   │   ├── mcp_server.py   # MCP服务器(函数注册和处理)
│   │   ├── llm_service.py  # LLM服务
│   │   └── message_service.py  # 消息处理服务
│   ├── db/                 # 数据库相关
│   │   ├── models.py       # 数据模型
│   │   └── session.py      # 数据库会话管理
│   └── utils/              # 工具函数
├── builder/                # 请求构建器
├── extension/              # 扩展功能
│   └── weather_api/        # 天气API集成
├── static/                 # 静态资源
│   ├── resource/           # 图片资源
│   ├── proto_pb2.py        # 协议定义
│   └── lark_decrypt.js     # 飞书解密工具
├── .env                    # 环境变量
├── main.py                 # 应用入口
├── requirements.txt        # 项目依赖
├── docker-compose.yml      # Docker Compose配置
└── Dockerfile              # Docker配置

🛠️ Entwicklung benutzerdefinierter Funktionen

In der Datei app/core/mcp_server.py können Sie Ihre eigenen benutzerdefinierten Funktionen mit dem @register_tool-Dekorator hinzufügen:

@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}'"

Wichtig: Fügen Sie einfach die Funktion und die entsprechende Beschreibung hinzu. Die KI analysiert den Text des Benutzers automatisch und ruft die am besten passende Funktion auf; eine manuelle Implementierung der Funktionsabgleichslogik ist nicht erforderlich.

🔧 Systemanforderungen

  • Python 3.10+

  • Node.js 18+

  • MySQL-Datenbank

📦 Installationsmethode

Verwendung der lokalen Umgebung

  1. Abhängigkeiten installieren:

    pip install -r requirements.txt
  2. Hinweis für Windows-Benutzer: Windows-Systeme erfordern die zusätzliche Installation der folgenden Abhängigkeiten:

    pip install win-inet-pton==1.1.0

Verwendung von Docker

Methode 1: Image separat erstellen

# 构建镜像 
docker build -t feishuapp .

# 运行容器 需要外部mysql 通过docker网关连接宿主机mysql 推荐--env-file
docker run -it feishuapp bash

Methode 2: Verwendung von Docker Compose (empfohlen)

# 启动所有服务(应用和数据库)
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止所有服务
docker-compose down

Mit Docker Compose können Sie die gesamte Anwendungsumgebung, einschließlich der MySQL-Datenbank und der Anwendungsdienste, mit einem Klick starten, was bequemer und effizienter ist.

🛠️ Konfigurationshinweise

Kopieren Sie die Datei .env.example und benennen Sie sie in .env um. Sie enthält die folgende Konfiguration:

# 数据库设置
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=123456
DB_NAME=lark_messages

# 飞书的Cookie设置 - 只需配置LARK_COOKIE即可,告别飞书机器人
LARK_COOKIE=""

# 调用函数的触发前缀 (以FUNCTION_TRIGGER_FLAG开头的消息会被大模型解析,所有消息都会被记录到数据库,无论是否以该前缀开头)
FUNCTION_TRIGGER_FLAG="/run"

# 机器人发言前缀 (暂未使用)
AI_BOT_PREFIX="Lark AI Bot:"

# OpenAI API配置 默认是通义千问的,满足OpenAI的大模型厂商都可以
OPENAI_API_KEY=""
OPENAI_API_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
OPENAI_API_MODEL="qwen-plus"

🚀 Benutzerhandbuch

Anwendung ausführen

Methode 1: Direkt ausführen

python main.py

Methode 2: Verwendung von Docker Compose

docker-compose up -d

Die Anwendung wird:

  1. Den MCP-Server initialisieren

  2. Eine Verbindung zur Feishu-API herstellen und Ihr Feishu-Konto als KI-Assistent verwenden

  3. Eingehende Nachrichten überwachen

  4. Funktionsaufrufe, die von großen Sprachmodellen über Feishu initiiert wurden, verarbeiten und ausführen

  5. Nachrichten in der MySQL-Datenbank speichern

🗄️ Datenbankstruktur

Die Anwendung speichert Nachrichten in der Tabelle messages, die die folgende Struktur aufweist:

Spaltenname

Typ

Beschreibung

id

INT (PK)

Primärschlüssel

user_name

VARCHAR(255)

Name des Nachrichtenabsenders

user_id

VARCHAR(255)

Feishu-Benutzer-ID des Absenders

content

TEXT

Nachrichteninhalt

is_group_chat

BOOLEAN

Ob die Nachricht aus einem Gruppenchat stammt

group_name

VARCHAR(255)

Gruppenchat-Name (falls zutreffend)

chat_id

VARCHAR(255)

Chat-ID

message_time

DATETIME

Sendezeit der Nachricht

created_at

DATETIME

Erstellungszeitpunkt des Datensatzes

🤝 Beitrag leisten

Beiträge sind willkommen! Bitte zögern Sie nicht, einen Pull Request einzureichen.

  1. Forken Sie dieses Repository

  2. Erstellen Sie Ihren Feature-Branch (git checkout -b feature/amazing-feature)

  3. Committen Sie Ihre Änderungen (git commit -m 'Einige großartige Funktionen hinzugefügt')

  4. Pushen Sie in den Branch (git push origin feature/amazing-feature)

  5. Öffnen Sie einen Pull Request

🐛 Probleme und Support

Wenn Sie auf Probleme stoßen oder Fragen haben, erstellen Sie bitte ein Issue oder besuchen Sie unser Diskussionsforum.

📈 Star-Trend

🍔 Austauschgruppe

Wenn Sie sich für Crawler und KI-Agenten interessieren, fügen Sie bitte den Autor über die Homepage (WeChat) hinzu, um eine Einladung zur Gruppe zu erhalten.

PS: Bitte treten Sie Gruppe 7 bei. Wenn diese voll oder abgelaufen ist, erstellen Sie ein Issue | WeChat-Erinnerung

group7

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • A Model Context Protocol server for Wix AI tools

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cv-cat/LarkAgentX'

If you have feedback or need assistance with the MCP directory API, please join our Discord server