在 Hive Multi-Agent 中集成 Zendesk:基于 MCP 的工单管理与搜索实战指南
人工智能AI Agent多智能体MCP 服务工具调用浏览器控制【免费下载链接】hiveMulti-Agent Harness for Production AI项目地址https://gitcode.com/gh_mirrors/hive48/hive点击查看免费下载Zendesk Tool 是 Hive 仓库中 Aden Tools 套件的一员它通过 FastMCP 协议将 Zendesk Support API 封装为 8 个可被 AI Agent 直接调用的工具覆盖工单的列出、查看、创建、更新、搜索、评论管理以及用户列表查询。本文以 tools/src/aden_tools/tools/zendesk_tool/README.md 为骨架结合 zendesk_tool.py 的源码实现与测试用例讲解从凭据配置到真实调用的完整链路读完即可在自有 Agent 工作流中接入 Zendesk 工单自动化。工具总览8 个 MCP 工具覆盖工单全生命周期Zendesk Tool 的核心定位是Ticket management, comments, user listing, and search via the Zendesk Support API即围绕 Zendesk 工单系统提供增、查、改、搜的完整能力。所有工具都以zendesk_前缀命名通过 MCP 暴露给 Agent与 Aden Tools 中其他 SaaS 集成Slack、Salesforce、HubSpot 等保持一致的接入范式。ToolDescriptionzendesk_list_ticketsList tickets in the accountzendesk_get_ticketGet full details of a specific ticketzendesk_create_ticketCreate a new support ticketzendesk_update_ticketUpdate ticket status, priority, or tagszendesk_search_ticketsSearch tickets using Zendesk query syntaxzendesk_get_ticket_commentsList all comments on a ticketzendesk_add_ticket_commentAdd a public reply or internal note to a ticketzendesk_list_usersList users filtered by role从源码结构看这 8 个工具全部定义在 zendesk_tool.py 的register_tools(mcp: FastMCP, credentials)函数内以mcp.tool()装饰器注册到 FastMCP 服务器。该模块通过 tools/init.py 中的register_zendesk(mcp, credentialscredentials)挂载进 Aden Tools 的验证工具集合属于默认注册的 verified 工具无需include_unverifiedTrue即可启用。环境配置三个凭据变量与 CredentialSpec 声明Zendesk 工具使用 HTTP Basic 认证邮箱 API Token需要三个环境变量ZENDESK_SUBDOMAINyour-subdomain ZENDESK_EMAILagentyourcompany.com ZENDESK_API_TOKENyour-api-tokenZENDESK_SUBDOMAINis the part before.zendesk.com. Forhttps://acme.zendesk.com, useacme.在 Zendesk 管理后台创建 API TokenLog in to your Zendesk admin panelGo toAdmin → Apps and integrations → APIs → Zendesk APIEnableToken Accessand create a new API token源码中的凭据获取逻辑_get_credentials()zendesk_tool.py展示了两种凭据来源的优先级若register_tools被传入CredentialStoreAdapterHive 框架的凭据存储适配器则通过credentials.get(zendesk_subdomain)、credentials.get(zendesk_email)、credentials.get(zendesk_token)读取否则回退到os.getenv()直接读取上述三个环境变量。对应的凭据声明位于 credentials/zendesk.py三个凭据均被标记为requiredTrue、startup_requiredFalse即运行时按需校验而非启动时强制并且都挂载到全部 8 个工具上。这意味着 Agent 只有在真正调用 Zendesk 工具时才会触发凭据校验。认证头的构造细节源码用邮箱与 Token 组合构造 Basic Authdef _auth_header(email: str, token: str) - str: encoded base64.b64encode(f{email}/token:{token}.encode()).decode() return fBasic {encoded}注意这里的特殊格式email/token:api_token是 Zendesk API 约定的 Basic 认证用户名格式Token 作为密码的一部分与邮箱拼接后整体 Base64 编码这是 Zendesk CloudBasic auth with email/token API token的标准认证方式。请求统一走https://{subdomain}.zendesk.com/api/v2端点见_base_url()并设置 30 秒超时。工具使用示例从查询到工单流转以下示例均来自 README 原始用法可直接在 Agent 会话或 MCP 客户端中调用。List open tickets列出工单zendesk_list_tickets(page_size25)源码中page_size取值范围被钳制在 1–100max(1, min(page_size, 100))默认 25。返回结构为{tickets: [...], count: n}每个工单经_extract_ticket()裁剪为 id、subject、description截断 500 字符、status、priority、type、tags、requester_id、assignee_id、created_at、updated_at。Get a specific ticket查看工单详情zendesk_get_ticket(ticket_id12345)ticket_id为必填缺省时返回{error: ticket_id is required}。成功时返回与 list 相同的精简字段结构_extract_ticket。Create a new ticket创建工单zendesk_create_ticket( subjectLogin button not working, bodyUsers are reporting that the login button on mobile is unresponsive., priorityhigh, ticket_typeincident, tagsmobile,login,bug, )参数说明对应 源码subject、body必填缺一即返回错误priority默认normal合法取值urgent / high / normal / lowticket_type可选合法取值question / incident / problem / tasktags为逗号分隔字符串源码会split(,)后去空白生成标签数组创建成功后额外返回urlhttps://{subdomain}.zendesk.com/agent/tickets/{id}与result: created便于 Agent 直接向用户给出工单链接。Update a ticket status更新工单状态zendesk_update_ticket( ticket_id12345, statuspending, priorityurgent, )zendesk_update_ticket支持同时更新status、priority、comment附comment_public布尔值控制是否对请求者可见默认True以及替换tags。只要传入任一字段即发起PUT请求若全部为空则返回{error: At least one field to update is required}而非空请求。Add a public reply to a ticket公开回复zendesk_add_ticket_comment( ticket_id12345, bodyWe have identified the issue and a fix is being deployed., publicTrue, )Add an internal note内部备注zendesk_add_ticket_comment( ticket_id12345, bodyEscalated to the backend team via Slack #incidents., publicFalse, )zendesk_add_ticket_comment与zendesk_update_ticket的关键区别在于前者专用于追加评论publicFalse即生成内部备注仅客服侧可见对请求者不可见适合 Agent 记录内部处理过程实现上两者最终都通过PUT /tickets/{id}携带{ticket: {comment: {...}}}完成。Search tickets按 Zendesk 查询语法搜索zendesk_search_tickets( querystatus:open priority:urgent, sort_byupdated_at, sort_orderdesc, )zendesk_search_tickets走 Zendesk/api/v2/search端点支持sort_byupdated_at / created_at / priority / status默认updated_at与sort_orderasc / desc默认desc。源码还有一个贴心细节若查询串中未包含type:字段会自动补全为type:ticket前缀避免搜索结果混入用户、组织等其他对象。Search by assignee and tag按处理人与标签搜索zendesk_search_tickets(queryassignee:agentcompany.com tags:billing)List all agents按角色列出用户zendesk_list_users(roleagent, page_size50)zendesk_list_users的role可选end-user / agent / admin空则列出全部page_size同样钳制在 1–100。返回字段为 id、name、email、role、active、created_at。Ticket Status Values工单状态取值Zendesk 工单状态是zendesk_update_ticket的核心枚举语义如下StatusMeaningnewNewly created, unassignedopenAssigned and being worked onpendingWaiting for requester responseholdWaiting on a third partysolvedResolved by agentclosedPermanently closed推荐的状态流转Agent 收到新工单 → 检索历史zendesk_search_tickets→ 阅读评论zendesk_get_ticket_comments→ 需要客户补充信息时置pending并附公开评论 → 等待第三方时置hold→ 解决后置solved最终人工归档为closed。Error Handling错误处理所有工具在失败时都返回统一的错误字典结构而不是抛出异常方便 Agent 直接读取并作出下一步决策。README 给出的典型错误响应[ {error: ZENDESK_SUBDOMAIN, ZENDESK_EMAIL, and ZENDESK_API_TOKEN not set, help: Create an API token in Zendesk Admin Apps and integrations APIs Zendesk API}, {error: Unauthorized. Check your Zendesk credentials.}, {error: Forbidden. Check your Zendesk permissions.}, {error: Rate limited. Try again shortly.}, ]源码层的错误映射规则_request()zendesk_tool.py对 HTTP 状态码与异常做了完整映射401→Unauthorized. Check your Zendesk credentials.凭据错误403→Forbidden. Check your Zendesk permissions.Token 有效但权限不足404→Not found.429→Rate limited. Try again shortly.触发 Zendesk 速率限制可配合重试策略其他非 200/201→Zendesk API error {code}: {resp.text[:500]}截取前 500 字符响应体便于排查httpx.TimeoutException→Request to Zendesk timed out30 秒超时其他异常→Zendesk request failed: {e}。三个凭据任一缺失时工具统一返回_auth_error()字典含error与help两个键help 字段直接指引用户到管理后台创建 API Token。源码级验证测试用例如何保障工具行为仓库在 tools/tests/tools/test_zendesk_tool.py 中为 Zendesk 工具提供了完整的单元测试覆盖了 README 描述的每类场景缺凭据分支test_missing_credentials清空环境变量后断言返回error键成功路径test_successful_list/test_successful_get通过 mockhttpx.get验证返回结构与字段裁剪如 subject、priority参数校验test_missing_id、test_missing_params、test_missing_query分别验证ticket_id、subject/body、query缺失时的错误字典写操作test_successful_createmock 201 响应断言result created、test_successful_updatemockhttpx.put断言 status 更新生效搜索test_successful_search验证查询语法与count字段。这些测试与源码共同印证工具的契约是**要么返回结构化数据要么返回带 error 键的字典**Agent 端只需统一判断error in result即可安全处理所有失败路径。测试环境变量ZENDESK_SUBDOMAINtest等也说明该工具面向 Zendesk Cloud 而非本地/私有化部署。接入 Agent 工作流的建议从 Aden Tools 的注册机制tools/init.py可以看到Zendesk 工具与其余 60 个 SaaS 集成共享同一套register_all_tools入口。实际接入时注意三点凭据注入优先通过 Hive 框架的CredentialStoreAdapter传入调用链register_all_tools(mcp, credentials...)Agent 子进程无需自行管理环境变量独立运行mcp_server.py时则回退到进程环境变量。状态语义pending表示等待请求者响应Agent 应在置pending时同时追加公开评论说明所需信息内部流转信息一律用publicFalse内部备注避免向客户暴露内部处理细节。搜索语法zendesk_search_tickets的 query 遵循 Zendesk 原生语法如assignee:email、tags:xxx、status:open工具会自动补充type:ticket前缀但复杂组合如按组、按时间区间需要 Agent 按 Zendesk 官方字段语法构造。赞分享人工智能AI Agent多智能体MCP 服务工具调用浏览器控制【免费下载链接】hiveMulti-Agent Harness for Production AI项目地址https://gitcode.com/gh_mirrors/hive48/hive点击查看免费下载相关推荐在 CAI 中集成 MCP Git Server基于 MCPServerStdio 的仓库分析 Agent 实战指南在 CAI 中集成 MCP Git Server基于 MCPServerStdio 的仓库分析 Agent 实战指南 本篇技术指南以 examples/mcp人工智能AI Agent网络安全渗透测试工具调用AI 评测在 mcp-agent 中集成 CrewAI 工具SerperDevTool 与 FileWriterTool 实战指南在 mcp agent 中集成 CrewAI 工具SerperDevTool 与 FileWriterTool 实战指南 本文以 mcp agent 仓库中的人工智能AI AgentAgent 框架MCP ClientsAgent 工作流Flue 实战基于 Zendesk Webhook 构建工单驱动的 Agent 频道Zendesk channel example 深度解析Flue 实战基于 Zendesk Webhook 构建工单驱动的 Agent 频道Zendesk channel example 深度解析 导读 本文围人工智能大模型AI AgentAgent 框架工具调用Agent 沙箱MCP Clients上一篇Paperless-ngx Docker 部署怎么安装第三方解析器插件并验证加载成功下一篇ffsend快捷键设置提升命令行操作效率创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI时代职业规划指南:从焦虑到行动,构建你的不可替代性

