Clawdbot汉化版代码实例:Python脚本自动读取企业微信审批单,交由AI生成执行计划

1. 什么是Clawdbot?——不只是聊天机器人,而是你的智能工作流引擎

Clawdbot 汉化版不是另一个“在网页里打字问AI”的工具。它是一套可嵌入真实业务场景的本地化智能代理系统,核心价值在于:把AI能力无缝接入你每天使用的通讯工具和办公系统中。

它确实支持微信(通过企业微信API)、WhatsApp、Telegram、Discord等渠道,但真正让它脱颖而出的是——它能主动对接企业级数据源,并将结构化任务交由AI深度处理

比如本文要讲的这个真实用例:

企业微信里每天有几十份采购审批、差旅申请、合同用印流程单。人工逐条阅读、拆解、分派、跟进,耗时且易错。而Clawdbot汉化版可以:
自动拉取最新审批单(含申请人、事由、金额、附件)
调用本地大模型理解语义、识别关键动作(如“需采购3台服务器”“需法务审核合同第5条”)
生成带时间节点、责任人、交付物的执行计划(非泛泛而谈,而是可直接发给同事的待办清单)
通过企业微信消息自动推送结果,并支持点击确认/驳回

这已经超出了“对话助手”的范畴,进入了AI驱动的轻量级RPA+知识助理阶段。

它的四大基石,也决定了它为何适合落地到企业内部:

  • 真正在微信里用:不是跳转网页,而是以“企业微信应用”身份出现在员工通讯录中,审批单更新后自动@相关人并附上AI生成的执行摘要
  • 完全可控的免费:不依赖SaaS订阅,所有模型运行在你自己的服务器或笔记本上,用Ollama部署qwen2、phi3等轻量模型即可启动
  • 数据零出域:审批单内容、AI思考过程、生成的执行计划,全部保留在内网环境。连日志文件都默认加密存储在/root/.clawdbot/
  • 7×24小时值守:只要服务器开机,Clawdbot网关就持续监听企业微信回调事件,无需人工唤醒

网关令牌 dev-test-token 是你本地服务的“门禁卡”,它只在你的内网生效,不会上传至任何云端。

2. 为什么是企业微信?——打通审批流的第一步

很多团队问:“为什么不是钉钉或飞书?”答案很实际:企业微信的审批API最开放、文档最清晰、回调机制最稳定,尤其对中小型企业IT团队极其友好。

Clawdbot汉化版已内置企业微信审批模块,无需从零开发OAuth授权和消息加解密。你只需三步完成对接:

2.1 在企业微信管理后台配置可信域名与回调URL

  1. 登录【企业微信管理后台】→【应用管理】→【自建应用】→ 创建新应用(名称建议为“Clawdbot智能助手”)
  2. 记录下该应用的 AgentIdSecretCorpID —— 这些将写入Clawdbot配置
  3. 进入【应用管理】→【接收消息】→ 设置回调URL为:
    https://你的公网IP:18789/api/v1/wecom/callback
    (若无公网IP,可用内网穿透工具如frp映射,Clawdbot自带frp.ini模板)
  4. 加密模式选【明文模式】(开发阶段更易调试),Token和EncodingAESKey按提示生成并保存

2.2 将企业微信凭证写入Clawdbot配置

打开终端,执行以下命令(替换为你的真实凭证):

cd /root/clawdbot
node dist/index.js config set integrations.wecom.corp_id "ww1234567890abcdef"
node dist/index.js config set integrations.wecom.agent_id "1000002"
node dist/index.js config set integrations.wecom.secret "your_app_secret_here"
node dist/index.js config set integrations.wecom.token "clawd_wecom_token"
node dist/index.js config set integrations.wecom.encoding_aes_key "your_encoding_aes_key"

小技巧:Clawdbot会自动校验凭证有效性。如果配置错误,下次启动网关时会在/tmp/clawdbot-gateway.log中明确报错“Wecom auth failed”,而非静默失败。

2.3 启用审批单监听并测试

Clawdbot默认监听所有审批类型。如需限定范围(例如只处理“采购申请”和“合同审批”),编辑配置:

node dist/index.js config set integrations.wecom.watch_approval_types '["PROCUREMENT","CONTRACT"]'

然后重启网关:

bash /root/restart-gateway.sh

此时,在企业微信中提交一份测试审批单。几秒后,你会在终端看到类似日志:

[INFO] Wecom: Received approval event for proc_id=20240515001, type=PROCUREMENT, status=PENDING
[INFO] Wecom: Fetched full approval data: { "申请人": "张三", "事由": "采购3台Dell R760服务器", "金额": "¥86,500", "附件": ["quote_dell_20240515.pdf"] }

这表示数据管道已通——Clawdbot已成功“看见”审批单。

3. Python脚本实战:从原始审批数据到可执行计划

Clawdbot本身不直接生成执行计划,但它提供了一个极简的插件式任务调度接口。我们用一个独立的Python脚本完成核心逻辑,再由Clawdbot触发调用。这种方式保证了业务逻辑的可维护性与可测试性。

3.1 脚本设计思路:三步走,每步都可验证

步骤 功能 验证方式
① 数据提取 解析企业微信推送的JSON,提取申请人、事由、金额、附件URL 手动传入测试JSON,打印解析结果
② AI理解与拆解 将结构化信息喂给本地大模型,要求其输出标准JSON格式的执行计划 本地运行脚本,观察模型输出是否符合schema
③ 结果推送 将AI生成的JSON,通过企业微信API推送给申请人及审批人 查看企业微信消息是否送达

整个脚本控制在120行以内,无外部依赖(除requests、json),便于部署到任意Linux服务器。

