-
OPC优秀创意案例 · 征集令领华为云码道专业版实现你的创意,赢最高2000元云资源代金券,还有机会直推华为云专家圈层!───────────────────────────────────────────────────────────────────────────秀出你的创意,赢取云资源你是独立开发者、自由职业者,还是正在筹备一人创业的技术人?你想用AI工具快速实现创意、展示产品 Demo,获得云资源支持和行业曝光吗?OPC优秀创意展——华为云专为OPC(One-Person Company)开发者打造的创意展示舞台,正式开启案例征集!───────────────────────────────────────────────────────────────────────────活动路径华为云提供开发工具和云资源代金券,让你尽情展示创意和产品 Demo。使用 华为云码道代码智能体、AI Shell 等工具,把你的想法变成现实。───────────────────────────────────────────────────────────────────────────报名条件只要你符合以下条件,欢迎报名:· 有创意方向——想做网站、小程序、AI工具、SaaS服务,只要有想法· 愿意展示作品——愿意提交创意或作品 Demo 参与展示和评选· 配合产品调研——你的反馈将帮助华为云AI产品变得更好名额只有200 个,先到先得!(报名结果以邮件通知为准)▶ 立即报名───────────────────────────────────────────────────────────────────────────参与权益(报名通过即享)报名成功后,即可领取 华为云码道专业版1个月!还可完成开发者成长中心发布的任务,兑换云资源代金券(用于业务上云体验)。码道专业版 1个月华为云AI编码智能体,自然语言生成网站、应用、小程序云资源代金券完成开发者成长中心任务即可兑换,用于业务上云AI Shell工具自然语言一键部署上云,智能规划云资源,自动化运维AI系列课程大模型概述、Agent开发、码道使用技巧等精选课程专属开发者社群技术交流、问题答疑、资源对接华为云专家技术支持技术专家提供产品开发、部署、优化等环节的技术指导更多品牌曝光机会优秀作品入选OPC案例库,全网分发;参加各城市技术沙龙、圈层活动,有机会现场分享和推广OpenClaw AI助手限时激励:9.9元 体验AI智能助手,详见OPC支持计划活动页更多云资源详见OPC支持计划活动页 ───────────────────────────────────────────────────────────────────────────活动时间阶段第一周第二周第三周第四周报名征集开放报名,限额200名,先到先得 作品开发 上传、优化、发布作品 评选推广 评选颁奖,优秀作品全网展示 ───────────────────────────────────────────────────────────────────────────优秀案例评选奖励评选优秀案例前20名,赢取2000元云资源代金券!更多支持· 品牌曝光——优秀作品入选OPC案例库,曝光到多个技术平台· 圈层直推——前20名直推 HCDE / HCDG 圈层· 专家技术支持——华为云技术专家在开发、部署、优化等一对一指导· 专属社群——技术交流、问题答疑、资源对接───────────────────────────────────────────────────────────────────────────报名方式名额:点击下方“立即报名”,先到先得,额满即止!▶ 立即报名报名流程:填写报名表(创意方向/作品Demo) → 查看邮件通知(含权益领取链接) → 领取权益 → 开始创作 → 分享案例───────────────────────────────────────────────────────────────────────────资源链接· 码道下载地址:https://developer.huaweicloud.com/codeartsco.html?source=one_step_opc&sourcead=opc_grow· AI Shell:cid:link_3· 码道 CLI 下载:cid:link_5· 开发者成长中心:cid:link_4· OPC创新支持计划:cid:link_6· AI系列课程:cid:link_7───────────────────────────────────────────────────────────────────────────常见问题Q:没有码道使用经验可以报名吗?A:可以!报名成功后即可领取码道专业版1个月,快速上手。Q:活动收费吗?A:完全免费。报名即可免费领取码道专业版1个月、AI Shell等权益。Q:作品有什么要求?A:使用华为云码道代码智能体或AI Shell等工具完成的作品均可参与评选。Q:作品需要部署上线吗?A:建议部署上线,生成可访问链接有助于评选展示。AI Shell提供一键部署上云能力。Q:我的作品有隐私信息该怎么办?A:建议删除隐私信息后,再提交案例。Q:如何兑换云资源代金券?A:完成开发者成长中心发布的任务即可兑换,详情点击:cid:link_4Q:去哪里展示作品或案例呢?A:前往盖楼贴:cid:link_2───────────────────────────────────────────────────────────────────────────一人公司,AI赋能。OPC优秀创意作品展,等你来秀!华为云 · OPC创新支持计划 · 开发者生态运营团队
-
开发者朋友们!欢迎报名参加开发者训练营!在这里,您不仅能获得前沿的技术指导与实战经验,还能与行业大咖面对面交流。现在报名,只需简单几步开通码道,即可免费领取30元代金券!名额有限,先到先得,快来加入我们,开启您的AI编码之旅吧!操作步骤说明准备工作注册华为账号并开通华为云:cid:link_4步骤一:安装并登录华为云码道IDE1.点击链接开通下载华为云码道IDE:https://developer.huaweicloud.com/codeartsco.html?source=dmzntsq1&sourcead=sq2.登录华为账号(首次使用需开通套餐),登录成功后,返回下载安装华为云码道IDE,即可开启智能编码之旅。安装登录指导详情步骤二:开发Web应用3. 在智能体模式下开发Web应用:在华为云码道中,您只需用自然语言描述需求或功能目标,便能立刻理解,生成结构清晰、工程级的完整代码。(如:帮我生成一个教师点名系统)步骤三:报名活动+到场参会【训练营专属开通礼券领取条件】:4.报名&到场参加7月18日“智创未来·码动椰城——暑假AI实战训练营”参与码道技术交流(在2026年7月10日-20日期间完成开通/登录使用码道)活动报名链接:cid:link_3完成现场签到后,每人即可领取30元限定云资源代金券(约5个工作日内完成发放,数量有限,先到先得)代金券查询地址(请在有效期内使用):cid:link_1
-
云学堂·华为云码道推荐官第1期活动已结束,感谢各位开发者的参与!一、【数据公示】最终有效邀请人数名单见本论坛贴附件1,PC端下载后查看!二、【公示时间】2026年8月11日—2026年8月19日,如有疑问请在该时间段内联系小助手反馈或加入活动交流群反馈,逾期未反馈不予处理!三、【云资源券发放】云资源券奖励计划于公示结束后10个工作日内发放,会尽快安排。 【活动时间】2026年 07月 08日 - 2026年 08月 10日【活动报名】立即报名【活动福利】有效邀请人数云资源代金券≥5人100元(限量300)≥10人200元(限量300)≥15人300元(限量220)邀请链接:报名后点击页面【分享有礼】按钮生成专属邀请链接邀请人参与流程:①活动报名→②分享有礼→③一键开通华为云码道→④下载安装并体验华为云码道产品(需Tokens消耗>0)或完成华为云码道微认证任意一个任务(认证对应课程学习进度100%或通过华为云码道微认证并获取证书)被邀请人参与流程:①通过好友分享的专属链接活动报名→②首次一键开通华为云码道→③下载安装并体验华为云码道产品(需Tokens消耗>0)或完成华为云码道微认证任意一个任务(认证对应课程学习进度100%或通过华为云码道微认证并获取证书) 【活动规则】1、活动对象:华为云注册且完成实名认证的用户均可参加;活动有效邀请成功后,邀请人可获得相应奖励。 2、邀请人需满足以下全部条件,完成有效邀请任务后才可以获得对应激励:(1) 登录活动页面且“活动报名”成功,点击页面“分享有礼”生成专属邀请链接或二维码,成为邀请人;分享邀请二维码/链接给好友,被邀请好友通过专属链接完成报名。(2)一键开通华为云码道,下载安装并体验华为云码道产品(需Tokens消耗>0)或完成华为云码道微认证任意一个任务(认证对应课程学习进度100%或通过华为云码道微认证并获取证书) 3、被邀请人需在活动期间内满足以下全部条件,才被记录为1个【有效邀请】:(1)通过好友专属链接报名成功后,点击活动页面上一键开通华为云码道(被邀请人必须是首次开通),如该被邀请人之前已经开通/激活/下载华为云码道则不属于有效邀请,每个华为云账号仅可被有效邀请一次。(2)被邀请人需要首次开通华为云码道,下载安装并体验华为云码道产品(需Tokens消耗>0)或完成华为云码道微认证任意一个任务(认证对应课程学习进度100%或通过华为云码道微认证并获取证书) 4、奖励说明:(1)邀请人在活动期间,每个【有效邀请】可获得20元云资源代金券,有效邀请≥5人才可申请奖励;被邀请人及邀请人同时还可在开发者成长中心领取更多积分兑换更多激励。(2)奖励按有效邀请人数最高档位发放,不重复叠加。例如有效邀请12人,获得200元券,而非100+200的叠加;本期活动最高可获得300元云资源券。(3)邀请数据公示:【分享有礼】弹窗显示的人数仅为邀请报名成功的人数,并非【有效邀请】人数;活动期间,工作日每周二、周五下午18点前在本论坛贴公示有效邀请人数。(4)云资源券奖品限量,以被邀请人完成最后一个任务(即微认证任务)的时间为统计标准,先到先得。(5)奖励发放时间:活动结束后5个工作日内公示最终有效邀请人数名单,公示期为7个工作日,公示期结束后15个工作日内发放云资源券奖励。(6)云资源券有效期:自发放之日起 60 天内有效,逾期即失效,不可补发; (7)云资源券使用说明:发放的代金券在额度范围内可多次用于抵扣账单或订单,直至余额用尽,可支持新购、续费等订单场景,实际是否可抵扣具体以订单详情为准。 更多活动信息可前往活动详情页查看!
-
由 AtomGit 与 华为云开发者发展与支持部 HCDG 组织联合发起的 G-Star Gathering Day 南京站 顺利举办。来自高校、开发者社区、企业技术团队的一线实践者齐聚南京,围绕 AI 编程、智能研发、AI 工作流与工程化落地等方向,展开了一场兼具深度与实战的技术交流。 从 AI Coding 到 Skill 工程化,从企业 AI 落地到“一人团队”工作流,本次活动不仅分享了最新的 AI 开发趋势,也呈现了大量真实可落地的实践案例。 活动开场环节,AtomGit 南京站负责人夏文强 围绕 AtomGit 与 AI 原生开发生态进行了整体介绍。作为面向全球开发者的 AI 原生开源社区,AtomGit 正在围绕“开发者连接、技术连接、开源项目连接”构建开放生态,持续推动 AI 与开源协同发展。现场重点介绍了 AtomCode、AI 社区、G-Star 开源摘星计划等核心方向,展示了 AtomGit 在 AI 编程、开源协作、模型与算力服务、开发者运营等领域的探索实践。同时,也分享了 G-Star 开源摘星计划在项目孵化、开发者增长、社区活跃度等方面取得的阶段性成果,进一步展现了 AI + 开源生态融合发展的新趋势。 南京工业大学浦江学院教授杨宜镇 围绕“AI 技术平权”展开分享,从双非高校在算力、资源与 AI 能力获取上的现实困境切入,结合 AtomCode 与 DeepSeek V4 的实践案例,展示了 AI 编程工具如何降低开发与学习门槛,让更多普通开发者和高校学生也能获得接近顶尖机构的 AI 开发能力。他认为,AI 原生开发工具正在推动技术民主化,让 AI 真正成为人人可用的生产力。 文兜智写技术联合创始人叶道宏 从企业真实业务场景出发,分享了 AI 从“Demo”走向“落地”的核心方法论。他指出,AI 落地真正难的不是模型,而是流程设计、组织协同与业务嵌入。通过招投标、AIGC 内容生产、一人产品等案例,他展示了如何通过任务拆解、角色化协作与文档化流程,让 AI 深度进入业务闭环,实现从“能生成”到“能交付”的跨越。 华为云码道技术支持专家李炎 围绕华为云码道(CodeArts)代码智能体,分享了 AI 原生 IDE 与智能研发的发展趋势。他介绍了其在代码生成、单测生成、研发知识问答等方向的开发能力 ,以及码道Spec-Driven 和 Vibe Coding 的开发模式,帮助开发者实现研发效能提升。并通过多个实际案例展示了 AI 如何帮助开发者提升研发效率、缩短交付周期,推动软件开发从“AI 辅助”迈向“AI 主导”。 鸿蒙社区问答专家张辉鑫 聚焦 Skill 工程化实践,系统分享了 Skill 的设计逻辑与落地方法。他从 Prompt、RAG、Plugin 等能力演进讲起,重点介绍了 Skill 如何通过标准化的 SKILL.md 结构,实现 AI 能力的可复用、可迁移与可工程化管理。同时,他还演示了同一份 Skill 如何跨工具运行,为现场开发者展示了 AI 工作流资产化与团队协作的新方向。 本次 G-Star Gathering Day 南京站,不仅是一场 AI 技术分享,更像是一场关于“未来开发方式”的集体讨论。 从 AI Coding 到 Skill 工程化与组织协同,越来越多开发者开始意识到:AI 不只是一个工具,而是在重新定义软件开发本身。 感谢每一位来到现场的开发者伙伴,也感谢所有嘉宾带来的精彩分享。
-
【问题来源】 浙农测试环境功能测试 【问题简要】 在ICD V300R008C25版本的SCE开发GSL流程中,使用放音收号识别cell开发设计验证TTS播报功能流程,一直播放失败,请问该如何定位?【问题类别】 IVR(gsl) 【AICC解决方案版本】 AICC 版本:AICC 25.300 SCE 版本: ICD V300R008C25 【期望解决时间】 尽快 【日志或错误截图】
-
开发的容器异常后,里面的数据丢失
-
若需在华为云开发者空间案例中心(cid:link_0)发布实践案例,可参照以下模板进行内容创作,能显著提升案例审核通过率。模板地址:muban:案例中心写作模板 - AtomGit
-
向大佬们请教一下38期的交互逻辑,我目前交互逻辑的大概实现如下(线上测试一直-1 run timeout):#include <algorithm> #include <cstdio> int N, K, B; int gpuCapacity[100]; int main() { scanf("%d %d %d", &N, &K, &B); for (int i = 1; i <= K; i++) { scanf("%d", &gpuCapacity[i]); } int requestCnt = 0; int tMax = 0; int curTimeStep = 0; int maxArrivalTime = 0; int requestLoutSum = 0; // 当requestCnt == N && curTimeStep > tMax时,结束循环 while (requestCnt < N || curTimeStep <= tMax) { int t, n; scanf("%d %d", &t, &n); for (int i = 0; i < n; i++) { int id, lIn, lOut, arrivalTime; scanf("%d %d %d %d", &id, &lIn, &lOut, &arrivalTime); requestCnt++; requestLoutSum += lOut; maxArrivalTime = std::max(maxArrivalTime, arrivalTime); if (requestCnt == N) { tMax = maxArrivalTime + requestLoutSum; } } curTimeStep++; // 直接输出0,按文档中说明,达到tMax时没有收到N个request的Scheduling应该是0分 printf("0\n"); fflush(stdout); } // fprintf(stderr, "tMax: %d, curTimeStep: %d, requestCnt: %d\n", tMax, curTimeStep, requestCnt); return 0; } 1. 程序全部输出0,按文档的说明,当t > t_max时,如果没有收到N个request的Scheduling,得分应该是0,但线上测试反馈是-1 run timeout,所以我猜测是交互器超时了。(当然,实际的算法会考虑Scheduled request的数量)2. 本地我使用AI写了一个评测程序,构造了一个测试用例,只包含一个Request,且该Request在4096000时刻才到达,测试用了大概90s,所以我猜测我的交互逻辑应该有问题。
-
【摘要】 本教程教你用华为云 AI Shell 体验 QQ 邮箱 Agently Mail Agent,从安装配置到收发邮件、下载附件,跑通一个完整的 AI 邮箱自动化闭环。给 AI 一个邮箱:AI Shell + QQ 邮箱 Agent 实战教程本教程教你用华为云 AI Shell 体验 QQ 邮箱 Agent Mail,从安装配置到收发邮件、下载附件,跑通一个完整的 AI 邮箱自动化闭环。📌 教程概览项目说明平台华为云 AI Shell(浏览器即开即用的 AI 终端)邮箱服务QQ 邮箱 Agent Mail(面向 AI Agent 的专属邮箱)难度⭐⭐ 初级,适合有基本终端经验的用户预计耗时20–30 分钟核心能力自然语言收发邮件、搜索邮件、下载附件、自动化工作流一、为什么选 AI Shell + QQ 邮箱 Agent?1.1 AI Shell 是什么?华为云 AI Shell 是一个浏览器端对话式 AI 终端,把大模型能力和命令行环境融合在一起。你用自然语言下达指令,AI 自动理解意图、生成命令并执行——不需要你逐条手敲 CLI。AI Shell官网:cid:link_1一键直达AI Shell:cid:link_0核心优势:🚀 即开即用:浏览器打开就能用,无需本地安装环境🤖 对话式操作:说"帮我查邮件"就行,不用记命令🔗 终端 + AI 结合紧密:适合演示 Agent 如何通过 CLI 工具接入外部服务🛡️ 沙箱隔离:操作在云端环境执行,不污染本地系统1.2 QQ 邮箱 Agent Mail 是什么?QQ 邮箱近期推出的 Agent Mail,是专门面向 AI Agent 的邮箱服务。可以理解为——给 AI 单独准备的工作邮箱。核心特点:📮 与个人邮箱隔离:AI 用的是专属邮箱,不碰你的私人邮件📨 完整邮件能力:收发邮件、搜索邮件、下载附件🤖 自然语言驱动:Agent 直接用自然语言操作邮箱⚙️ 自动化工作流:支持邮件触发 → 处理 → 回复的自动流程🔍 可追溯:后台可查看收发记录和授权状态💡 一句话理解:AI Shell 是 AI 的"手"(终端执行),Agent Mail 是 AI 的"信箱"(邮件收发),两者组合 = 一个能自己收发邮件的 AI 助手。二、开始前准备2.1 你需要准备三样东西序号准备项说明①华为云 AI Shell 入口进入 AI Shell 服务②QQ 邮箱 Agent Mail 体验权限前往 QQ 邮箱 Agently Mail 页面申请/开通③微信(用于扫码授权)安装 CLI 后需微信扫码完成绑定2.2 安全建议⚠️ 重要提醒:不要把个人主邮箱直接交给 AI!Agent Mail 的设计初衷就是把 AI 邮箱和个人邮箱隔离开。请始终使用专属邮箱进行测试,这样即使 Agent 出现误操作,影响范围也可控。三、在 AI Shell 里安装 Agently Mail CLI3.1 进入终端模式打开 AI Shell 后,确认你已进入可执行命令的终端模式。你应该能看到一个类似下方的界面:┌──────────────────────────────────────────────┐ │ AI Shell > 对话 / 终端 │ ├──────────────────────────────────────────────┤ │ │ │ user@ai-shell:~$ _ │ │ │ │ [对话输入框] 请输入你的指令... │ │ │ └──────────────────────────────────────────────┘3.2 让 Agent 自动安装在对话输入框中,直接对 AI Shell 说:请阅读 https://agent.qq.com/doc/cli-setup.md 文档, 按照步骤为我安装并配置 Agent Mail CLI。Agent 收到指令后会:拉取文档 — 自动访问 CLI 安装文档解析步骤 — 理解安装流程和依赖项执行安装 — 在终端中逐条运行安装命令处理依赖 — 自动解决环境依赖问题提示授权 — 安装完成后引导你进行扫码授权你看到的终端输出大致如下:# Agent 自动执行的过程 $ curl -sL https://agent.qq.com/install.sh | bash ↓ Downloading Agently Mail CLI... ✓ CLI installed to ~/.local/bin/agently-mail $ agently-mail --version Agently Mail CLI v1.0.0 $ agently-mail config init → Initializing configuration... → Please scan QR code to authorize...💡 这一步的重点:不是"你手敲多少命令",而是观察 Agent 是否能完整自主地完成 CLI 接入。这正是 AI Shell 的价值所在。四、扫码授权绑定4.1 微信扫码安装 CLI 后,Agent 会在终端中显示一个二维码:┌─────────────────────────┐ │ │ │ ██████████████████ │ │ ██ ██ │ │ ██ ▓▓▓▓▓▓▓▓ ██ │ │ ██ ▓▓▓▓▓▓▓▓ ██ │ │ ██ ▓▓▓▓▓▓▓▓ ██ │ │ ██ ██ │ │ ██████████████████ │ │ │ │ 请用微信扫码完成授权 │ └─────────────────────────┘操作步骤:打开手机微信扫描终端中显示的二维码在手机上确认授权终端显示绑定成功4.2 绑定成功确认授权完成后,终端会显示:✅ Authorization successful! Email: agent-xxxxx@qq.com Status: Connected Quota: 100 emails/day (trial) You can now use natural language to operate your mailbox.4.3 这一步意味着什么?概念说明AI 身份AI Shell 中的 Agent 实例邮箱身份Agent Mail 分配的专属邮箱地址绑定关系Agent 获得该专属邮箱的操作权限安全边界你的个人邮箱权限不暴露给 AI完成后,你可以在 Agent Mail 后台查看收发记录和授权状态,便于追踪 Agent 做了什么。五、第一次实战:让 AI 收发邮件5.1 从低风险任务开始🟢 建议:先让 Agent 搜索邮件,不要一上来就发信。任务 ①:查看最近收到的邮件你对 AI Shell 说:查一下最近收到的邮件Agent 执行并返回:📋 最近 5 封邮件: 1. 【发件人】noreply@github.com 【主题】Your weekly digest 【时间】2026-06-28 09:12 【摘要】本周 GitHub 活动汇总:3 个 PR 合并,2 个 Issue 关闭... 2. 【发件人】invoice@example.com 【主题】六月发票 - 订单 #2024-0615 【时间】2026-06-27 16:30 【摘要】附件包含六月电子发票 PDF... 3. 【发件人】hr@company.com 【主题】简历投递回复 - 面试邀请 【时间】2026-06-27 10:05 【摘要】已收到简历,邀请 6 月 30 日面试... ...任务 ②:搜索特定邮件你对 AI Shell 说:找出上周和项目有关的邮件Agent 执行并返回:🔍 搜索关键词:项目 | 时间范围:上周 找到 3 封相关邮件: 1. 【主题】项目周报 - 第 26 周 【发件人】pm@team.com | 2026-06-23 【关键信息】本周完成 5 个任务,下周计划 3 个里程碑... 2. 【主题】Re: 项目架构评审反馈 【发件人】architect@team.com | 2026-06-24 【关键信息】架构方案 v2 已更新,请 review... 3. 【主题】项目预算审批通过 【发件人】finance@company.com | 2026-06-25 【关键信息】Q3 预算已批准,总额 ¥120,000...任务 ③:下载附件你对 AI Shell 说:下载第一封邮件里的附件Agent 执行并返回:→ 正在获取邮件附件... → 邮件: 【六月发票 - 订单 #2024-0615】 → 附件: invoice_2024_06.pdf (245KB) ✅ 下载完成! 保存路径: ~/downloads/invoice_2024_06.pdf 文件大小: 245 KB MD5: a3f5e8b2c1d4...任务 ④:发送测试邮件🟡 注意:先发给自己的测试地址,确认格式、主题和签名都正常。你对 AI Shell 说:帮我发一封邮件给 test@example.com, 主题是"AI Agent 测试邮件", 内容写"这是一封由 AI Agent 自动发送的测试邮件,请忽略。"Agent 执行并返回:→ 正在发送邮件... 收件人: test@example.com 主题: AI Agent 测试邮件 正文: 这是一封由 AI Agent 自动发送的测试邮件,请忽略。 ✅ 发送成功! 邮件 ID: agent-mail-20260628-001 发送时间: 2026-06-28 14:32:05六、进阶:邮件自动化工作流当你熟悉了基本操作,可以尝试让 Agent 执行多步骤工作流:6.1 邮件摘要助手帮我整理今天的邮件: 1. 搜索今天收到的所有邮件 2. 按重要程度分类(工作/通知/广告) 3. 生成一份摘要报告Agent 返回示例:📊 今日邮件摘要报告 (2026-06-28) ═══════════════════════════════════ 📌 工作邮件 (3 封) ├─ 项目周报已提交,等待 review ├─ 客户反馈:产品 v2 建议增加导出功能 └─ 架构评审通过,可进入开发阶段 🔔 通知邮件 (2 封) ├─ GitHub: 3 个 PR 待合并 └─ 系统监控: 服务器 CPU 使用率正常 📢 广告邮件 (1 封) └─ 云服务促销:新用户优惠(可忽略) ⏱️ 需要处理: 2 封(项目周报 review + 客户回复)6.2 自动回复流程检查是否有来自 hr@company.com 的邮件, 如果有面试邀请,帮我回复确认参加, 并在我日历上标记面试时间。6.3 附件批量归档搜索所有包含发票附件的邮件, 把附件按月份下载到 ~/invoices/ 目录, 并生成一份文件清单。七、适合展示的实战场景场景描述适合人群🧾 发票归档自动搜索发票邮件,下载 PDF 附件,按月份归档财务/行政📰 订阅摘要汇总订阅邮件内容,生成每日/每周摘要信息工作者💼 简历投递回复自动筛选简历邮件,回复面试邀请HR📦 订单邮件整理提取订单号、物流信息,生成跟踪表电商运营🔔 告警邮件处理按优先级分类告警邮件,紧急的立即通知运维工程师八、风险与安全建议8.1 两条核心原则🔴 原则一:不要把个人邮箱直接交给 AIAgently Mail 的设计初衷就是把 AI 邮箱和个人邮箱隔离开。个人邮箱包含大量隐私信息(银行账单、私人通信、密码重置链接等),直接交给 AI 会带来隐私泄露和越权风险。🟡 原则二:先确认再执行第一次演示尽量使用低权限、低风险的测试邮箱。所有涉及发送、删除、转发的操作,建议先让 Agent 展示意图,确认后再执行。8.2 安全检查清单使用 Agently Mail 专属邮箱,而非个人邮箱测试环境与生产环境隔离发送邮件前确认收件人和内容定期检查 Agently Mail 后台操作日志敏感操作(删除、转发)设置二次确认不在公开代码仓库中暴露邮箱配置信息九、总结我们做了什么通过本教程,你完成了一个 AI 邮箱助手的最小可用闭环:安装 CLI → 扫码授权 → 查邮件 → 搜邮件 → 下附件 → 发邮件 → 自动化工作流核心收获AI Shell 不只是终端,而是一个可以执行邮箱任务的 Agent 工作台Agently Mail 不只是邮箱,而是专为 AI 设计的自动化邮件接口自然语言驱动,从"敲命令"到"说需求",交互方式发生了质变安全隔离,AI 邮箱与个人邮箱分开,风险可控下一步探索🔗 结合定时任务,实现每日邮件自动摘要推送📊 接入更多数据源,做邮件 + 日历 + 文档的联动🤖 搭建多 Agent 协作流程,让不同 Agent 处理不同类型邮件
-
开发者专属免费考证福利来了!【云学堂·云原生技术实战营】活动正式开营!集齐5个微认证兑换云原生入门级开发者认证证书。 一、【活动时间】2026年 06月 15日 - 2026年 09月 30日二、【报名链接】cid:link_1三、【活动福利】1、每通过1门微认证考试→获得对应华为云官方微认证证书2、通过指定5门云原生微认证→免费兑换华为云云原生入门级开发者认证证书3、一键免费领取华为云码道体验版,开启你的编码自动驾驶模式!四、参与流程Step1、AI智能编码辅助工具体验,0 门槛上手,小白也能变大神!支持 Java/Python/Go 等 7 种主流语言,代码生成、注释、调试、翻译一键搞定!一键免费领取体验版:https://developer.huaweicloud.com/codeartsco.html?source=dmznteducation&sourcead=dmznthd,立即体验,开启你的编码自动驾驶模式! Step2、集齐5个微认证证书免费兑换云原生入门级开发者认证证书序号认证名称(含免费激活入口)1云原生基础设施之容器入门2云原生基础设施之容器进阶3基于CCE Kubernetes编排实战4CCE网络与存储实战5云容器快速搭建网站通过序号1-5微认证且获得证书后,点此兑换云原生入门级开发者证书(我的认证→我的证书兑换)【考试说明】1、云原生5个微认证无需购买,点击表格中认证名称进入认证详情页,点击“免费激活”按钮即可,如考试未通过可再次点击“免费激活”。2、云原生5个微认证需要理论考试≥70分+实验考试≥60分才算考试通过。3、考试通过后第1个自然日后将发放证书,可前往我的学堂- 我的证书查看证书编号和下载电子证书。 不管是入门新手、在校同学还是职场开发者,都可以一站式学练考!
-
点击>>魔坊(ModelArts)模型训推平台 介绍
-
DevEco 什么时候才能完善,感觉少了很功能,包括CodeGenis功能也不全,插件市场也没有
-
HarmonyOS APP权限声明小技巧📌 核心要点:权限声明是鸿蒙应用安全的第一道防线,通过 module.json5 中的 requestPermissions 声明所需权限,理解 system_grant 与 user_grant 的区别、APL 级别划分,是构建安全应用的基础。一、背景与动机想象一下这个场景:你刚搬进一个新小区,小区有健身房、游泳池、地下车库等各种设施。但并不是每个住户都能随意使用所有设施——你需要先在物业那里登记,申请相应的门禁卡,才能进入对应的区域。鸿蒙系统的权限管理机制,本质上就是这样一个"物业登记"系统。你的应用想要访问用户的相册、摄像头、位置等敏感资源?没问题,但得先"声明"——告诉系统和用户:“我需要这些权限,这是我的理由。”如果你不声明权限就直接调用相关 API,系统会毫不留情地给你甩一个错误。就像你没办门禁卡就硬闯健身房,保安(系统)直接拦住你,连门都进不去。那为什么要把权限声明放在 module.json5 里呢? 因为这是一种"前置声明"机制——在应用安装时,系统就能扫描这个配置文件,知道你的应用到底需要哪些权限。这比运行时才发现应用在偷偷干坏事要好得多。用户在安装前就能看到权限列表,做出知情决策。二、核心原理2.1 权限声明的工作流程当你在 module.json5 中声明权限后,系统会根据权限类型走不同的授权流程:system_grantuser_grant允许拒绝应用在 module.json5 声明权限权限授签方式?系统自动授权安装时即获得权限应用可直接使用需要用户手动授权运行时弹窗请求用户选择?获得权限未获得权限需要处理拒绝逻辑2.2 两种授权方式:system_grant vs user_grant这是权限声明中最核心的概念区分,必须理解透彻。system_grant(系统授权):这类权限不涉及用户隐私,系统在应用安装时自动授予。比如网络访问权限——你的应用要联网,这不需要用户额外确认,装上就能用。user_grant(用户授权):这类权限涉及用户隐私数据,必须由用户亲自确认。比如相机权限——你的应用要拍照,用户得点头同意才行。打个比方:system_grant 就像小区的公共通道,住户自动拥有通行权;user_grant 则像邻居家的门,你得敲门,主人同意了才能进。2.3 APL 级别:权限的"安全等级"APL(Ability Privilege Level)是权限的等级标签,决定了哪些应用有资格申请该权限:APL 级别说明典型权限normal普通权限,所有应用可申请ohos.permission.INTERNETsystem_basic基础系统权限,系统应用或特权应用可申请ohos.permission.LOCATIONsystem_core核心系统权限,仅系统核心应用可申请ohos.permission.INSTALL_BUNDLE同时,应用自身也有 APL 级别(在 AppScope 中的 app.json5 里配置),应用的 APL 必须 ≥ 权限的 APL,才能成功申请该权限。就像你的职级必须达到某个等级,才能进入对应的会议室。2.4 module.json5 中的 requestPermissions 结构{ "module": { "requestPermissions": [ { "name": "ohos.permission.CAMERA", "reason": "$string:camera_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } } ] } } 各字段含义:name:权限名称,必须是系统定义的合法权限名reason:申请理由,对 user_grant 权限必填,向用户解释为什么需要该权限usedScene:使用场景,描述权限在哪些 Ability 中、何时使用abilities:使用该权限的 Ability 列表when:使用时机,inuse(仅前台使用)或 always(前后台都使用)三、代码实战示例1:基础权限声明配置这是一个完整的 module.json5 配置,展示了常见权限的声明方式:// module.json5 - 模块配置文件 { "module": { "name": "entry", "type": "entry", "description": "$string:module_desc", "mainElement": "EntryAbility", "deviceTypes": ["phone", "tablet"], "deliveryWithInstall": true, "installationFree": false, "pages": "$profile:main_pages", "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:layered_image", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:startIcon", "startWindowBackground": "$color:start_window_background", "exported": true, "skills": [ { "entities": ["entity.system.home"], "actions": ["action.system.home"] } ] } ], // ====== 权限声明区域 ====== "requestPermissions": [ { // 网络权限 - system_grant,安装即授权 "name": "ohos.permission.INTERNET" }, { // 相机权限 - user_grant,需要用户手动授权 "name": "ohos.permission.CAMERA", "reason": "$string:camera_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { // 位置权限 - user_grant,需要用户手动授权 "name": "ohos.permission.LOCATION", "reason": "$string:location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { // 大概位置权限 - user_grant,精度较低的位置 "name": "ohos.permission.APPROXIMATELY_LOCATION", "reason": "$string:location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { // 文件读取权限 - user_grant "name": "ohos.permission.READ_MEDIA", "reason": "$string:read_media_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } } ] } } 对应的字符串资源文件(string.json):// base/element/string.json { "string": [ { "name": "camera_reason", "value": "用于拍摄照片上传头像" }, { "name": "location_reason", "value": "用于获取您的位置信息,提供附近服务推荐" }, { "name": "read_media_reason", "value": "用于读取相册图片,方便您选择和分享" } ] } 示例2:运行时校验权限声明是否生效在应用启动时,我们可以通过 Ability 的 onWindowStageCreate 回调来检查权限状态,确保声明已正确配置:// EntryAbility.ets - 应用入口Ability import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { abilityAccessCtrl, bundleManager, Permissions } from '@kit.AbilityKit'; export default class EntryAbility extends UIAbility { // 应用创建回调 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { console.info('[PermissionDemo] EntryAbility onCreate'); } // 窗口阶段创建回调 onWindowStageCreate(windowStage: window.WindowStage): void { console.info('[PermissionDemo] EntryAbility onWindowStageCreate'); // 检查已声明的权限状态 this.checkDeclaredPermissions(); // 设置主窗口内容 windowStage.loadContent('pages/Index', (err) => { if (err.code) { console.error('[PermissionDemo] Failed to load content: ' + JSON.stringify(err)); return; } console.info('[PermissionDemo] Succeeded in loading content'); }); } /** * 检查已声明权限的授权状态 * 通过此方法可以验证 module.json5 中的权限声明是否生效 */ private async checkDeclaredPermissions(): Promise<void> { try { // 获取访问控制管理器 const atManager = abilityAccessCtrl.createAtManager(); // 获取当前应用的Bundle名 const bundleInfo = await bundleManager.getBundleInfoForSelf( bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT ); const bundleName = bundleInfo.name; // 定义需要检查的权限列表(与 module.json5 中声明的一致) const declaredPermissions: Permissions[] = [ 'ohos.permission.INTERNET', 'ohos.permission.CAMERA', 'ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.READ_MEDIA' ]; console.info('[PermissionDemo] 开始检查权限声明状态...'); // 逐个检查权限授权状态 for (const permission of declaredPermissions) { try { const grantStatus = await atManager.checkAccessToken( bundleInfo.appInfo.accessTokenId, permission ); const statusText = grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED ? '已授权 ✅' : '未授权 ❌'; console.info(`[PermissionDemo] ${permission}: ${statusText}`); } catch (err) { console.error(`[PermissionDemo] 检查权限 ${permission} 失败: ${JSON.stringify(err)}`); } } } catch (error) { console.error('[PermissionDemo] 权限检查异常: ' + JSON.stringify(error)); } } onDestroy(): void { console.info('[PermissionDemo] EntryAbility onDestroy'); } } 示例3:权限声明验证工具页面创建一个可视化页面,展示当前应用所有已声明权限的状态信息,方便开发调试:// pages/PermissionCheckPage.ets - 权限声明验证页面 import { abilityAccessCtrl, bundleManager, Permissions } from '@kit.AbilityKit'; // 权限信息接口 interface PermissionInfo { name: string; // 权限名称 grantMode: string; // 授权方式 isGranted: boolean; // 是否已授权 aplLevel: string; // APL级别 description: string; // 权限描述 } @Entry @Component struct PermissionCheckPage { // 权限列表状态 @State permissionList: PermissionInfo[] = []; // 加载状态 @State isLoading: boolean = true; // 已授权数量 @State grantedCount: number = 0; // 需要检查的权限列表 private readonly CHECK_PERMISSIONS: Array<{ name: Permissions; grantMode: string; aplLevel: string; description: string; }> = [ { name: 'ohos.permission.INTERNET', grantMode: 'system_grant', aplLevel: 'normal', description: '网络访问权限' }, { name: 'ohos.permission.CAMERA', grantMode: 'user_grant', aplLevel: 'normal', description: '相机权限' }, { name: 'ohos.permission.LOCATION', grantMode: 'user_grant', aplLevel: 'system_basic', description: '精确位置权限' }, { name: 'ohos.permission.APPROXIMATELY_LOCATION', grantMode: 'user_grant', aplLevel: 'system_basic', description: '大概位置权限' }, { name: 'ohos.permission.READ_MEDIA', grantMode: 'user_grant', aplLevel: 'system_basic', description: '读取媒体文件权限' }, { name: 'ohos.permission.WRITE_MEDIA', grantMode: 'user_grant', aplLevel: 'system_basic', description: '写入媒体文件权限' } ]; // 页面即将显示时检查权限 async aboutToAppear() { await this.checkAllPermissions(); } /** * 检查所有已声明权限的状态 */ private async checkAllPermissions(): Promise<void> { try { const atManager = abilityAccessCtrl.createAtManager(); const bundleInfo = await bundleManager.getBundleInfoForSelf( bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT ); const tokenId = bundleInfo.appInfo.accessTokenId; const results: PermissionInfo[] = []; let granted = 0; for (const perm of this.CHECK_PERMISSIONS) { try { const status = await atManager.checkAccessToken(tokenId, perm.name); const isGranted = status === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED; if (isGranted) granted++; results.push({ name: perm.name, grantMode: perm.grantMode, isGranted: isGranted, aplLevel: perm.aplLevel, description: perm.description }); } catch (err) { // 权限检查失败,可能未声明该权限 results.push({ name: perm.name, grantMode: perm.grantMode, isGranted: false, aplLevel: perm.aplLevel, description: perm.description + '(未声明或检查失败)' }); } } this.permissionList = results; this.grantedCount = granted; this.isLoading = false; } catch (error) { console.error('[PermissionCheck] 检查权限失败: ' + JSON.stringify(error)); this.isLoading = false; } } build() { Column() { // 标题区域 Text('权限声明验证工具') .fontSize(24) .fontWeight(FontWeight.Bold) .margin({ top: 20, bottom: 8 }) // 统计信息 Text(`已授权: ${this.grantedCount} / ${this.permissionList.length}`) .fontSize(16) .fontColor('#666666') .margin({ bottom: 16 }) // 加载中提示 if (this.isLoading) { LoadingProgress() .width(48) .height(48) .color('#4CAF50') } else { // 权限列表 List({ space: 12 }) { ForEach(this.permissionList, (item: PermissionInfo) => { ListItem() { this.PermissionItemBuilder(item) } }, (item: PermissionInfo) => item.name) } .width('100%') .layoutWeight(1) .padding({ left: 16, right: 16 }) // 刷新按钮 Button('重新检查') .width('80%') .height(44) .backgroundColor('#4CAF50') .fontColor(Color.White) .margin({ top: 16, bottom: 24 }) .onClick(() => { this.isLoading = true; this.checkAllPermissions(); }) } } .width('100%') .height('100%') .backgroundColor('#F5F5F5') } /** * 单个权限项的UI构建 */ @Builder PermissionItemBuilder(item: PermissionInfo) { Row() { // 授权状态图标 Text(item.isGranted ? '✅' : '❌') .fontSize(20) .margin({ right: 12 }) // 权限信息 Column() { Text(item.description) .fontSize(16) .fontWeight(FontWeight.Medium) .maxLines(1) .textOverflow({ overflow: TextOverflow.Ellipsis }) Text(item.name) .fontSize(12) .fontColor('#999999') .margin({ top: 4 }) .maxLines(1) .textOverflow({ overflow: TextOverflow.Ellipsis }) // 标签行 Row({ space: 8 }) { // 授权方式标签 Text(item.grantMode === 'system_grant' ? '系统授权' : '用户授权') .fontSize(11) .fontColor(Color.White) .backgroundColor(item.grantMode === 'system_grant' ? '#4CAF50' : '#FF9800') .borderRadius(4) .padding({ left: 6, right: 6, top: 2, bottom: 2 }) // APL级别标签 Text(item.aplLevel) .fontSize(11) .fontColor(Color.White) .backgroundColor(item.aplLevel === 'normal' ? '#2196F3' : '#9C27B0') .borderRadius(4) .padding({ left: 6, right: 6, top: 2, bottom: 2 }) } .margin({ top: 6 }) } .alignItems(HorizontalAlign.Start) .layoutWeight(1) } .width('100%') .padding(16) .backgroundColor(Color.White) .borderRadius(12) .shadow({ radius: 2, color: '#1A000000', offsetY: 1 }) } } 四、踩坑与注意事项坑1:reason 字段不填或填错导致审核被拒现象:user_grant 类型的权限声明中,reason 字段是必填的。如果你不填,或者填的内容过于笼统(比如"用于应用功能"),应用市场审核大概率会被打回。正确做法:reason 必须具体说明权限用途,比如"用于拍摄照片上传头像"比"用于拍照"更清晰。同时,reason 要引用字符串资源($string:xxx),不能直接写硬编码字符串。// ❌ 错误:直接硬编码 { "name": "ohos.permission.CAMERA", "reason": "拍照" // 不符合规范 } // ✅ 正确:引用字符串资源 { "name": "ohos.permission.CAMERA", "reason": "$string:camera_reason" // 规范写法 } 坑2:APL 级别不匹配导致权限申请失败现象:你的应用 APL 是 normal,但你声明了一个 system_basic 级别的权限(如 ohos.permission.LOCATION),结果安装时该权限不会被授予。解决方案:在 app.json5 中确认应用的 APL 级别。普通三方应用的 APL 默认是 normal,只能申请 normal 级别的权限。要申请 system_basic 权限,需要通过应用市场签名或者使用调试证书。// app.json5 - 应用级配置 { "app": { "bundleName": "com.example.myapp", "vendor": "example", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:app_icon", "label": "$string:app_name", // 注意:三方应用无法直接修改此字段 // 需要通过签名工具或应用市场配置 "apiReleaseType": "Release" } } 坑3:LOCATION 和 APPROXIMATELY_LOCATION 必须同时声明现象:如果你只声明了 ohos.permission.LOCATION(精确位置),而没有声明 ohos.permission.APPROXIMATELY_LOCATION(大概位置),运行时请求位置权限会失败。原因:鸿蒙的位置权限设计要求,精确位置权限必须以大概位置权限为基础。也就是说,你必须"先有大范围,才能精确到点"。// ❌ 错误:只声明精确位置 "requestPermissions": [ { "name": "ohos.permission.LOCATION", "reason": "$string:location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } } ] // ✅ 正确:同时声明两个位置权限 "requestPermissions": [ { "name": "ohos.permission.APPROXIMATELY_LOCATION", "reason": "$string:location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { "name": "ohos.permission.LOCATION", "reason": "$string:location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } } ] 坑4:usedScene.when 字段选择不当现象:你的应用只需要在前台使用位置,但你声明了 "when": "always",审核时可能被质疑权限过度申请。原则:最小权限原则——只在必要时申请必要范围的权限。如果只需要前台使用,就填 inuse;只有确实需要后台持续定位(如导航应用),才填 always。坑5:权限名称拼写错误现象:权限名称写错了,比如把 ohos.permission.CAMERA 写成了 ohos.permission.Camera(大小写错误),编译不会报错,但运行时权限永远拿不到。建议:直接从官方文档复制权限名称,不要手动输入。权限名称是区分大小写的!五、HarmonyOS 6 适配5.1 权限声明格式变化HarmonyOS 6 对 requestPermissions 的校验更加严格:变化项HarmonyOS 5HarmonyOS 6reason 字段建议填写强制校验,不填直接编译警告usedScene可选user_grant 权限必须填写权限最小化建议实践编译时检查权限冗余,过度声明会警告新增权限-新增 AI 相关权限(如 ohos.permission.AI_VOICE)5.2 迁移指南// HarmonyOS 6 推荐的完整权限声明格式 "requestPermissions": [ { "name": "ohos.permission.CAMERA", "reason": "$string:camera_reason", // 必填 "usedScene": { // 必填 "abilities": ["EntryAbility"], // 指定使用的Ability "when": "inuse" // 明确使用时机 } } ] 5.3 HarmonyOS 6 新增的权限分级HarmonyOS 6 引入了更细粒度的权限分级,部分权限拆分为"基础"和"增强"两个层级:ohos.permission.READ_MEDIA → 拆分为 ohos.permission.READ_MEDIA(基础读取)和 ohos.permission.READ_MEDIA_V2(含元数据读取)新增 ohos.permission.SENSORS 传感器权限组,替代原来分散的各传感器权限六、总结权限声明知识图谱 ├── 声明位置 │ └── module.json5 → requestPermissions 数组 ├── 授权方式 │ ├── system_grant → 安装即授权(如 INTERNET) │ └── user_grant → 需用户确认(如 CAMERA) ├── APL 级别 │ ├── normal → 所有应用可申请 │ ├── system_basic → 系统应用可申请 │ └── system_core → 核心系统应用专属 ├── 声明字段 │ ├── name → 权限名称(区分大小写) │ ├── reason → 申请理由(user_grant 必填) │ └── usedScene → 使用场景(abilities + when) └── 最佳实践 ├── 最小权限原则 ├── reason 具体明确 ├── 位置权限成对声明 └── when 字段按需选择核心记忆口诀:声明在前,使用在后——先在 module.json5 声明,才能在代码中请求system 自动,user 手动——system_grant 自动授权,user_grant 需要运行时请求APL 匹配,等级够才行——应用 APL 必须 ≥ 权限 APLreason 要具体,when 要精确——权限理由和使用场景都不能含糊位置成对,大小写对——LOCATION 和 APPROXIMATELY_LOCATION 一起声明,权限名称严格区分大小写权限声明看似只是配置文件里几行 JSON,但它是整个权限管理体系的基石。声明错了,后面的动态申请、权限校验全都是空中楼阁。把这一步做扎实,后面的路才能走得稳。
-
6 月 13 日,G-Star Gathering Day 大连站 —— AI 助力全场景应用实践成功举行。来自开源社区、AI开发领域以及产业一线的开发者齐聚一堂,围绕 AI 基础设施、智能开发工具、开源生态建设以及 AI 商业化落地等热点话题展开深度分享与交流。从开源存储到 AI 编码,从游戏开发生态到产业级 AI 应用,本次活动不仅带来了丰富的技术实践案例,也让现场开发者看到了 AI 与开源协同发展的更多可能。AtomGit 大连站负责人、华为云 HCDG大连核心组成员 不惑为大家带来开场介绍。他围绕 AtomGit 平台及HCDG开发者社区的发展历程、G-Star 开源摘星计划以及社区生态建设进行了分享。作为面向全球开发者的 开发者社区,持续通过项目孵化、开发者运营、社区活动等方式,连接开发者与优质开源项目,推动更多优秀项目成长壮大。RustFS 核心贡献者小马哥围绕 AI 时代的数据存储需求,介绍了 RustFS 这一基于 Rust 语言开发的新一代分布式对象存储项目。分享重点解析了 RustFS 在 S3 协议兼容、纠删码架构、高可用部署、弹性扩容、安全合规以及云原生支持等方面的技术优势,并展示了其从 MinIO 平滑迁移的实践能力。通过丰富的案例和技术架构拆解,让开发者深入了解开源存储基础设施在 AI 场景下的发展趋势与应用价值。AtomGit 沈阳站主理人、GodotHub 开源社区负责人孙圣博分享了 GodotHub 社区的发展历程,以及开源视觉小说框架 Konado 的设计理念与实践成果。他重点介绍了 Konado 如何通过自定义脚本语言降低视觉小说创作门槛,并展示了 Konado 与 AtomCode 的深度结合,通过 AI Skills Plugin 实现脚本生成、语法学习和内容创作辅助,让开发者能够更高效地完成从创意到作品的开发过程。同时,他还分享了社区活动规划与生态建设愿景,展现了开源创作社区的活力与未来潜力。AtomGit 大连站负责人、华为云 HCDG大连核心组成员 不惑围绕华为云 CodeArts 代码智能体展开分享,通过 Vibe Coding、Spec-Driven 开发、MCP 工具调用、Skill 插件开发以及多智能体协作等多个实战案例,展示了 AI 在软件开发全生命周期中的应用能力。从快速生成业务系统,到驱动 Photoshop 自动处理图片,再到构建自动化开发工作流,CodeArts 正在帮助开发者从“写代码”向“驾驭智能体”转变,进一步提升开发效率与创新能力。某国企资深算法工程师王旭结合自身在 GIS、计算机视觉、三维重建和工业智能化领域多年的实践经验,分享了对 AI 商业化发展的思考。他认为 AI 的核心价值不在于是否具备真正意义上的智能,而在于能否高效解决实际业务问题。围绕教育培训、AI工具、行业知识库、智能制造等方向,他分析了当前 AI 商业化的主要机会与挑战,并提出未来开发者需要在行业认知、工程能力与 AI 工具协同之间找到平衡。在 AI 技术不断普惠的背景下,个人开发者和“超级个体”将迎来更多发展机会,而人与 AI 的协同共创也将成为未来的重要趋势。在互动交流与自由提问环节,现场开发者围绕 AI Coding、开源项目运营、个人开发者成长、AI 商业化机会等话题进行了热烈讨论。不同领域开发者的经验分享与观点碰撞,也让本次活动不仅是一场技术交流,更成为一次连接开发者与开源生态的重要聚会。从 AI 基础设施建设,到 AI 编码工具创新;从开源社区生态协同,到产业场景落地实践,G-Star Gathering Day 大连站为开发者呈现了一场兼具技术深度与产业视角的交流盛会。未来,AtomGit 将继续携手更多开源社区伙伴,在全国更多城市开展系列活动,汇聚开发者力量,共同探索 AI 与开源融合发展的无限可能。期待下一站,与更多开发者再次相聚。 🚀
-
6 月 13 日,G-Star Gathering Day 长沙站:AI 助力应用开发实践技术沙龙在智谷大创基地一楼路演厅圆满落幕。本次活动由 AtomGit 与华为云开发者发展与支持部 HCDG 联合主办,聚焦 AI 辅助开发实战,吸引了众多开发者、高校学子与技术爱好者齐聚一堂,解锁智能开发新范式。干货满满|技术分享全回顾本次沙龙全程以“理论 + 实操”为核心形式,拒绝单向输出,让参与者边学边练,真正掌握可落地的 AI 开发技能。开场致辞:链接开源与 AI 的新起点AtomGit 长沙站负责人、华为云 HCDE、好学星城创始人傅湘平为活动开场致辞,分享了 AtomGit 开源社区的生态建设理念与本次沙龙的初衷 —— 希望以长沙为支点,为本地开发者搭建技术交流与成长的平台,推动 AI 与开源技术在湖南的落地与传播。深度拆解:AtomCode 智能开发工具实战AtomGit 技术专家范嗣利带来了主题为《原生 Rust 驱动,智能提效 ——AtomCode 全能力解析与实操演练》的分享。他从 Rust 底层架构出发,解析了 AtomCode 的智能补全、代码生成、错误修复等核心能力,并带领现场开发者进行实操演练,手把手教大家如何用 AtomCode 大幅提升编码效率,解决开发中的痛点问题。云端赋能:华为云 CodeArts AI 开发实践华为云技术专家曹安康则聚焦云端 AI 开发,带来《华为云码道 CodeArts 代码智能体助力构建 AI 智能应用》主题分享。他结合真实案例,讲解了如何利用 CodeArts 代码智能体快速构建 AI 应用,让开发者直观感受到云端智能开发的便捷与高效。互动交流与惊喜抽奖在现场提问互动环节,开发者们围绕工具使用、开发难题、行业趋势等问题积极提问,两位专家逐一解答,现场讨论氛围热烈。活动尾声的抽奖环节更是将气氛推向高潮,为本次沙龙增添了不少欢乐与惊喜。活动亮点|不止是技术分享本次沙龙以“全员实操、现场答疑、同好交流”为特色,打造了一场沉浸式的技术体验:所有分享均配套实操环节,开发者自备电脑即可同步上手;专家现场 Debug,针对性解决大家在实操中遇到的问题;搭建开发者交流社群,让志同道合的伙伴在线下相遇,拓展技术人脉。本次 G-Star Gathering Day 长沙站的落幕,不是终点,而是 AtomGit 赋能开发者的新起点。未来,我们还将持续推出更多技术沙龙、开发者训练营等活动,聚焦开源、AI 等前沿领域,为开发者提供更多学习与交流的机会。感谢所有到场参与者、分享嘉宾与合作方的支持!期待下一场相遇,我们继续携手,共探技术新可能。
上滑加载中
推荐直播
-
用码道,让你的AI作品三步上朋友圈2026/08/04 周二 19:00-20:00
林华鼎-华为云AI开发者运营负责人
从入门 · 到做AI应用 · 到企业级开发。不教编程,只教用AI · 零代码、有产出、能带走、可炫耀 · 每课人人动手实操
回顾中 -
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
基于华为云码道,构建你的定制化AI搭子2026/08/14 周五 09:00-11:30
明亮-华为云开发者发展与支持部部长
本期直播将向您全面介绍华为云码道产品,并基于码道手把手教你部署自己的定制化AI陪伴搭子。
回顾中
热门标签