介绍 VS Code、Cursor 和 Windsurf的Entelligence AI 扩展的推出引入了一个 IDE 内代码审阅器,它甚至可以在您打开拉取请求之前提供即时反馈。
Entelligence AI 扩展
在本文中,我们将详细分析Entelligence AI与Cursor (BugBot)的对比。无论您专注于深度代码审查、快速修复还是简化工作流程,您都能找到适合您风格的工具,并了解 Entelligence AI 为何可能正是您所需要的。
Entelligence AI 是什么? Entelligence.AI是您团队的 AI 驱动型工程智能平台,可简化开发流程、增强协作并提高工程效率。它就像您代码库的“安静伙伴”,帮助您的团队在不改变工作方式的情况下保持一致。
它无需您遵循新流程,而是支持日常任务,例如审查拉取请求、入职培训和跟踪团队绩效。它旨在处理那些经常被忽略的重要事项。
它还尊重您的隐私,您的代码永远不会用于培训,并且您可以在需要时自行托管它。
Entelligence AI VS 代码扩展⛵
BugBot 是什么? BugBot是 Cursor 内置的工具,用于审查 GitHub 上的拉取请求。安装后,它会自动运行(或在您通过 提交请求时运行bugbot run),并扫描您的 PR 中是否存在潜在的 bug 或问题。
工作原理如下:
拉取请求检查:每次您打开或更新 PR 时,BugBot 都会审查更改的代码并对任何可能的错误留下评论。
快速修复流程:如果 BugBot 发现某些问题,它会添加一个“在光标中修复”链接,单击它即可打开预先加载问题上下文的编辑器。
灵活的设置:您可以将其设置为始终运行或仅在调用时运行,并决定是否在未发现问题时显示结果。
团队设置: Repo 管理员可以为每个 repo 启用或禁用它、设置成本限制并管理跨团队的权限。
BugBot 是 Cursor 1.0 版本的一部分,提供 7 天免费试用。试用期结束后,需要订阅 Cursor 的 Max 模式。
BugBot 界面
比较:Entelligence AI 与 Cursor 的 BugBot 选择一款能在 IDE 中运行的代码审查工具可能很棘手,尤其是在多个工具乍一看感觉相似的情况下。为了方便起见,我们在一个名为“我应该这样做吗?”的简单 React 应用中测试了Entelligence AI和Cursor 的 BugBot。
它使用开放的 API 和基本的异步逻辑,因此我们可以检查每个工具如何处理实际代码:获取请求、错误处理、组件结构和异步错误。
我们并没有进行广泛的探讨,而是关注实际开发过程中真正重要的事情,而不仅仅是登陆页面上的内容。
代码审查 Entelligence AI和Cursor 的 BugBot之间的一个主要区别是它们允许您检查代码。
智能人工智能 使用 Entelligence,您无需等待提交拉取请求。它会直接在编辑器中审核您的更改,因此,即使在代码离开分支之前,您也能随时获得建议。
我们在故意写得很糟糕的fetchAnswer.js函数上测试了这一点。
const fetchAnswer = async () => { try { const url = 'yesno.wtf/api';
const config = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': '*/*',
'Cache-Control': 'no-cache',
'Pragma': 'no-cache',
},
redirect: 'follow',
referrerPolicy: 'no-referrer'
};
let result, data;
try {
result = await fetch(url, config);
} catch (networkErr) {
console.log('Maybe the internet is down? Or maybe not.');
console.error(networkErr.message || 'Some error happened');
result = null;
}
if (!result) {
console.warn('Fetch result is empty or undefined or null or broken');
return { answer: 'maybe', image: 'https://placekitten.com/200/200' }; // placeholder nonsense
}
if (result.status === 200 || result.status === 201 || result.status === 204) {
try {
data = await result.json();
} catch (jsonError) {
console.log('JSON might be corrupted or evil');
console.error(jsonError);
return { answer: 'error-parsing-json', image: '' };
}
if (!data || typeof data !== 'object') {
console.log('Data is not what we expected, but let's just go with it');
return { answer: '¯\_(ツ)_/¯', image: '' };
}
if (data && Object.keys(data).length > 0 && data.answer && data.image) {
return {
answer: `${data.answer}`,
image: `${data.image}`
};
} else {
console.log('Something was missing, but let's not worry too much');
return {
answer: 'almost',
image: 'https://http.cat/404'
};
}
} else {
console.warn('Status was weird: ', result.status);
return {
answer: 'uncertain',
image: 'https://http.cat/500'
};
}
} catch (err) { console.error('Global meltdown', err); return { answer: 'panic', image: 'http.cat/418' }; } };
export default fetchAnswer; Entelligence 指出:
不必要的控制台日志使代码混乱
使用letfor urlwhenconst更合适
过度使用模板字面量(例如${data.answer}when )data.answer会很好
错误处理 HTTP 状态代码,例如将204“无内容”视为200
它不仅突出显示了这些问题,还提供了内联修复建议。您可以直接接受更改,无需额外步骤,也无需单独的审核窗口。
Entelligence AI 内联建议
即使在提出 PR之后,Entelligence 也不会停止提供帮助。
它总结了拉取请求。
提供PR 所包含内容的演练,包括有用的序列图。
您可以使用👍/👎表情符号提供反馈,以帮助它了解您的评论偏好。
如果 PR 看起来不错,它会自动用LGTM 👍评论
它显示已启用的审核设置,并允许您直接在 Entelligence AI 仪表板中自定义它们
您甚至可以在仪表板内跟踪分析数据,例如有多少 PR 处于打开、合并或审核状态,以及团队贡献的总体质量。
BugBot 使用 Cursor 的 BugBot,您需要先发起拉取请求。然后,BugBot 会自动审查代码(如果启用),或者您也可以通过评论手动运行它bugbot run。
对同一个文件运行该程序时,BugBot 标记了以下内容:
冗余数据验证
控制台消息随意且不一致
使用不必要的字符串插值
令人困惑的 HTTP 状态逻辑
BugBot评论
BugBot 提供了详细且结构化的反馈,并包含一个“在 Cursor 中修复”按钮,点击后即可打开 Cursor,并准备应用更改。它运行良好,但由于需要 PR 或评论,导致反馈循环略微缓慢。
简而言之:
Entelligence AI会在您编码时提供反馈,并在提交拉取请求后继续提供帮助,包括摘要、图表和可自定义的评审。它旨在在整个工作流程中始终陪伴您。
BugBot也给出了很好的建议,但只有在您提出拉取请求或手动触发后才会启动。
错误检测 代码审查之后,下一个重大考验是错误检测,特别是这些工具能够多快多深入地发现那些经常在运行时或生产时才发现的小问题。
为了测试这一点,我们创建了一个简单但有缺陷的 React 组件:AnswerBox.jsx。
import React from 'react';
const AnswerBox = ({ answer }) => { return ( <div style={{ textAlign: 'center', padding: 20, fontFamily: 'sans' }}>
Your answer is:
{answer.answer || 'No answer available yet'}
{answer.image ? ( <img src={answer.image} alt="answer" width="300px" height="auto" style={{ marginTop: 20, border: '3px dashed purple', borderRadius: 4, boxShadow: '0px 0px 20px rgba(0,0,0,0.2)', objectFit: 'coverd' }} /> ) : ( <p style={{ color: '#888' }}>No image provided )} ); };export default AnswerBox; 它看起来无害,但却充满了容易被忽视的小逻辑缺陷、可访问性问题和样式错误。
Entelligence AI 的检测 Entelligence AI 在我们编写文件时提供了实时建议,无需等待拉取请求。它立即指出:
不正确的 CSS 属性- 发现objectFit: 'coverd'并指出'cover'一个常见但棘手的拼写错误。
无效的字体系列- 已捕获fontFamily: 'sans'并正确推荐'sans-serif'。
可访问性问题- 将其标记alt="answer"为过于模糊,并建议为屏幕阅读器提供更有意义的替代文本。
性能建议- 强调图像不是延迟加载的,这可能会影响较慢连接上的性能。
内联样式反馈- 建议从内联样式切换到可重复使用的 CSS 模块或样式组件,以实现更好的可维护性。
错误处理——提到当图像加载失败时没有后备行为。
响应式设计差距- 警告修复width: "300px"可能会破坏跨屏幕尺寸的响应性。
Prop 安全- 注意到组件没有使用 PropTypes 验证 props,这可能会在大型应用程序中引起运行时问题。
这些建议在提出任何 PR 之前就提出了,从而节省了审核时间,并且使得在问题出现时更容易解决。
Cursor(BugBot)评测 为了获得 BugBot 的建议,我们首先需要提交 PR。提交后,BugBot 会分析差异,并留下一份实用的评论,其中包含以下几条建议:
发现了同样的objectFit: 'coverd'打字错误。
注意到无效字体并将其更正为'sans-serif'。
标记缺失的 PropTypes甚至分享如何定义它们。
建议避免使用内联样式并建议外部化 CSS。
警告缺少 answer道具可能导致的崩溃并建议采取后备处理措施。
提供了一个简洁的重构版本的组件,使用了更好的结构、错误处理和可访问性。
这两种工具都标记了关键问题,但真正区别在于它们何时以及如何标记。
如果您喜欢在错误发生之前就发现它们,Entelligence AI 更适合您的日常工作。而对于专注于结构化代码审查检查点的团队来说,Cursor 则是一道坚实的安全网。
代码生成和修复 作为 PR 流程的一部分,我尝试了一些不同的方法。我没有进行任何修改,而是在一个文件中添加了这个占位符,看看他们是否理解我需要在这个文件中添加什么。
添加一个包含“是”、“否”和“可能”选项的下拉菜单。只有当用户的选择与获取的 API 响应匹配时,才会显示答案和图片。
这是观察Entelligence AI和Cursor在审查和贡献实时代码更改时的行为的绝佳机会。
光标 Cursor 不仅仅是进行编辑。它从头编写了整个功能,包括获取 API 响应、管理用户选择、处理加载和错误状态,以及仅在匹配时显示答案/图像。www.chinaqicheng.com
游标代码生成
{apiResponse && userSelection && userSelection === apiResponse.answer && (
API Answer: {apiResponse.answer}
光标处理:
API 集成
下拉状态逻辑
匹配条件
加载+错误边界
简洁的内联样式和可访问性
智能人工智能 Entelligence AI 采取了一种更渐进的方法。它没有采用端到端的方式构建功能,而是扫描现有组件,并以 diff 风格插入满足新条件所需的逻辑。
智能AI代码生成
-
const [selectedOption, setSelectedOption] = React.useState("yes");
-
{answer.answer.toLowerCase() === selectedOption && ( <>
{answer.answer.toUpperCase()}
</> )} 它运行速度很快,但不像 Cursor 那样具备完整的用户流程感知能力。它没有 API 获取,没有用户加载或错误反馈,也没有结构化的回退机制。
Entelligence AI 处理:
本地下拉逻辑
条件渲染
最低限度的情境感知
差异优先建议模式
文档生成 在保持文档更新方面,Entelligence AI发挥主导作用并在后台默默地完成这项工作。
自动和内联更新 一旦 PR 合并或代码库发生变更,Entelligence 就会自动更新相关文档。无论是函数、组件,甚至是新添加的文件,该工具都会读取代码,理解上下文,并实时更新相关文档。
无需切换标签页或打开单独的工具。您还可以使用简单的命令从 IDE 手动触发更新:
/updateDocs 最棒的是?它没有锁定。您可以轻松修改生成的文档以适合您的语气、添加注释或扩展上下文,而无需从头开始编写。
游标的限制 Cursor 目前不提供自动或辅助文档生成功能。虽然它可以在您明确要求的情况下帮助您撰写注释,但它不会跟踪更改,也不会随着项目的发展而维护最新的文档。您仍然需要自行编写和管理文档,这可能会导致文档随着时间的推移而过时、不一致或缺失。
您应该选择哪一个? 特征 智能人工智能 光标(BugBot) 代码审查时间 编码时在编辑器中即时使用 PR 提升或手动触发后 错误检测 实时,在您输入时捕获错误 PR 后,有帮助但延迟 代码修复和建议 差异风格,根据上下文快速编辑 完整实现,内联且干净 情境感知 高,了解组件结构,标记可访问性和样式 中等,抓住关键问题,但整合不够深入 文档生成 使用 Markdown 支持自动更新文档(/updateDocs) 没有内置文档支持 易于使用 无缝、极简设置、始终在线 很好,但大多数行动都依赖于 PR 最适合 需要快速、持续反馈和严密文档的开发人员/团队 偏好结构化、PR 后代码审查流程的团队 / 开发人员 超越代码审查 处理文档、入职、团队见解等 仅限于代码建议和评论 如果您喜欢紧密的反馈循环,在PR之前发现错误,并希望自动生成文档,那么Entelligence AI显然是您的最佳选择。
如果您的团队采用PR-first 工作流程,并且您希望在编辑器内重写完整的代码,那么Cursor(和 BugBot)仍然是一个不错的选择。
了解有关 Entelligence AI 代码审查扩展的更多信息:
检查文档
结论 Entelligence AI和Cursor都为您的编码工作流程带来了强大的 AI 火力,但方式却截然不同。
Entelligence AI就像一位默默无闻的资深工程师,在您编写代码时帮您审查、修复和记录代码。对于那些希望保持高效、尽早发现错误并以最小的开销维护项目健康的开发人员来说,它是理想的选择。
Cursor (BugBot)就像一个结构化的审阅者,会在你完成后介入。它反应灵敏、实用,并且能够编写出优秀的代码,但你需要提交 PR 或手动触发它才能从它的洞察中获益。
在代码快速发展的世界里,拥有一个可以随着你的思维过程而成长的工具,而不仅仅是你的差异,会带来很大的不同。
如果你每天都在构建,Entelligence 就像你的合作伙伴。光标就像你的审阅者。
选择适合您团队节奏的。 以上内容由企业信息服务平台提供,致力于工商信用信息查询、企业风险识别、经营数据分析。访问官网了解更多:www.mytiesarongs.com