跳至主要内容

AI Assistant

在 ChatGPT 中打开

craftforJ 包含一个完整的编码代理,能够在您的 运行中的应用 内工作。它自由地编写 Java,编译其所编写的内容,在您看到之前应用更改,并在应用重启后继续工作。它所做的一切都是针对您面前实际运行的应用,而不是根据您代码库的猜测。

AI 仍然可能犯错

针对运行中的应用工作并编译自己的输出使得代理的准确性相较于盲目编写的代理大大提高。它仍然可能出错。在您保留其修改之前,请仔细检查它的工作。

它编写 Java

该代理不限于您手动可做的属性更改。描述一个问题,它会为其编写代码,添加方法、修改逻辑,并根据任务要求重构视图。

它所编写的每个编辑都是暂存的,而非直接写入磁盘。已暂存的编辑直接传递给真实的 Java 编译器,代理读取返回的诊断信息,并在更改提交给您之前修正自己的错误。您审核的代码是已针对您正在运行的应用编译的代码。

完整的验证需要 JDK。在 JRE 上,craftforJ 将回退到解析代码,标记编辑为未验证,并指示代理表明这一点,而不是将其作为已检查的内容呈现。

应用更改会重启您的应用。代理等待重启,重新连接,然后从中断处继续计划,因此跨越多个编辑和重启的任务会顺利完成。

它分步工作

您给代理一个目标,而不是一个命令。它会计划、检视需要的内容、采取行动、检查结果并自我纠正,在一次操作中执行多个步骤,而无需您逐个驱动。每个步骤在发生时都会出现在文本记录中,您可以展开任何步骤以查看代理调用的内容及其返回的结果。

它能达到什么

代理拥有覆盖 craftforJ 知道的关于您的应用的所有内容的大型工具集,包括:

  • 您的组件 - 实时树、真实属性值以及构建每个组件的 Java。它可以更改属性、移除组件,并在页面上高亮显示一个组件。
  • 您的源代码 - 阅读项目根目录下的任何文件,暂存编辑,显示差异并应用它们。
  • 您的路由 - 路由表、活动路由、导航至任何地方,并更改在路由上声明的访问规则。
  • 您的主题和样式 - 读取和设置设计令牌、保存主题,并搜索可用的字体和图标。
  • 页面本身 - 在实时页面上注入 CSS 和 JavaScript,并截图组件以供查看。
  • webforJ 知识库 - 和 webforJ MCP 服务器 为您的编辑器提供的相同文档、组件样式表面及 --dwc-* 令牌工具。它是内置的,始终可用。

因为它通过 craftforJ 到达这一切,所以它使用的是与您相同的信息。它读取真实值,而非您的源代码暗示的值。

批准

您在前期决定代理可以自主执行多少操作:

  • 行动前询问 - 每个具有影响的操作都会停止,等待您的批准。
  • 自动应用编辑 - 代理自由操作,但仍会在删除某个内容或运行脚本之前询问。
  • 自主运行 - 代理不停止地工作。

当代理询问时,请求会在文本记录中以其想要采取的操作的形式出现,您可以选择一次性允许或在剩余的对话中持续允许。

助手在采取行动前询问,文本记录中显示

如果您是代理的新用户,请开始时让它对所有内容都进行询问。一旦您观看了它的工作,允许它应用自己的编辑将减少大部分干扰,同时将重要的决策留给您。

在对话中与应用工作

代理根据需要读取所需内容,而不是一次性获得整个应用,craftforJ 向您显示与对话相关的内容。您可以直接从树中传递组件,或在对话中间从页面中选取一个。对于有关某些内容外观的问题,代理可以对组件进行截图。这需要一个接受图像的模型。

屏幕截图包含任何屏幕上显示的内容

屏幕截图包含您应用在那个时刻显示的所有数据。在将托管模型指向运行真实数据的应用之前,请考虑这一点。

配置模型

craftforJ 不自带任何模型,因此您选择运行它的模型。为支持的提供者添加 API 密钥,或将 craftforJ 指向本地运行的模型。您的密钥存储在运行您应用的机器上,助手仅在页面打开时将其保存在内存中,而不会存储在浏览器存储中。它直接通过浏览器与您选择的提供者沟通,而不是通过您的服务器,与其他任何人都不进行沟通。

模型选择器显示了一个模型与另一个模型的区别,包括一次能容纳多少您的应用和对话、对话的成本以及模型是否接受图像或在回答之前进行推理。不能调用工具的模型可以进行对话,但不能检查或更改任何内容。

模型选择器展示可用模型的区别

本地运行模型可将所有内容保留在您的机器上。本地模型通常默认使用较小的上下文窗口,而关于真实应用的对话很快就会填满,因此给模型尽可能多的上下文。

对话

对话是按应用保留的,当问题提到您之前完成的工作时,代理可以回顾早期的对话。当对话超出模型的上下文时,craftforJ 会总结旧消息,以便工作继续进行而不会失败,并在聊天中注明。

当工作超出 craftforJ 的能力时,您可以总结对话,并将其交给编辑器的助手。那个助手在安装了 webforJ AI 插件 的情况下更准确地接手工作。

关闭它

ai.enabled 属性会将助手完全移除出 craftforJ。ai.freeform-changes 属性保留助手,但不允许其自行编写 Java。