codecamp

Atoms 项目聊天

与 Atoms 聊天来构建你的应用

开始任务、叠加修改,并在中断后从上次离开的地方继续。本页还介绍了消息上可用的所有操作,以及当出现问题报告时该怎么做。

在聊天中与你的智能体团队一起构建

聊天面板是你和你的智能体完成工作的地方。用日常语言说出你的需求,团队会处理剩下的事情。作为你的团队负责人,Mike 会读取请求,将其转化为具体的任务简报,并通过 @ 提及转交给合适的专家,例如工程师 Alex。整个交接过程都会在你眼前进行,因此你始终知道是谁在做什么。

聊天不仅用于构建请求。你也可以询问某项功能为什么会这样工作、某个术语是什么意思,或者团队刚刚改了什么,你都会直接在对话中得到答案。

开始一个任务

在聊天底部的提示词框中输入内容,然后按 Enter。重点描述你想要的结果,而不是如何实现它:

帮我创建一个用于推广我的医疗设备的落地页。

发送后,工作会立即变得可见。Mike 会发布一张标有“已处理 N 个步骤”的活动卡片。展开它即可逐步查看活动说明。

随后 Mike 会写出详细的任务简报:包括版块、约束条件和质量规则,然后通过 @ 提及将其委派给专家。你将看到完整的简报,以及专家接受交接的过程:

Mike 在项目聊天中将落地页构建任务分配给 Alex。

Mike 在项目聊天中将落地页构建任务分配给 Alex。

实时跟进工作进展

每条智能体回复都会附带一张活动卡片。展开后,你可以看到每一步的活动说明,以及用于执行具体操作的工具卡片,例如读取文件、编写代码、运行终端命令、生成图片或检查渲染后的页面。

Alex 展开的活动卡片显示了带说明的步骤和工具操作。

Alex 正在完成一次构建:每一步都有说明,而像“读取文件”和“生成图片”这样的工具卡片会准确展示发生了什么。

当任务结束时,收尾回复会总结变更内容以及验证方式。例如,一张版本卡片,如“版本 1:发布上线主视觉区块”,会固定交付的构建结果,这样你项目中的每个里程碑都有一个可供回溯的名称。

Mike 已完成的构建总结,附带版本 1 卡片。

Mike 已完成的构建总结,附带版本 1 卡片。

随时追加修改

迭代并不需要从头开始。直接发送下一条跟进消息即可:只描述差异,团队就会在现有内容基础上应用修改:

我需要主题改成绿色。

即使智能体仍在忙碌时,你也可以发送跟进消息。它不会打断当前工作:消息会在队列中等待,并在当前任务完成后立即运行。当消息位于队列中时,你仍然可以控制它:

  • 如果你想在运行前优化措辞,可以编辑它。
  • 如果你改变主意了,可以删除它。
  • 如果后面的请求应该优先执行,可以调整队列顺序。

版本 1 下方有一条将主题改为绿色的跟进请求。

版本 1 刚刚交付——而一项后续修改已经在路上了。

这条跟进请求会经历与任何任务相同的流程:Mike 将其转化为有范围界定的任务简报,专家执行并验证,结果则作为下一个版本交付:

Mike 的版本 2 回复确认了绿色主题更新。

后续修改已交付:版本 2 应用了绿色主题,同时保持其他内容不变。

中断任务并继续

如果你在构建过程中意识到忘了某个重要内容,不必干等,也不必丢弃已有工作。

  1. 在智能体工作时停止生成。到目前为止已完成的内容都会被保留。
  2. 输入你遗漏的内容:细节、约束条件或修正项。
  3. 再次提交。Mike 会将新信息整合进更新后的任务简报中,团队会从当前状态继续,而不是从零开始重建。

停止 Alex 的任务后输入了一项新需求。

在 Alex 构建到一半时停止,以补充一项遗漏的需求:“这些设备主要与心脏相关。”

Mike 更新后的任务简报包含了新的心血管设备需求。

重新提交后,Mike 发布了一份反映新细节的更新简报,工作随即恢复。

你可以对每条消息执行的操作

聊天中的消息不只是文本。每条消息下方都有一排操作,让你无需输入任何文字也能进行处理。

在智能体消息上

  • 还原(返回箭头): 将项目回滚到该消息所做更改之前的状态。使用前请先确认目标版本,并查看可能会被移除的内容。
  • 复制: 复制消息文本,方便保存说明或摘要。
  • 有帮助 / 没帮助: 用点赞或点踩为交付结果评分,告诉团队这次结果是否符合预期。
  • 更多选项(…): 打开额外操作,包括反馈(当出现问题时直接联系支持团队的渠道)。
  • 活动卡片: 展开或折叠“已处理 N 个步骤”,查看进度细节以及回复背后的工具。
  • 版本卡片: 附加在已完成任务上的具名构建版本。
  • 身份标签: 每条消息都会显示发言者是谁,例如 Mike | Team Leader、Alex | Engineer,因此多智能体协作始终易于跟踪。

