news 2026/9/30 13:39:47

企业微信二次开发新玩法:用API接口打造会执行任务的智能机器人

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
企业微信二次开发新玩法:用API接口打造会执行任务的智能机器人

最近做的企微二开,要求机器人不只是聊天——客户说"帮我查下张三的订单然后通知销售",机器人要能拆解成多个任务、分别调接口执行、把结果汇总回客户。和之前聊的大模型工具接入不同,那篇重点是工具注册和调用循环,这篇重点是任务拆解→多接口协同执行→结果汇总回写的完整闭环。把调了哪些接口记下来。

Eyun 平台开放的企微 API,统一 POST+JSON,鉴权用 App Token 加 appid(Authorization: Bearer eyk_xxxx),路径{BASE_URL}/wx-api/api/<模块>/<动作>,响应封套{code, data, detail, message, time},code 为 0 成功。

任务拆解:AI 拆成多个步骤

客户说一句复杂的话,AI 先拆解成多个执行步骤:

def decompose_task(user_msg, context): prompt = f""" 用户请求:{user_msg} 可用工具:query_customer, query_order, send_message, update_label, create_ticket 请拆解成具体执行步骤,每步调一个工具。 """ steps = llm.plan(prompt) return steps

AI 返回步骤列表,每步指定调哪个工具、传什么参数。比如"查张三订单通知销售"拆成:

  1. query_customer("张三") 拿到客户 uin

  2. query_order(uin) 拿到订单

  3. send_message(销售 uin, 订单信息) 通知销售

步骤执行:调企微接口

每个步骤对应一次企微接口调用。步骤间有依赖——后一步要用前一步的结果:

import requests BASE = "https://api.eyun.com" HEADERS = {"Authorization": "Bearer eyk_xxxx", "Content-Type": "application/json"} def execute_steps(appid, steps, context): results = {} for step in steps: tool = step["tool"] args = fill_args(step["args"], results) # 用前一步结果填参数 if tool == "query_customer": results[step["id"]] = query_customer(appid, args["keyword"]) elif tool == "query_order": results[step["id"]] = query_order(appid, args["uin"]) elif tool == "send_message": results[step["id"]] = send_message(appid, args["to"], args["content"]) elif tool == "update_label": results[step["id"]] = update_label(appid, args["uin"], args["labels"]) return results def fill_args(arg_template, results): # 把 $step1.uin 这种引用替换成实际值 for key, val in arg_template.items(): if isinstance(val, str) and val.startswith("$"): parts = val[1:].split(".") step_id = parts[0] field = parts[1] arg_template[key] = results[step_id][field] return arg_template

fill_args处理步骤间依赖——第二步的参数引用第一步的结果。

查客户:调联系人接口

def query_customer(appid, keyword): if keyword.isdigit() and len(keyword) >= 11: resp = requests.post( f"{BASE}/wx-api/api/contact/phoneNumberSearch", headers=HEADERS, json={"appid": appid, "phone": keyword} ) else: resp = requests.post( f"{BASE}/wx-api/api/contact/search", headers=HEADERS, json={"appid": appid, "keyword": keyword} ) data = resp.json()["data"] return {"uin": data.get("uin"), "name": data.get("nickName", "")}

通知销售:调消息接口

def send_message(appid, to_uin, content): resp = requests.post( f"{BASE}/wx-api/api/message/sendText", headers=HEADERS, json={"appid": appid, "to": to_uin, "content": content} ) return resp.json()["code"] == 0

打标签:调标签接口

def update_label(appid, uin, labels): resp = requests.post( f"{BASE}/wx-api/api/label/updateLabel", headers=HEADERS, json={"appid": appid, "uin": uin, "labels": labels} ) return resp.json()["code"] == 0

结果汇总:AI 组织回复

所有步骤执行完,AI 把结果汇总成自然语言回客户:

def summarize_and_reply(appid, from_uin, user_msg, results): summary = llm.summarize(user_msg, results) requests.post( f"{BASE}/wx-api/api/message/sendText", headers=HEADERS, json={"appid": appid, "to": from_uin, "content": summary} )

AI 拿到所有步骤的结果,生成"已查到张三的订单 SO-123,金额 300 元,已通知销售王五"这种汇总回复。不汇总,客户只看到最后一步的结果,不知道前面查了什么。

