跳至主要内容

AI 助手

在 ChatGPT 中打开

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

AI 仍可能犯错误

与运行中的应用程序对抗并编译自己的输出,使得代理的准确性显著高于那些盲目编码的代理。它仍然可能出错。请在您保留之前审阅它所做的工作。

它编写 Java​

代理并不局限于您手动可以进行的属性更改。描述一个问题,它就为此编写代码,添加方法,改变逻辑,并根据任务的需要重构视图。

它所编写的每一项编辑都是暂存的,而不是直接写入磁盘。暂存的编辑直接通过真实的 Java 编译器进行处理,代理读取返回的诊断结果,并在更改提供给您之前修复自己的错误。最终送到您审阅的代码已经能够在您的运行应用程序中编译。

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

应用更改会导致您的应用重启。代理等待重启,重新连接,并在离开的地方继续它的计划,因此跨越多个编辑和重启的任务顺利完成。

它逐步工作​

您给代理一个目标,而不是命令。它会制定计划,检查所需的一切,采取行动,检查结果并自我修正,在一次运行中进行多个步骤,而不需要您驱动每一个步骤。每一步在发生时都会出现在记录中,您可以展开任何一步以查看代理调用的具体内容以及返回的结果。

它能到达的范围​

代理拥有一个大型工具集,覆盖 craftforJ 所了解的您应用程序的所有内容,包括:

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

由于它通过 craftforJ 到达所有这些功能,它使用的信息与您的一致。它读取真实值,而不是您的源代码所暗示的值。

审批​

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

  • 在行动前询问 - 每一个有影响的动作都会暂停以等待您的批准。
  • 自动应用编辑 - 代理可以自由工作,但在移除任何内容或运行脚本之前仍会询问您。
  • 自主运行 - 代理在无需停止的情况下工作。

当代理需要询问时,请求会在记录中内联显示,以及它想要采取的行动,您可以选择允许一次或在整个对话中保持这一权限。

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

如果您是代理的新手,建议开始时让它询问所有事情。在您观看其工作后,允许它应用自己的编辑可以减少大多数中断,同时让重大决策留给您。

在对话中与应用程序合作​

代理根据需要读取所需内容,而不是一次性接收您整个应用程序,而 craftforJ 会向您展示与对话关联的内容。您可以直接从树中交给它一个组件,或者在对话中间从页面上挑选一个。对于有关某一事物外观的问题,代理可以截取组件的截图。这需要一个可以接受图像的模型。

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

截图携带您应用在那一时刻显示的任何数据。在您指向一个针对真实数据运行的应用程序的托管模型之前,请考虑这一点。

配置模型​

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

模型选择器展示了不同模型之间的区别,包括您应用和对话同时适应的程度、对话的成本,以及模型是否接受图像或在回答之前进行推理。一个不能调用工具的模型可以进行对话,但无法检查或更改任何内容。

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

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

对话​

对话是按应用程序进行的,代理可以查看早期的对话当问题涉及您之前的工作时。当对话超出模型的上下文时,craftforJ 会对较旧的消息进行总结,以便工作继续,而不是失败,并在聊天中注明这一点。

当工作超出 craftforJ 的范围时,您可以总结对话并将其交给您编辑器的助手。该助手使用安装的 webforJ AI 插件 更准确地接手工作。

关闭它​

ai.enabled 属性会完全从 craftforJ 中移除助手。ai.freeform-changes 属性则保留助手,但停止它自主编写 Java。

继续学习

webforJ 团队

需要帮助吗?

与 webforJ 的工程师聊聊您的项目。

预约通话

我们支持EN · DE · FR · ES