在你自己的消息上

  • 它们显示在聊天右侧,使你的请求在视觉上与团队回复区分开来。
  • 你可以随时发送消息:如果团队空闲,它会立即运行;如果任务正在进行中,它会加入队列。

问题报告:检查并从问题中恢复

构建过程中可能会出现问题。问题报告可帮助你检查故障并选择恢复路径。当智能体遇到问题时,屏幕左下角会出现问题报告通知。

通知会提供什么

  • 对出错情况的简短描述。
  • 一个 解决 按钮,可让 AI 尝试分析已报告的问题并应用修复。
  • 一个展开控件,可在右侧面板中打开完整的问题报告详情:错误日志、堆栈跟踪和系统信息,让你在采取行动前先了解故障情况。

你可以选择“解决”来尝试修复,也可以先阅读问题报告详情再决定。

高亮显示了“解决”和展开控件的问题报告通知。

问题报告卡片:中间是蓝色的“解决”按钮,右侧是展开控件。

场景 1:页面卡住了,而且没有“解决”按钮

如果页面冻结或停止响应,并且没有出现问题报告,请手动报告:

  1. 打开与你的智能体的聊天。
  2. 点击其最新消息上的“…”(更多选项)。
  3. 选择“反馈”,并附上你的 Chat Link 和问题截图。

这会直接发送给支持团队,他们会直接跟进处理。

场景 2:你能看到“解决”按钮

第 1 步 — 点击“解决”

点击一次“解决”。AI 智能体会尝试分析已报告的错误并应用修复。等待本次尝试完成,然后在继续之前查看结果。

点击一次,然后等待。 在一次尝试完成前反复点击“解决”会生成重复的修复任务,并拖慢整体速度。

第 2 步 — 检查结果

修复完成后,预览会自动刷新。如果看起来没有变化,请先刷新你的浏览器——通常是缓存未更新导致的。

第 3 步 — 如果问题仍然存在

打开右侧面板中的错误日志查看技术细节。如果修复超出了你想自行处理的范围,请交给支持团队:

  1. 打开与你的智能体的聊天,并在最新消息上点击“…” → 反馈。
  2. 附上你的 Chat Link 和错误截图。
  3. 支持团队会进行调查,并与你一起处理直到问题解决。

完整参考: 问题报告 — Atoms 帮助中心。

FAQ

本 FAQ 中使用的术语:预览 是编辑器内查看当前项目状态的视图。最新版本 是最新保存的构建;上一个可用版本 是你最近一次确认可正常使用的构建。已发布站点 或 线上站点 是部署后访客看到的内容。要获取 Chat Link,请打开相关聊天,并在联系支持之前从聊天的分享菜单或更多选项菜单中复制其链接。

团队仍在工作时,我可以发送新请求吗?

可以。新消息会进入队列,并在当前任务完成后按顺序运行。在排队消息开始运行之前,你可以编辑、删除它,或将它在队列中前移或后移。

我在任务进行到一半时停止了,工作会丢失吗?

不会。你停止之前已完成的内容都会被保留。补充遗漏的细节后再次提交,团队会从当前状态继续。

我该如何撤销某条消息带来的更改?

使用该智能体消息下方的返回箭头操作,将状态还原到更改之前。确认目标版本,查看将被移除的内容,然后用更清晰的说明重新发送你的请求。

我点击了“解决”,但错误仍然存在。现在怎么办?

先检查右侧面板中的错误日志。如果你仍然卡住,请在智能体的最新消息上使用“…” → 反馈,并附上你的 Chat Link 和截图,支持团队会接手处理。

如果我在任务进行中关闭了浏览器,会怎样?

在你关闭浏览器期间,任务可能会继续在云端运行。返回后,请检查任务状态并查看最新结果;如果你需要停止后台工作,请重新打开项目,并在可用时选择“停止”。

当 AI 智能体停止响应时,我该怎么办?

请使用以下基于症状的恢复路径;避免反复发送相同的提示词:

  1. 如果能看到问题报告,请展开问题报告详情,并在选择 解决 一次之前先查看错误。
  2. 如果任务仍在运行,请选择 停止 一次,并等待状态稳定。
  3. 如果页面已冻结,请刷新页面或在新标签页中打开项目,然后检查任务状态。
  4. 如果输出重复或错误,请查看 预览 和最新版本。保留可用结果,或从上一个可用版本使用 克隆。
  5. 如果出现模型错误,或多个项目都受到影响,请记录可见详情并查看 Atoms 状态页面。

