ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AgentScope Agent Service 怎么接入钉钉渠道?

AgentScope Agent Service 怎么接入钉钉渠道? AgentScope Agent Service 怎么接入钉钉渠道【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope要把 AgentScope 2.0 的 Agent Service 接到钉钉里让钉钉用户通过单聊或群聊 机器人 直接和 Agent 对话你需要完成三件事装好带渠道依赖的 AgentScope、在服务端把DingTalkChannel注册进create_app、再在 Web UI或调用/channels接口里创建一条钉钉渠道并填上钉钉应用的 Client ID / Client Secret。本文按这条主路径给出可执行的步骤适用环境为examples/agent_service示例所要求的前提Python ≥ 3.11、Redis 作为后端存储、Node.js ≥ 20仅 Web UI 需要。准备安装依赖并确认渠道已注册钉钉渠道依赖官方的dingtalk-streamSDK版本要求0.24.3见 pyproject.toml 中channelextra而fullextra 已经包含了它uv pip install agentscope[full]同时按 examples/agent_service/README.md 的 Quickstart 安装并启动 RedismacOS、Linux、Docker 三种方式文档都给了例如# Linux (systemd) sudo apt install redis-server sudo systemctl start redis-server # Docker (cross-platform) docker run --rm -p 6379:6379 redis:7然后检查 examples/agent_service/main.py示例默认就把三个渠道类型注册进了应用DingTalk 已在其中无需改动channels[ DingTalkChannel, DiscordChannel, FeishuChannel, ],启动服务cd examples/agent_service python main.py服务默认监听0.0.0.0:8000。钉钉渠道走官方 Stream SDK 的长连接见 src/agentscope/app/channel/_dingtalk/_channel.py 顶部说明不需要为它配置公网回调地址出站消息、媒体、卡片则全部通过钉钉 OpenAPI 发送。创建钉钉渠道主路径通过 Web UI 创建在另一个终端启动示例配套的 Web UIcd examples/web_ui/ pnpm install pnpm dev在 Web UI 里把 API endpoint 设置为http://localhost:8000进入渠道管理页创建渠道按表单依次完成表单校验规则来自 channel-form.tsx 的isChannelFormValid缺项不能提交渠道类型选DingTalk。填写渠道名称必填。凭据Client ID和Client Secret即钉钉应用的 AppKey 和 AppSecret字段定义见 src/agentscope/app/channel/_dingtalk/_channel.py 中的Credentials模型。表单字段是由GET /channels/types返回的credentials_schema动态渲染的选中钉钉类型后这两个输入框会自动出现。选择一个聊天模型chat_model_config必填模型来自服务里已配置好的凭据。路由绑定Routing示例 UI 的默认绑定是match_key: chat_id、match_value: *、session_scope: per_chat并把消息路由到你指定的agent_id。match_value可填GET /channels/{id}/chat_ids返回的具体会话 id 来限定只接某些会话*表示全部。提交后渠道以启用状态创建enabled: true。备选路径直接调用 HTTP 接口渠道的完整 API 见 src/agentscope/app/_router/_channel.pyPOST /channels/ 创建渠道 GET /channels/ 列出当前用户的渠道 PATCH /channels/{id} 更新路由/会话/配置 GET /channels/{id}/status 聚合的实时连接状态 GET /channels/{id}/chat_ids 已知会话用于路由配置 POST /channels/{id}/enable / disable创建请求体对应 CreateChannelRequest{ channel_type: dingtalk, name: my-dingtalk, credentials: { client_id: 你的钉钉应用 Client ID (AppKey), client_secret: 你的钉钉应用 Client Secret (AppSecret) }, platform_config: { only_at_reply: true }, routing: { bindings: [ { match_key: chat_id, match_value: *, agent_id: 服务中的 Agent ID, session_scope: per_chat } ] }, session: { chat_model_config: 填服务中已配置的模型, permission_mode: default }, enabled: true }其中尖括号内容是读者必须替换的值agent_id用你服务里已创建的 Agentsession.chat_model_config的具体结构以GET /channels/{id}返回的记录中的session字段为准创建渠道时响应里会原样带回。凭据也可以走POST /channels/bindings的绑定流程再创建凭据不必经过浏览器表单。钉钉平台侧配置项platform_config以下选项来自 DingTalkChannel.Config在 Web UI 的渠道表单里按 schema 动态渲染也可通过PATCH /channels/{id}的platform_config更新配置项默认值作用only_at_replytrue群聊中仅在机器人被 时才回复show_tool_processfalse在回复中内联展示工具调用和结果show_thinkingfalse在回复中内联展示模型推理过程max_media_bytes10 * 1024 * 1024单个收发附件的大小上限streaming_card_template_id官方公开的 AI 卡片模板流式回复用的 AI 卡片模板清空后改为普通 Markdown 消息回复approval_card_template_id公开审批卡片模板工具审批卡片模板清空后需要审批的工具调用会卡住渠道会发一条提示文案说明验证接入结果连接状态调用GET /channels/{id}/statusWeb UI 的渠道详情页也展示。渠道源码里的状态机是先connectingStream 客户端建立 websocket 后变为connected断开后如果曾连上过则进入retryingSDK 自带重连发生异常时为failed并带last_error字段日志里会记录DingTalk channel_id Stream client failed。看到connected说明 Stream 长连接已建立。收到消息在钉钉里私聊机器人或在群里 机器人 发一条消息。only_at_reply保持默认true时群里未被 的消息会被直接忽略这是预期行为而非故障。回复形式默认配置下回复以流式 AI 卡片呈现如果卡片创建或更新失败渠道会回退成一条或多条 Markdown 消息超过 4000 字会拆分max_message_length为 4000。会话列表GET /channels/{id}/chat_ids返回已知会话。注意钉钉的限制平台侧没有暴露应用机器人的会话枚举 API所以该列表只包含本进程实际收到过消息回调的会话源码中list_bot_chats的 docstring 明确说明。想扩大路由范围前先让目标会话里发过一条消息。边界与限制出站文件类型除图片外钉钉侧只接受doc、docx、pdf、rar、xlsx、zip后缀的文件见 src/agentscope/app/channel/_dingtalk/_openapi.py 的_SUPPORTED_FILE_TYPES其他后缀会被渠道拒绝并记 warning。工具审批如果 Agent 启用了需要人工确认的工具调用钉钉侧会以审批卡片呈现approval_card_template_id被清空时无法投递卡片聊天中会出现「无法展示工具审批卡片」的提示文案运行会停在等待审批状态。凭据不可事后修改PATCH /channels/{id}不支持改渠道类型和凭据UpdateChannelRequest 注释标明 type/credentials immutable填错 AppKey/AppSecret 只能删除渠道重建。服务重启后之前记录的已知会话仍在走 Redis 存储但chat_ids中「被动观察到」的部分要等新回调进来才会出现。接入完成后的自然延伸通过 Web UI 的渠道详情页调整路由绑定和platform_config或参考 README 中 What Next 一节继续定制main.pyMCP、中间件、workspace manager。【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表