3.2 完整可运行代码(保存为 /root/clawd/scripts/wecom_plan_generator.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Clawdbot企业微信审批单AI执行计划生成器
输入:企业微信审批事件JSON(含申请人、事由、金额、附件)
输出:结构化执行计划(含步骤、负责人、DDL、交付物)
"""

import os
import json
import requests
import sys
from datetime import datetime, timedelta

# ===== 配置区(根据你的环境修改)=====
WECOM_CORP_ID = "ww1234567890abcdef"
WECOM_AGENT_ID = "1000002"
WECOM_SECRET = "your_app_secret_here"
CLAWDBOT_GATEWAY_URL = "http://127.0.0.1:18789"  # Clawdbot本地地址
# =====================================

def get_wecom_access_token():
    """获取企业微信access_token(有效期2小时,此处简化,生产环境应缓存)"""
    url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={WECOM_CORP_ID}&corpsecret={WECOM_SECRET}"
    resp = requests.get(url, timeout=10)
    return resp.json().get("access_token")

def send_wecom_message(user_id, content):
    """向指定用户发送文本消息"""
    token = get_wecom_access_token()
    url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}"
    payload = {
        "touser": user_id,
        "msgtype": "text",
        "agentid": WECOM_AGENT_ID,
        "text": {"content": content},
        "safe": 0
    }
    requests.post(url, json=payload, timeout=10)

def parse_approval_data(raw_json):
    """从企业微信回调JSON中提取关键字段"""
    try:
        data = json.loads(raw_json) if isinstance(raw_json, str) else raw_json
        # 简化:实际需根据企业微信审批模板ID动态解析,此处以通用字段为例
        return {
            "applicant": data.get("applyer_name", "未知申请人"),
            "reason": data.get("summary", "无事由描述"),
            "amount": data.get("amount", "未填写金额"),
            "proc_id": data.get("proc_id", "未知单号"),
            "attachments": [a.get("media_id") for a in data.get("attachments", [])]
        }
    except Exception as e:
        return {"error": f"解析失败: {str(e)}"}

def generate_plan_with_ai(approval_data):
    """调用Clawdbot本地AI生成执行计划"""
    # 构造清晰的提示词(Prompt)
    prompt = f"""
你是一个资深的企业流程优化专家。请根据以下企业微信审批单信息,生成一份详细、可执行的落地计划。
要求:
1. 输出必须是严格JSON格式,包含以下5个键:steps(数组)、responsible(字符串)、deadline(字符串,格式YYYY-MM-DD)、deliverables(数组)、notes(字符串)
2. steps数组中每个元素是对象,含step_no(数字)、description(操作描述)、duration_days(预估耗时天数)
3. responsible填写具体岗位或姓名,如"IT采购专员"、"法务部李四"
4. deadline是最终完成日期,基于当前日期推算(今天是{datetime.now().strftime('%Y-%m-%d')})
5. deliverables列出3项必须交付的成果,如"采购合同终稿"、"服务器上架报告"

审批单信息:
- 申请人:{approval_data['applicant']}
- 事由:{approval_data['reason']}
- 金额:{approval_data['amount']}
- 单号:{approval_data['proc_id']}
"""
    
    # 调用Clawdbot本地AI API(使用minimal思考级别,确保快速响应)
    api_url = f"{CLAWDBOT_GATEWAY_URL}/api/v1/agent/main"
    payload = {
        "message": prompt,
        "thinking": "minimal",
        "json": True
    }
    try:
        resp = requests.post(api_url, json=payload, timeout=60)
        result = resp.json()
        # 验证返回是否为有效JSON(Clawdbot会尽力保证,但需二次校验)
        plan = json.loads(result.get("response", "{}"))
        return plan
    except Exception as e:
        return {"error": f"AI生成失败: {str(e)}"}

def format_plan_for_wecom(plan_data):
    """将AI返回的JSON计划,格式化为易读的企业微信消息"""
    if "error" in plan_data:
        return f" 执行计划生成失败:{plan_data['error']}"
    
    # 构建消息正文
    msg_lines = [
        f" 审批单 #{plan_data.get('proc_id', 'N/A')} 执行计划",
        f"👤 责任人:{plan_data.get('responsible', '待指派')}",
        f"⏰ 最终截止:{plan_data.get('deadline', '待确认')}",
        "",
        " 关键步骤:"
    ]
    
    for step in plan_data.get("steps", []):
        desc = step.get("description", "未知操作")
        days = step.get("duration_days", 0)
        msg_lines.append(f"  {step.get('step_no', '?')}. {desc}(约{days}天)")
    
    deliverables = plan_data.get("deliverables", [])
    if deliverables:
        msg_lines.extend(["", "📦 必须交付:"])
        for i, d in enumerate(deliverables, 1):
            msg_lines.append(f"  {i}. {d}")
    
    if plan_data.get("notes"):
        msg_lines.extend(["", " 补充说明:", f"{plan_data['notes']}"])
    
    return "\n".join(msg_lines)

if __name__ == "__main__":
    # 从命令行参数或stdin读取企业微信原始JSON
    if len(sys.argv) > 1:
        raw_input = sys.argv[1]
    else:
        raw_input = sys.stdin.read().strip()
    
    if not raw_input:
        print("错误:未提供审批单JSON数据")
        sys.exit(1)
    
    # 1. 解析数据
    parsed = parse_approval_data(raw_input)
    if "error" in parsed:
        print(parsed["error"])
        sys.exit(1)
    
    # 2. 调用AI生成计划
    plan = generate_plan_with_ai(parsed)
    if "error" in plan:
        print(plan["error"])
        sys.exit(1)
    
    # 3. 格式化并发送
    wecom_msg = format_plan_for_wecom(plan)
    # 发送给申请人(实际中可扩展为多人群发)
    send_wecom_message(parsed["applicant"], wecom_msg)
    
    print(" 执行计划已生成并推送至企业微信")

3.3 如何让Clawdbot自动触发这个脚本?

Clawdbot汉化版支持“事件钩子(Event Hooks)”。当它收到企业微信审批事件时,可自动执行一段Shell命令。

编辑Clawdbot配置,添加钩子:

node dist/index.js config set hooks.wecom.approval_received 'python3 /root/clawd/scripts/wecom_plan_generator.py "$EVENT_PAYLOAD"'

其中 $EVENT_PAYLOAD 是Clawdbot自动注入的原始JSON字符串。

效果验证:再次提交审批单,几秒后申请人手机企业微信将收到一条结构清晰的执行计划消息,包含步骤、责任人、DDL和交付物。全程无人工干预。

4. 效果实测:一份真实的采购审批单如何被AI“读懂”

我们用一份真实的测试数据来验证脚本效果。假设企业微信审批单JSON如下(已脱敏):

{
  "applyer_name": "王五",
  "summary": "采购2台MacBook Pro M3 Max用于UI设计师,预算¥38,000",
  "amount": "¥38,000",
  "proc_id": "PROC-20240515-001",
  "attachments": [{"media_id": "abc123"}]
}

将此JSON粘贴到脚本中运行(或作为参数传入),AI(qwen2:1.5b模型)返回的JSON计划示例:

{
  "steps": [
    {"step_no": 1, "description": "比价3家授权经销商,确认M3 Max配置与报价", "duration_days": 2},
    {"step_no": 2, "description": "走内部采购审批流程(需CTO签字)", "duration_days": 1},
    {"step_no": 3, "description": "下单并跟踪物流,收货后安装系统与软件", "duration_days": 3}
  ],
  "responsible": "行政采购专员",
  "deadline": "2024-05-22",
  "deliverables": ["比价表PDF", "采购审批单签字页", "2台MacBook Pro验收报告"],
  "notes": "优先选择Apple教育优惠渠道,确保享受3年保修"
}

Clawdbot将其渲染为企业微信消息后,呈现效果如下(文字版):

 审批单 #PROC-20240515-001 执行计划
👤 责任人:行政采购专员
⏰ 最终截止:2024-05-22

 关键步骤:
  1. 比价3家授权经销商,确认M3 Max配置与报价(约2天)
  2. 走内部采购审批流程(需CTO签字)(约1天)
  3. 下单并跟踪物流,收货后安装系统与软件(约3天)

📦 必须交付:
  1. 比价表PDF
  2. 采购审批单签字页
  3. 2台MacBook Pro验收报告

 补充说明:
优先选择Apple教育优惠渠道,确保享受3年保修

对比人工处理:传统方式需采购员花15分钟阅读、查价、填表、邮件沟通;而Clawdbot+AI方案在8秒内完成同等质量的计划输出,并自动推送,释放人力去处理更复杂的谈判与协调。

5. 进阶优化:让执行计划更“懂业务”

上述脚本是开箱即用的起点。在真实环境中,你可以轻松叠加以下增强能力,全部基于Clawdbot现有架构,无需重写:

5.1 接入内部知识库,让AI回答更精准

Clawdbot支持RAG(检索增强生成)。将公司《采购管理制度》《IT设备配置标准》等PDF文档放入/root/clawd/knowledge/目录,执行:

node dist/index.js rag index --path /root/clawd/knowledge/

随后在提示词中加入一句:“请严格依据《采购管理制度》第3.2条执行”,AI便会优先参考该文档作答,避免凭空编造。

5.2 自动关联审批人,实现“谁审批、谁执行”

企业微信审批流中,审批节点信息(如“部门负责人”、“财务总监”)是结构化的。修改parse_approval_data()函数,提取approver_list,并在生成计划时,将responsible字段动态绑定为下一个审批人的姓名或部门。

5.3 生成可视化甘特图(可选)

若需更直观的计划视图,可在脚本末尾增加:

# 使用mermaid语法生成甘特图(企业微信支持markdown渲染)
gantt_str = "```mermaid\ngantt\n    title 采购执行甘特图\n    dateFormat  YYYY-MM-DD\n    section MacBook采购\n    比价       :a1, 2024-05-15, 2d\n    审批       :a2, after a1, 1d\n    下单收货   :a3, after a2, 3d\n```"
send_wecom_message(parsed["applicant"], gantt_str)

企业微信将自动渲染为交互式甘特图。

6. 总结:Clawdbot汉化版不是玩具,而是你的AI工作流底座

回顾整个实践,Clawdbot汉化版的价值远不止于“在微信里聊AI”。它提供了一套低门槛、高可控、强集成的本地化AI工作流框架:

  • 对开发者:它用标准化的config sethooksagent命令,替代了繁琐的Webhook服务开发、模型API封装、消息加解密等重复劳动。你专注业务逻辑(如本例的审批计划生成),它负责连接、调度、安全。
  • 对IT管理员:所有凭证、日志、模型、数据均在本地,审计合规性一目了然。dev-test-token只是网关入口,真正的权限控制在企业微信后台。
  • 对一线员工:他们不需要知道Ollama、qwen2、RAG是什么。他们只看到:提交审批单 → 收到一条带步骤、DDL、交付物的清晰消息 → 点击“已确认”即可开始执行。

这正是Clawdbot汉化版的设计哲学:AI能力应该像水电一样,无形地融入工作流,而不是让用户学习如何使用AI。

当你把第一个审批单的执行计划成功推送到企业微信时,你就已经跨过了AI落地最难的一步——从“能跑起来”到“真有用”。接下来,采购、HR、法务、IT等部门的各类流程,都可以用同样模式快速复制。

记住三个关键动作
🔹 先跑通:用本文脚本和测试数据,10分钟内看到第一条AI生成的计划消息
🔹 再定制:根据你公司的审批模板,微调parse_approval_data()中的字段提取逻辑
🔹 最后扩展:将generate_plan_with_ai()中的提示词,替换成你部门特有的SOP术语和交付标准

AI不是取代人,而是让人从重复劳动中解放,去做只有人类才能做的判断、创新与关怀。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