AI时代职业规划指南:从焦虑到行动,构建你的不可替代性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:00:18 阅读更多 →
使用 Vagrant 在 Linux 虚拟机中运行 ramsey/uuid 测试套件

使用 Vagrant 在 Linux 虚拟机中运行 ramsey/uuid 测试套件

使用 Vagrant 在 Linux 虚拟机中运行 ramsey/uuid 测试套件 【免费下载链接】uuid :snowflake: A PHP library for generating universally unique identifiers (UUIDs). 项目地址: https://gitcode.com/gh_mirrors/uui/uuid ramsey/uuid 是一套 PHP 的通用唯一标识符&a…

2026/9/24 15:00:17 阅读更多 →
差分探头匹配电容:原理、选型与调节实战指南

差分探头匹配电容:原理、选型与调节实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:00:17 阅读更多 →

最新新闻

Pixy学习控制台:HUB75点阵屏驱动与ESP32-S3实战

Pixy学习控制台:HUB75点阵屏驱动与ESP32-S3实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:32:48 阅读更多 →
Semi Design 图标(Icon)组件完全指南:图标集体系、尺寸旋转、双色多色着色与自定义方案

Semi Design 图标(Icon)组件完全指南:图标集体系、尺寸旋转、双色多色着色与自定义方案

前端UI组件设计系统 【免费下载链接】semi-design 🚀A modern, comprehensive, flexible design system and React UI library, AI-friendly built-in.🎨Provide 3000 Design Tokens, easy to build your design system. Make Semi Design to Any Design…