完整闭环

def handle_complex_task(appid, from_uin, content): # 1. 拆解任务 steps = decompose_task(content, {}) # 2. 执行步骤 results = execute_steps(appid, steps, {}) # 3. 汇总回复 summarize_and_reply(appid, from_uin, content, results)

客户一句话进来,拆解、执行、汇总、回复,整个闭环调多个企微接口。关于消息和联系人接口,在Eyun 企业微信 API 平台有说明。

执行失败的兜底

某步失败要兜底——不能整条链崩:

def execute_steps_safe(appid, steps, context): results = {} for step in steps: try: results[step["id"]] = execute_step(appid, step, results) except Exception as e: results[step["id"]] = {"error": str(e)} if step.get("required", True): # 关键步骤失败,终止并回复 break return results

关键步骤失败终止并回复客户"查询失败",非关键步骤失败继续执行后续。不做兜底,一步失败全链崩,客户等半天没回复。

写在最后

会执行任务的智能机器人这套东西,本质是把企微多个接口用任务拆解串起来——AI 拆解任务、按步骤调 phoneNumberSearch/sendText/updateLabel 等接口、步骤间传结果、汇总回复。把任务拆解做对、步骤依赖处理好、失败兜底做实,机器人真正能执行复杂任务——而不是只会一问一答。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 13:38:27

工业缺陷检测实战:小样本训练与漏检控制全流程解析

1. 项目概述&#xff1a;为什么缺陷检测难在小样本&#xff0c;死在漏检 工业缺陷检测是计算机视觉在制造业里落地最广、也最考验工程能力的场景之一。很多人一开始以为&#xff0c;只要找个开源检测模型&#xff0c;收集一批缺陷图片&#xff0c;训练一下就完事了。但真到产线…

作者头像 李华
网站建设 2026/9/30 13:37:00

借由《world.execute(me);》展开的关于人工“自我”的随想

最近看到了很多《world.execute(me);》的AI二创视频&#xff0c;在智能体火热的当下&#xff0c;这首歌似乎有了种具象的感觉。这首歌发行于 2016 年。那个时候&#xff0c;大语言模型还没有进入大众视野&#xff0c;ChatGPT 更是尚未出现&#xff0c;AI Agent、工具调用、多模…

作者头像 李华
网站建设 2026/9/30 13:37:00

NOI Linux 2.0评测系统实战:从环境配置到Vim指北

简介&#xff1a;这份PDF资料面向备战NOI、CSP-J/S等信奥赛事的选手与教练&#xff0c;聚焦NOI2.0评测系统、NOI Linux 2.0操作系统与Vim编辑器的上手使用&#xff0c;帮助解决从环境搭建到代码提交、从命令行编辑到评测流程中的各类技术障碍。资源包内仅含1个PDF文件&#xff…

作者头像 李华
网站建设 2026/9/30 13:36:32

AI漫剧报价跌九成,一人剧组OPC如何年赚百万?

最近AI漫剧这个圈子&#xff0c;最刺激的消息不是哪条片子又爆了几百万播放&#xff0c;而是报价跌到让人怀疑人生。半年前还有人开价五千块一条的AI漫剧&#xff0c;现在五百块都有人抢着接&#xff0c;报价直接跌掉九成。然而另一边又不断有人晒出收益截图&#xff0c;号称一…

作者头像 李华
网站建设 2026/9/30 13:33:23

Word删不掉的空白页原理与三步清除法

1. 为什么Word里那个“幽灵空白页”总也删不掉&#xff1f;你有没有遇到过这种情况&#xff1a;文档明明写完了&#xff0c;最后一页却死活删不掉——光标移到末尾按Delete没反应&#xff0c;Backspace也没用&#xff0c;选中整页按Delete更不行&#xff1b;打印预览里它稳稳地…

作者头像 李华
网站建设 2026/9/30 13:32:52

Android教学管理系统开发实战:从技术选型到避坑指南

简介&#xff1a;这份资源是面向高校计算机相关专业学生与Android初学者的一份教学管理系统毕业设计文档&#xff0c;采用Java语言开发&#xff0c;整体分为后台管理系统与前台Android客户端两大部分。后台涵盖教师管理、班级管理、科目管理、课程管理及反馈查看等模块&#xf…

作者头像 李华