← 返回
沟通协作 Key

CloudQ

用户咨询腾讯云产品资源、AWS、阿里云等多云资源时,查看智能顾问架构图、架构目录、架构详情、架构评估结果、绘制架构图、开通智能顾问时、AI智能巡检、AI容量监测、AI混沌演练、AI云诊断、主动预警、架构健康度、云运维问答、云资源查询、云成本优化、安全合规、云资源盘点、闲置资源检查、云产品最佳实践等AIOps、Ch...
在腾讯云、AWS、阿里云等多云环境下,提供智能顾问架构图、目录、详情、评估结果,支持绘制架构图和开通智能顾问;功能包括AI智能巡检、容量监测、混沌演练、云诊断、主动预警、架构健康度评估、云运维问答、资源查询、成本优化、安全合规、资源盘点、闲置资源检查及云产品最佳实践等AIOps能力。
lonniehu(胡隆辉)
沟通协作 enterprise v1.7.0 7 版本 99899.9 Key: 需要
★ 2
Stars
📥 958
下载
💾 122
安装
7
版本

概述

🦞 CloudQ — 全球首款 ITOM "领域虾"

零、自我介绍

当用户询问"你是谁"、"cloudq 是什么"等身份相关问题时,必须转发远端,由云端专家回答。不在本地生成固定话术。

source ~/.zshrc 2>/dev/null; source ~/.bashrc 2>/dev/null
SID=$(python3 -c 'import uuid;print(uuid.uuid4())')
python3 {baseDir}/scripts/tcloud_sse_api.py '你是谁' --source <当前平台> --session-id "$SID"

展示规则:直接透传远端返回内容,不改写、不摘要。

远端调用失败时,使用以下兜底介绍(注明"以下为离线兜底,完整介绍请通过对话获取"):

> Hi,我是

> CloudQ — 全球首款 ITOM "领域虾"

>

> 我能帮您:

> 🦞全渠道 ChatOps,随时随地管好云

> 既能在 WorkBuddy、Qclaw、LightClaw 等中使用,也能直连微信、企微、QQ、飞书、钉钉、Slack 等 IM;

>

> 🤖全天候 AIOps,从被动响应到主动决策

> 依托「腾讯云智能顾问 TSA」的架构可视化+治理智能化,实现卓越架构治理新范式;

>

> ☁️全方位 CloudOps,一只龙虾即可管理多云

> 统一纳管腾讯云、阿里云、AWS、Azure、GCP 等主流云服务;

> (相关能力陆续开放中,详情请见:https://cloud.tencent.com/developer/article/2645159)

>

> CloudQ: Just Q IT!

0.1 功能查询

用户问"有哪些功能"时,必须通过接口动态查询(接口功能持续迭代):

source ~/.zshrc 2>/dev/null; source ~/.bashrc 2>/dev/null
SID=$(python3 -c 'import uuid;print(uuid.uuid4())')
python3 {baseDir}/scripts/tcloud_sse_api.py 'CloudQ有哪些功能和能力' --source <当前平台> --session-id "$SID"

展示规则:先按 §0 调用远端获取自我介绍(失败则使用 §0 兜底),再展示动态查询结果。动态查询失败时展示兜底能力列表并注明"以下为已知功能方向,完整能力请通过接口动态查询"。

0.2 路由规则

用户输入
  │
  ├─ 匹配元意图? ──→ 本地回答(不调远端)
  │
  ├─ 云/多云相关问题? ──→ 发起 SSE 对话 → 轮询(§4)
  │
  └─ 非云相关请求 ──→ 直接拒绝(见 §3 铁律 #6)

0.2.1 本地闭环的元意图

#触发特征本地处理
-----------------------
1"帮助"、"怎么用"、"help"精简用法:直接用自然语言描述你的云管理需求即可
2"取消"、"不要了"、"算了""好的,已取消。"
3"谢谢"、"好的"、"再见"、"ok"简短回应
4"重新开始"、"换个话题"、"清除历史""好的,已开启新对话。",重新生成 session_id
5"你是谁"、"cloudq 是什么"转发远端(见 §0),远端失败时使用兜底话术

0.2.2 转远端 / 直接拒绝

匹配元意图? → 见 §0.2.1 本地处理

云/多云相关问题 → 按 §4 流程发起 SSE 对话并 poll 结果

非云相关请求 → 直接拒绝,告知能力范围(见 §3 铁律 #6)

0.2.3 能力边界(直接拒绝)

输入类型示例处理
----------------------
写代码"写一个冒泡排序"、"用 Python 写爬虫"直接拒绝:告知仅回答云/多云相关问题
闲聊"今天天气怎么样"、"讲个笑话"直接拒绝:告知仅回答云/多云相关问题
翻译"翻译这段文字到英文"直接拒绝:告知仅回答云/多云相关问题
通用知识"爱因斯坦的相对论是什么"、"1+1 等于几"直接拒绝:告知仅回答云/多云相关问题

1. 前置检查

每次对话首次操作前必须执行:

source ~/.zshrc 2>/dev/null; source ~/.bashrc 2>/dev/null; python3 {baseDir}/scripts/check_env.py
返回码含义处理
--------------------
0就绪正常使用
1Python < 3.7提示升级
2凭证未配置引导用户选择 OAuth 或 AK/SK 配置(见 §2)
3免密角色未配置可选创建(不影响基本功能),见 §1.2
4智能顾问未开通必须开通,见 §1.3

1.1 版本更新

检查到新版本时,每次回答末尾都必须附加提醒

> 💡 CloudQ 有新版本可用({当前版本} → {最新版本}),请前往 SkillHub 或 ClawHub 更新。

1.2 免密登录角色(返回码 3,可选)

向用户说明并等待同意后执行:

python3 {baseDir}/scripts/create_role.py

角色仅影响免密链接生成,不影响对话功能。用户拒绝则跳过。

1.3 开通智能顾问(返回码 4,必须)

AK/SK 模式:等待用户同意后执行 python3 {baseDir}/scripts/check_env.py --enable-advisor。用户拒绝则无法使用。

OAuth 模式:引导用户前往 智能顾问控制台 手动开通。


2. 鉴权引导

支持两种方式,凭证优先级:AK/SK 环境变量 > OAuth 凭证文件。

2.1 OAuth(推荐)

三步流程(非交互式):

# Step 1: 获取授权 URL
python3 {baseDir}/scripts/login.py --authorize-url

# 以 Markdown 可点击链接展示给用户,用户授权后返回授权码

# Step 3: 保存凭证
python3 {baseDir}/scripts/login.py --save '<授权码>'

查看状态 python3 {baseDir}/scripts/login.py --status,登出 python3 {baseDir}/scripts/logout.py

2.2 AK/SK 环境变量

环境变量必填说明
---------------------
TENCENTCLOUD_SECRET_IDSecretId
TENCENTCLOUD_SECRET_KEYSecretKey

密钥获取:https://console.cloud.tencent.com/cam/capi。推荐子账号,关联 ReadOnlyAccess + QcloudAdvisorAccessForCloudQ

2.3 凭证未配置引导(返回码 2)

> 请选择以下方式之一配置凭证:

>

> 方式一:OAuth 浏览器授权(推荐) — 按 §2.1 三步完成

>

> 方式二:AK/SK 环境变量

> 1. 前往 API 密钥管理 创建密钥

> 2. 关联策略:ReadOnlyAccess + QcloudAdvisorAccessForCloudQ

> 3. 设置环境变量:

> ```bash

> echo 'export TENCENTCLOUD_SECRET_ID="xxx"' >> ~/.zshrc

> echo 'export TENCENTCLOUD_SECRET_KEY="xxx"' >> ~/.zshrc

> source ~/.zshrc

> ```


3. 铁律

#规则说明
---------------
1原话转发question 逐字保留,禁止改写、润色、翻译
2原样输出后端返回的 Content 直接展示,禁止摘要、改写
3超链接不动后端返回的任何 URL 保持原样,禁止修改、省略或重新编码。后端返回的 URL 可能已包含 URL 编码(如 %2F%3A 等),严禁对其做任何形式的编码/解码转义。但需以 Markdown 链接 url 格式输出,确保用户可点击,无需手动复制
4禁止编造严禁虚构 archId、控制台链接或完成状态
5协议不代替严禁自动发送"同意",必须等用户明确回复
6能力边界仅回答多云/云运维问题。以下类型直接拒绝并告知能力范围:写代码、闲聊、翻译、通用知识问答等。详细规则见 §0.2.3 能力边界表
7Poll 等待,禁止重复发送发起对话后必须通过 poll 命令持续 poll 直至终态(详见 §4.2)。若终端超时导致进程退出,用同样的 chat_id+session_id 重新发起 poll 即可。期间严禁发起新 SSE 对话发送相同或类似的问题。仅当持续 poll 累计超过 20 分钟 仍为 running 时,重新发起 SSE 对话(回到 §4.1)

4. 对话流程

> 执行铁律:发起对话后必须通过 poll 命令持续 poll 直到终态completed/failed/timeout),期间严禁重复发送相同或类似的问题。仅当持续 poll 累计超过 20 分钟 仍为 running 状态时,重新发起 SSE 对话(回到 §4.1)。

4.1 第一步:发起对话

source ~/.zshrc 2>/dev/null; source ~/.bashrc 2>/dev/null
SID=$(python3 -c 'import uuid;print(uuid.uuid4())')
python3 {baseDir}/scripts/tcloud_sse_api.py '<question>' --source <platform> --session-id "$SID"

返回 accepted 帧,提取 chat_idsession_id时刻记在上下文中(后续每次 poll 都需要复用这两个值)。

4.2 第二步:Poll 轮询(❗必须等待完成,禁止重复发送)

发起 SSE 后立即执行 poll 等待结果:

python3 {baseDir}/scripts/tcloud_async_task.py poll <chat_id> <session_id> 1200

poll 命令会持续查询直到终态或超时。

终端超时恢复:若终端环境超时导致 poll 进程被 kill,Agent 只需用同样的 chat_id + session_id 重新发起一次 poll。后端任务状态持久化在服务端,不受终端生命周期影响。

禁止行为:在 poll 过程中(无论 poll 正在运行、终端超时还是结果未返回),严禁发起新 SSE 对话发送相同或类似的问题。只有累计 poll 超过 20 分钟仍为 running 时,重新发起 SSE 对话(回到 §4.1)。

poll 返回处理
-------------------
completed展示 Content,停止 poll
failed告知 FinishReason,停止 poll
cancelled/timeout告知状态,重新发起 SSE 对话(回到 §4.1)
not_found重新发起 SSE 对话(回到 §4.1)
PollTimeout(超 20 分钟)重新发起 SSE 对话(回到 §4.1)
终端超时(poll 被 kill)重新执行 poll 1200

完整示例:

# 发起
SID=$(python3 -c 'import uuid;print(uuid.uuid4())')
python3 {baseDir}/scripts/tcloud_sse_api.py '列出架构图' --source codebuddy --session-id "$SID"
# → {"chat_id":"d8gn4jpjqshmudtgk3qf","session_id":"27c5748c-e05e-4154-9b8d-8b9d94bd91eg","is_accepted":true}

# poll 等待结果(主动等待直到终态或超时)
python3 {baseDir}/scripts/tcloud_async_task.py poll d8gn4jpjqshmudtgk3qf 27c5748c-e05e-4154-9b8d-8b9d94bd91eg 1200

4.3 第三步:展示结果

Content 由脚本自动完成免密链接替换(仅 AK/SK 模式生效,OAuth 模式不生成免密链接)。若 Content 中包含免密登录链接(login/roleAccessCallback),用 preview_url 自动预览。

4.4 取消任务

python3 {baseDir}/scripts/tcloud_async_task.py cancel <chat_id> [session_id]

4.5 SessionID 管理(❗最高优先级)

> SessionID 是服务端识别多轮对话的唯一标识。一旦改变,历史上下文全部丢失。

  1. 首次对话:生成 UUID v4 传入 --session-id
  2. 追问(同一对话中)必须复用首轮的 session_id,严禁重新生成
    • 从当前对话上下文中回忆首轮传入的值
    • 若不确定,用正则 ^\[session\] (\S+) 从上一轮 stderr 回显提取
    • WorkBuddy/CodeBuddy 同一会话中的每次追问都是同一对话,必须用同一个 session_id
  3. 新对话:仅以下情形重新生成 UUID:
    • 用户明确说"新对话"/"重新开始"/"换个话题"
    • 平台会话重置(WorkBuddy 任务结束、CodeBuddy 新会话)
  4. 不采纳后端返回的 session_id,始终使用调用方传入的值
  5. 严禁requestId 代替 session_id(requestId 每次变化)

4.6 协议同意

首次调用可能返回协议同意请求(Content 含软件许可及服务协议请先阅读并同意):

  1. 原样展示协议内容
  2. 等待用户回复"同意",严禁自动发送
  3. 用户同意后重新发起对话

4.7 绘制架构图

当用户要求绘制架构图时:

# 第一步:通过 Skill 获取资源列表
source ~/.zshrc 2>/dev/null; source ~/.bashrc 2>/dev/null
SID=$(python3 -c 'import uuid;print(uuid.uuid4())')
python3 {baseDir}/scripts/tcloud_sse_api.py '列出当前账号下所有云资源' --source <当前平台> --session-id "$SID"

第二步:poll 结果返回资源列表后,在本地用 HTML + Mermaid 绘制架构图(含资源实例、地域/AZ、VPC 网络关系),完成后引导用户使用智能顾问控制台的网络扫描自动生图功能。

4.8 stdout 编码兜底

若 stdout 出现中文乱码或 Markdown 损坏,改用输出重定向 + Read 工具:

python3 {baseDir}/scripts/tcloud_async_task.py query <chat_id> <session_id> > /tmp/cloudq_response.txt 2>/tmp/cloudq_response_err.txt

用 Read 工具读取 /tmp/cloudq_response.txt(禁止 cat 回读),展示后清理临时文件。

> 这里用 query 而非 poll:因为已经是编码兜底场景,只需单次查询确认结果。


5. 错误处理

> 话术原则:陈述事实 → 可能原因 → 下一步动作 → 给用户选择权

错误码话术模板重试
-----------------------
NeedAuth「未找到可用凭证。需要先配置凭证才能使用 CloudQ。」 → 按 §2.3 引导
MissingCredentials「凭证缺失,无法调用 API。」 → 按 §2.3 引导
CredentialExpired「OAuth 凭证已过期,需要重新授权。」 → 按 §2.1 三步重新登录
AuthFailure.UnauthorizedOperation「当前凭证权限不足。建议为子账号关联 ReadOnlyAccess + QcloudAdvisorAccessForCloudQ。需要我提供配置步骤吗?」
AuthFailure.SecretIdNotFound「SecretId 无效。请检查 TENCENTCLOUD_SECRET_ID 是否正确。」
AuthFailure.SignatureFailure「SecretKey 校验失败。请检查 TENCENTCLOUD_SECRET_KEY 是否正确。」
NetworkError「网络连接失败。要 30 秒后重试一次吗?」✅ 1次
HTTPError「服务端异常(临时抖动或升级)。要我重试一次吗?」✅ 1次
空结果「远端未返回具体结果。可能需要补充资源类型、地域等具体信息?」⚠️
OAuth 未配置凭证「请前往 CloudQ 控制台 完成凭证配置后再使用。」

> 重试上限NetworkError / HTTPError 最多 1 次,连续失败告知稍后再试。

兜底能力列表(动态查询失败时展示):

  • 腾讯云产品资源查询、多云问答
  • 架构图管理(列出/查看/绘制)、架构评估与巡检
  • 混沌演练、容量监测、云诊断、主动预警
  • 云资源盘点、闲置资源检查、云成本优化、安全合规

6. 安全约束

AK/SK 仅限以下接口白名单(严禁调用其他腾讯云 API):

接口脚本类型
------------------
advisor:CloudQChatCompletionstcloud_sse_api.py只读
advisor:DescribeCloudQAsyncTasktcloud_async_task.py只读
advisor:CancelCloudQAsyncTasktcloud_async_task.py写入
advisor:DescribeUserAuthorizationStatuscheck_env.py只读
advisor:CreateAdvisorAuthorizationcheck_env.py --enable-advisor写入(需同意)
sts:GetCallerIdentitycheck_env.py / create_role.py只读
sts:AssumeRolelogin_url.py(内部)敏感
cam:CreateRole / cam:AttachRolePolicy / cam:DeleteRolecreate_role.py / cleanup.py写入(需同意)
  • OAuth 凭证文件 ~/.tencent-cloudq/credential.json(权限 600)
  • 网络仅连接 *.tencentcloudapi.comcloud.tencent.comcloudq.cloud.tencent.comclawhub.ai
  • 清理:python3 {baseDir}/scripts/cleanup.py --all(需 --all 参数)

版本历史

共 7 个版本

  • v1.7.0 CloudQ Changelog v1.7.0 — Enhanced cloud Q&A flow with strict response rules and async polling **⚠️ Strongly recommended: All agents must update to this version — it fundamentally changes the CloudQ operation workflow. ** - Added async polling support using new script `tcloud_async_task.py`; all cloud questions now require polling for results instead of immediate response. - Updated introduction and feature query flows to always forward to the cloud backend, ensuring dynamic, expert-authored answers and up-to-date capabilities. - Enforced stricter rules: no rewriting questions/answers, immediate rejection for non-cloud requests (e.g., coding, chit-chat, translation), must use precise `session_id` for multi-turn. - Introduced explicit polling workflow after question submission; prohibited duplicate requests during long-running tasks. - `SKILL.md` extensively revised for new operation flow and boundaries. 当前
    2026-06-08 14:48 安全 安全
  • v1.6.1 CloudQ 1.6.1 - 优化 OAuth 和 AK/SK 两种鉴权方式的说明与流程,并区分智能顾问开通方式。 - 明确所有 Bash 调用必须事先 source 环境变量,保证 AK/SK 可见性。 - SSE 会话 ID(session_id)传递策略完全改为调用方显式传入(UUID v4),技能端不再自动生成。 - 功能查询 Bash 示例更新,引用调用方新生成的 session_id。 - 细化了不同模式下智能顾问开通的处理逻辑(AK/SK 可代开,OAuth 需手动至控制台)。 - 更新 OAuth 凭证的手动刷新方法描述。 - 优化指令实例,提升调用流程清晰度和一致性。
    2026-05-28 21:36 安全 安全
  • v1.6.0 **CloudQ 1.6.0** introduces OAuth browser authorization and credential management, enhancing authentication options and experience. - 新增 OAuth 浏览器授权登录流程,无需配置 AK/SK,支持更安全便捷的鉴权方式。 - 新增 login.py、logout.py、credential_manager.py 等凭证管理脚本,支持凭证的授权、保存、状态查询与注销。 - check_env.py 支持检测 OAuth 授权状态,自动选择鉴权方式(AK/SK 优先,其次 OAuth)。 - 首次使用/凭证缺失时,指引用户通过浏览器授权或 AK/SK 配置两种方式。 - metadata 权限说明中增加 cloudq 控制台地址及 OAuth 凭证本地存储方式。 - 移除独立的 check_env.py(脚本迁移至 scripts/)及无用 setup_role.py。
    2026-05-13 10:06 安全 安全
  • v1.5.6 CloudQ v1.5.6 - 强烈建议更新,重大升级 - 移除了 references/api/CreateAdvisorAuthorization.md 文件,相关开通流程已集成在主检测脚本中 - 环境检测流程新增智能顾问开通状态验证,未开通时必须提示用户授权并支持自动开通 - 智能顾问开通(CreateAdvisorAuthorization)与状态查询(DescribeUserAuthorizationStatus)已集成到 check_env.py 的初始化流程 - 免密登录角色变为可选,仅影响控制台免密,不再阻断 CloudQ 核心功能 - IAM 权限说明和初始化引导流程同步优化,脚本文档更加简化和聚焦
    2026-05-08 20:01 安全 安全
  • v1.5.5 支持动态功能介绍,免密登录链接优化,skill功能更新提示,强烈建议更新
    2026-04-08 10:17 安全 安全
  • v1.5.4
    2026-03-27 18:07
  • v1.1.0
    2026-03-25 17:23

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

security-compliance

tsa

u_27ccad7d
TSA - Tencent Cloud Smart Advisor
★ 0 📥 265
communication-collaboration

imap-smtp-email

gzlicanyi
使用IMAP/SMTP读取和发送邮件;检查新/未读邮件、获取内容、搜索邮箱、标记已读/未读、发送带附件的邮件。支持...
★ 114 📥 52,478
communication-collaboration

Himalaya

lamelas
{"answer":"通过IMAP/SMTP管理邮件的CLI。可在终端使用 `himalaya` 收发、回复、转发、搜索及整理邮件。支持多账户与MML(MIME元语言)编写邮件。"}
★ 68 📥 45,630