2026/9/24 15:32:48 阅读更多 →
React Native UI Kitten 主题变量实战:用 withStyles、useTheme 与 useStyleSheet 构建主题化组件

React Native UI Kitten 主题变量实战:用 withStyles、useTheme 与 useStyleSheet 构建主题化组件

UI组件移动开发 【免费下载链接】react-native-ui-kitten :boom: React Native UI Library based on Eva Design System :new_moon_with_face::sparkles:Dark Mode 项目地址: https://gitcode.com/gh_mirrors/re/react-native-ui-kitten 点击查看 免费下载 UI Kitt…

2026/9/24 15:32:48 阅读更多 →
nom 8.0 演进全解析:从 CHANGELOG 看 Rust 解析器组合框架的十年架构变迁

nom 8.0 演进全解析:从 CHANGELOG 看 Rust 解析器组合框架的十年架构变迁

开发工具 【免费下载链接】nom Rust parser combinator framework 项目地址: https://gitcode.com/gh_mirrors/no/nom 点击查看 免费下载 nom 是 Rust 生态中最具代表性的解析器组合框架(parser combinator framework)之一,本仓库…

2026/9/24 15:32:48 阅读更多 →
作为程序员的我,用工程思维解决了摄影学习的最大痛点

作为程序员的我,用工程思维解决了摄影学习的最大痛点

问题定义:摄影学习的"黑盒困境" 作为一个写了十年代码的程序员,我最受不了的就是没有反馈的学习过程。写代码有编译错误提示,有单元测试,有性能分析工具,每一步都能看到明确的反馈。但学摄影完全不一样&…

2026/9/24 15:32:48 阅读更多 →
pcapng 导入 Wireshark 全是密文怎么办?Traceeagle与 Wireshark 联动的三种方式

pcapng 导入 Wireshark 全是密文怎么办?Traceeagle与 Wireshark 联动的三种方式

把抓到的流量导出成 pcapng 发给同事,他 Wireshark 一打开:全是密文。这个场面,抓过包的人多少都遇到过——文件没问题、Wireshark 也没问题,缺的是解密密钥:导出的文件里没带上它,Wireshark 拿着一堆密文包…

2026/9/24 15:31:48 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →