Skip to content

fankaidev/coding-agents

Repository files navigation

Coding Agents

这个项目聚合了多个开源的coding agent项目,用于学习和评估。 每个子项目都作为 submodule 添加到当前项目中。

Coding Agents 分析框架

  • 项目结构和框架:分析项目的编程语言和框架、代码目录结构、核心模块等信息
  • 交互方式:评估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,本地化能力 多语言支持,声音输入功能,设计与执行分离,自动学习能力,多代理协作系统

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published