如果问题持续存在,请联系支持,并提供 Chat Link、最后一条提示词、可见状态、截图、时间和时区,以及影响范围。请移除密码、tokens 和其他敏感信息。

为什么智能体会陷入循环或重复自己?

  1. 使用上面的通用恢复路径:停止正在进行的运行,查看预览和最新版本,然后在结果不可用时使用克隆。

如果在完成该路径后循环仍然出现,请联系支持,并提供 Chat Link、重复的操作、最后一条提示词、时间和时区,以及截图。不要包含密码、tokens 或敏感值。

为什么智能体没有按照我的指示执行?

当智能体忽略或误解你的指示时,请尝试以下四个步骤:

1. 优化你的提示词 —— 表达要清晰、具体。使用明确标准(例如,“将主按钮背景色改为 #0055FF,并在移动端视图中居中显示”,而不是“优化按钮”)。

2. 使用 Design Mode —— 切换到 Design Mode,并直接点击你想修改的 UI 组件。这样可确保智能体只对该特定元素应用更改。

3. 拆分复杂任务 —— 一次只提示一个更改,验证结果后,再继续下一个需求。

4. 提供预期与实际截图 —— 截取实际结果的截图,并分享预期结果的参考图。视觉对比能让智能体立即更清楚地理解需求。

智能体说它完成了,但实际上什么都没变。发生了什么?

  1. 打开最新版本,将已更改的页面或文件与你请求的结果进行比较。
  2. 如果预览是正确的,但已发布站点仍是旧内容,请打开 Publish 并选择 更新。等待部署完成后,再对线上站点执行强制刷新。
  3. 如果只是你的浏览器显示了旧内容,请使用强制刷新或无痕窗口。
  4. 如果没有任何相关更改,请重试,并明确说明具体页面、元素、预期结果、受保护区域和验收标准。

如果智能体反复报告成功,但没有对应的更改,请联系支持,并提供 Chat Link、目标页面、预期结果与实际结果、版本号以及截图。

为什么智能体会忘记我在对话前面告诉它的内容?

过长或用途混杂的对话线程可能会让较早的需求影响力变弱。在一个自然的检查点上,从上一个可用版本使用 克隆,并用一段简短的交接说明开始新线程:

  • 目标和当前状态
  • 已完成的工作
  • 必须保持不变的要求
  • 重要的文件、页面或截图
  • 唯一的下一项任务及其验收标准

在继续之前,先验证新线程中的第一个结果。将无关工作分到不同线程中,这样智能体就不必协调彼此冲突的指令。

AI 智能体当前有哪些能力和限制?

智能体可以帮助创建和修改应用 UI、实现有范围界定的行为、处理已连接的服务,并利用你提供的项目上下文调查错误。当目标、约束条件和预期结果都表达明确时,它的效果最佳。

智能体无法保证会推断出未明确说明的需求,也无法保证每一次生成的更改都正确,或外部生产服务始终健康可用。在过长或用途混杂的线程中,它也可能丢失重要上下文。

为了获得可靠结果,请一次只给出一个可验证的任务,保护任何不能更改的内容,查看预览和最新版本,测试重要流程,并在发布前确认安全、计费和生产数据相关更改。

智能体没有响应,我怀疑模型过载了。我该怎么办?

智能体无响应本身并不能证明模型过载。请使用上面的通用恢复路径;如果多个项目或模型都受到影响,请查看 Atoms 状态页面。否则,请检查结果后重试一个更小的请求,或从上一个可用版本使用 克隆。

如果问题持续存在,请联系支持,并提供 Chat Link、模型、最后一条提示词摘要、时间和时区、截图以及影响范围。请移除机密提示词数据和敏感信息。

我的任务似乎卡住了,而且页面冻结了。我该如何恢复?

对于页面冻结的情况,请使用上面的通用恢复路径:刷新页面或在新标签页中打开项目,检查任务状态,如果运行仍处于活动状态则选择 停止。如果仍然冻结,请联系支持,并提供完整的 Chat Link、账户邮箱、截图、发生时间以及最后一条成功的消息。

如果页面仍然冻结,请提供完整的 Chat Link、账户邮箱、截图、发生时间以及最后一条成功的消息。

我看到了模型错误。这是什么意思?

  1. 记录准确的错误文本或代码、所选模型、任务、项目和时间。然后重试一次,或从上一个可用版本使用 克隆;不要反复提交相同请求。

如果错误持续存在,请联系支持,并提供准确的代码、Chat Link、模型、复现步骤和已脱敏截图。请移除密码、tokens、私人数据和机密提示词内容。

Atoms 构建
Atoms 提示词指南
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Atoms 协作

Atoms 分享与克隆

Atoms 工作区协作

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }