这个项目聚合了多个开源的coding agent项目,用于学习和评估。 每个子项目都作为 submodule 添加到当前项目中。
- 项目结构和框架:分析项目的编程语言和框架、代码目录结构、核心模块等信息
- 交互方式:评估agent与用户的基本交互界面和方法,包括命令行、IDE集成、独立GUI等
- 基本流程:分析agent的核心工作流程,从接收指令到完成任务的处理步骤
- 上下文管理:考察agent如何维护和处理代码上下文,包括文件系统、代码理解和记忆,以及如何从交互中学习并优化自身行为
- 工具使用:评估agent集成和使用外部工具的能力,如版本控制、Lint工具、编译器等
- 模型选择:分析agent的模型使用策略,包括单模型架构、多模型协作及模型切换机制
- 安全策略:评估agent的安全机制,包括代码执行权限、文件访问限制和敏感信息处理
- 执行效果:分析agent完成任务的质量、速度和可靠性
- 成本控制:考察agent如何优化计算资源和API调用成本的策略
- 可扩展性:考察agent如何支持新的语言、框架或工具的能力
- 调试能力:分析agent自我诊断问题和修复错误的能力
- 其他特性:评估agent的其他独特功能或设计理念
- 使用完整的语言来描述各个维度的特性,避免使用高度概括性的描述
- 关注核心流程,周边功能适当精简
- 对于关键的流程或者特性,适当添加代码实例或者文件链接
- 提及代码文件的时候,要使用Markdown链接,比如 base_coder.py
- 项目中的术语不要翻译
- 尽量使用无序列表,便于后续编辑
| 维度 | aider | cline | OpenHands | codex | anon-kode | auto-coder |
|---|---|---|---|---|---|---|
| 实现方式 | 基于Python的命令行工具,专注于结对编程体验 | 作为VSCode扩展实现,深度集成IDE环境 | 独立平台,同时支持Web界面和多种运行模式 | 基于TypeScript的终端CLI工具,使用React/Ink构建丰富命令行界面 | 轻量级终端AI编码助手,支持任何OpenAI兼容API的模型 | 基于Python的多模式AI编程助手,由Byzer-LLM提供支持 |
| 交互体验 | 通过命令行进行交互,使用"/命令"系统控制工作流,支持语音输入和外部编辑器监视 | 在VSCode中提供图形化界面,支持图像上传、差异视图和文件编辑,实现无缝IDE体验 | 提供多种交互模式,包括Web界面、CLI和无头模式,支持GitHub Action自动化和API集成 | 命令行REPL环境,支持多种批准模式,提供结构化差异视图和审查机制 | 命令行聊天界面,使用"/命令"控制系统,支持细粒度权限控制和MCP集成 | 支持聊天、命令和服务多种交互模式,提供插件系统和丰富的命令补全 |
| 上下文管理 |
代码知识图谱:构建Repository Map,使用networkx分析代码依赖关系 智能重要性排序:应用PageRank算法识别核心组件,优先处理关键代码 多级缓存系统:维护标签缓存、树缓存和映射缓存,基于文件修改时间更新 Git记忆机制:每次修改自动提交,提交信息包含修改意图,形成可检索的知识库 |
语法结构分析:使用tree-sitter解析AST,深入理解代码结构和语义 检查点系统:在关键步骤创建工作区快照,支持比较和回溯 文件系统索引:建立工作区文件索引,识别关联文件和依赖 上下文压缩:智能截断和组织上下文,优化token使用效率 |
文件系统映射:构建结构化项目表示,识别关键配置和依赖 微代理知识体系:根据关键词触发特定领域知识,动态加载相关指南 任务记忆持久化:通过memory模块维护短期和长期记忆,在相关任务间传递知识 项目特定化:通过.openhands目录加载仓库特定指南,应用团队约定 |
项目文档集成:自动加载项目的codex.md文件作为上下文 多级配置管理:支持全局和项目级设置 沙箱执行环境:安全隔离的命令执行 Git集成:自动检测仓库状态,提供变更安全网 |
会话管理:完整记录对话历史和工具执行结果 权限上下文:项目级别权限配置和授权记忆 命令安全分析:自动识别安全和危险命令 持久化记忆:跨会话保存和恢复交互状态 |
检索增强生成:支持向量和文本混合搜索 多层级记忆系统:短期、中期和长期记忆管理 项目知识图谱:自动分析项目结构和依赖 事件驱动通信:基于事件的组件间协作 |
| 工具集成 |
版本控制:自动Git提交、差异查看和撤销 代码质量:运行linter和测试,提供修复 系统工具:执行shell命令,捕获输出 多媒体:处理图像和PDF文件作为设计参考 |
编辑器工具:精确文件编辑、代码补全 终端集成:执行命令并监视输出流 浏览器自动化:点击、输入、截图、读取控制台 诊断整合:自动检测并修复编译/lint错误 |
沙箱执行:在Docker环境中安全运行代码和命令 网络工具:通过browsergym进行浏览器自动化 版本控制:管理Git仓库、分支、PR和issue 开发工具:代码linting、测试运行、依赖管理 |
文件操作:安全的文件读写和修改 Shell执行:在平台特定沙箱中运行命令 Git集成:版本控制和变更管理 多媒体处理:支持图像输入和视觉理解 |
文件工具:读取、编辑、创建和搜索文件 终端工具:安全的命令执行和输出捕获 记忆工具:持久化信息存储和检索 MCP工具:支持Model Context Protocol互操作 |
代码生成:智能补全和重构 索引搜索:基于语义和文本的代码检索 版本控制:Git操作和变更管理 插件系统:可扩展的工具和命令集 |
| 安全机制 | 实现文件访问控制和代码路径验证,支持只读模式查看敏感文件,使用Git安全检查防止意外覆盖 | 采用"Human-in-the-loop"设计,所有操作需用户确认,提供代码审核机制和检查点回滚功能 | 使用Docker沙箱隔离执行环境,实现细粒度访问控制,安全管理API密钥,严格验证用户输入 | 多级批准模式系统(suggest/auto-edit/full-auto),OS级沙箱隔离(macOS Seatbelt/Linux Docker),网络访问控制 | 细粒度权限系统,命令级别授权控制,安全命令自动识别,工作目录隔离,无遥测数据收集 | 通过.autocoderignore配置排除敏感文件,模型过滤机制防止信息泄露,命令执行安全和版本控制安全网 |
| 扩展能力 | 通过插件式设计和可扩展编辑器框架支持功能扩展,可添加新的编辑策略 | 利用Model Context Protocol (MCP)创建自定义工具,支持多语言开发,提供本地化界面 | 基于微代理架构实现领域专用知识和工作流扩展,支持多种部署方式,可集成到CI/CD流程 | 模型提供商系统支持多种LLM,沙箱执行环境可扩展到不同平台,灵活的配置系统 | 模块化工具系统,命令扩展机制,MCP集成能力,提供商抽象支持多种模型 | 插件系统,事件驱动架构,自定义代理扩展,YAML配置系统,RAG存储后端扩展 |
| 特色功能 | 架构师模式支持两个模型协作(设计与实现分离),丰富的命令系统(40+命令),智能历史摘要 | 浏览器自动化支持端到端测试,检查点系统允许比较和恢复工作区,@提及语法快速添加上下文 | 微代理系统分为知识型、任务型和仓库型,完整的评估框架,支持多种交互模式满足不同场景需求 | 终端优先设计,网络隔离沙箱执行,跨平台支持,CI/CD友好的非交互模式 | 细粒度权限控制,命令系统,MCP服务器支持,跨平台终端UI,本地化能力 | 多语言支持,声音输入功能,设计与执行分离,自动学习能力,多代理协作系统 |