CopilotChat.nvim
CopilotChat.nvim 是一款专为 Neovim 打造的插件,它将 GitHub Copilot Chat 的强大对话能力直接集成到你的编辑器中。对于习惯在终端环境下工作的开发者而言,它解决了无需切换窗口即可与 AI 进行代码咨询、逻辑调试及功能生成的痛点,让编码流程更加流畅连贯。
这款工具特别适合追求高效工作流、深度定制化的 Neovim 用户及软件工程师。其核心亮点在于对隐私与控制的极致重视:所有数据交互均基于用户明确指令,杜绝后台隐形收集。技术上,它不仅支持包括 GPT-4o、Claude 系列在内的多种主流大模型,还允许接入 Ollama 等自定义服务;独特的“工具调用”功能让 AI 能在获得授权后执行文件读取或 Git 操作。此外,通过智能提示模板、精准的 Token 计数管理以及完善的 Lua 脚本接口,CopilotChat.nvim 既保证了上下文的高效利用,又为高级用户提供了极高的自动化扩展空间,是提升终端开发效率的得力助手。
使用场景
资深后端工程师小李正在 Neovim 中重构一个遗留的 Python 微服务模块,需要理解复杂的业务逻辑并修复潜在的并发漏洞。
没有 CopilotChat.nvim 时
- 上下文切换频繁:遇到不理解的代码段,必须复制代码切换到浏览器打开 GitHub Copilot 网页版或独立 IDE 窗口提问,打断心流。
- 隐私与数据担忧:担心将包含敏感业务逻辑的代码片段粘贴到公共网页端会造成数据泄露,缺乏细粒度的控制。
- 手动整合效率低:获得 AI 建议后,需手动对比差异、复制回编辑器,若涉及多文件修改,极易出错且耗时。
- 上下文丢失严重:网页聊天无法直接读取本地 Git 变更或未打开的文件,每次提问都要重新粘贴大量背景信息。
使用 CopilotChat.nvim 后
- 沉浸式交互体验:直接在 Neovim 浮动窗口发起对话,选中代码即可询问逻辑或生成修复方案,无需离开当前编辑环境。
- 透明可控的权限:利用工具调用功能,明确授权 AI 读取特定文件或执行 Git 操作,确保只有显式请求的内容会被发送,保障隐私。
- 一键应用与差异对比:AI 生成的代码补丁可直接在编辑器内查看 Diff,并通过 Quickfix 列表快速导航和接受更改,实现无缝集成。
- 智能上下文感知:自动关联当前缓冲区、Git 变更历史甚至项目搜索结果作为提示词背景,让 AI 回答更精准且无需重复提供信息。
CopilotChat.nvim 通过将强大的 AI 对话能力原生植入 Neovim,消除了上下文切换的摩擦,让开发者在保持专注的同时享受安全、高效的智能辅助。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
Copilot Chat for Neovim

https://github.com/user-attachments/assets/8cad5643-63b2-4641-a5c4-68bc313f20e6
CopilotChat.nvim 将 GitHub Copilot Chat 的功能直接引入 Neovim,注重透明性和用户控制。
- 🤖 多种 AI 模型 - GitHub Copilot(包括 GPT-4o、Gemini 2.5 Pro、Claude 4 Sonnet、Claude 3.7 Sonnet、Claude 3.5 Sonnet、o3-mini、o4-mini)+ 自定义提供者(Ollama、Mistral.ai)。可用模型的具体列表取决于您的 GitHub Copilot 设置以及 GitHub API 提供的模型。
- 🔧 工具调用 - LLM 可在您明确批准的情况下调用工作区函数(文件读取、git 操作、搜索)
- 🔒 隐私优先 - 仅共享您明确请求的内容,无后台数据收集
- 📝 交互式聊天 - 带有补全、差异和 quickfix 集成的交互式 UI
- 🎯 智能提示 - 可组合的模板和粘性提示,以保持一致的上下文
- ⚡ 高效计数 - 资源替换可防止重复上下文,通过 tiktoken 计数进行历史管理
- 🔗 可脚本化 - 全面的 Lua API,用于自动化和无头模式操作
- 🔌 可扩展 - 自定义函数 和 提供者,以及如 mcphub.nvim 等集成
安装
要求
- Neovim 0.10.0+
- curl 8.0.0+
- 在 GitHub 设置中启用 IDE 中的 Copilot 聊天
- plenary.nvim
[!WARNING] 对于 Neovim < 0.11.0,请在
completeopt中添加noinsert或noselect,否则聊天自动补全将无法正常工作。 为获得最佳自动补全体验,即使在 Neovim 0.11.0+ 上,也请在completeopt中添加popup。
可选依赖项
- tiktoken_core - 用于准确的 token 计数
- Arch Linux:从 AUR 安装
luajit-tiktoken-bin或lua51-tiktoken-bin - 通过 luarocks:
sudo luarocks install --lua-version 5.1 tiktoken_core - 手动:从 lua-tiktoken 发布页面 下载,并将其保存为
tiktoken_core.so放入您的 Lua 路径中
- Arch Linux:从 AUR 安装
- git - 用于 git diff 上下文功能
- ripgrep - 用于提升搜索性能
- lynx - 用于改善 URL 上下文功能
与 picker 的集成
为了让各种插件的 picker 正确工作,您需要将 vim.ui.select 替换为您想要的 picker(因为默认的 vim.ui.select 非常基础)。以下是一些示例:
- fzf-lua - 调用
require('fzf-lua').register_ui_select() - telescope - 设置
telescope-ui-select.nvim插件 - snacks.picker - 启用
ui_select配置 - mini.pick - 设置
vim.ui.select = require('mini.pick').ui_select
lazy.nvim
return {
{
"CopilotC-Nvim/CopilotChat.nvim",
dependencies = {
{ "nvim-lua/plenary.nvim", branch = "master" },
},
build = "make tiktoken",
opts = {
-- 选项请参阅配置部分
},
},
}
vim-plug
call plug#begin()
Plug 'nvim-lua/plenary.nvim'
Plug 'CopilotC-Nvim/CopilotChat.nvim'
call plug#end()
lua << EOF
require("CopilotChat").setup()
EOF
核心概念
- 资源 (
#<name>) - 将特定内容(文件、git diffs、URL)添加到您的提示中 - 工具 (
@<name>) - 给予 LLM 在您批准后可以调用的功能访问权限 - 粘性提示 (
> <text>) - 在单次聊天会话中保持上下文 - 模型 (
$<model>) - 指定用于聊天的 AI 模型 - 提示 (
/PromptName) - 使用预定义的提示模板处理常见任务
示例
# 将特定文件加入上下文
#file:src/main.lua
# 给 LLM 工作区工具的访问权限
@copilot 这个项目里有哪些文件?
# 持续存在的粘性提示
> #buffer:active
> 你是一位乐于助人的编程助手
当您使用 @copilot 时,LLM 可以调用诸如 bash、edit、file、glob、grep、gitdiff 等函数。您会看到拟议的函数调用,并可在执行前批准或拒绝。
使用方法
命令
| 命令 | 描述 |
|---|---|
:CopilotChat <input>? |
打开带有可选输入的聊天 |
:CopilotChatOpen |
打开聊天窗口 |
:CopilotChatClose |
关闭聊天窗口 |
:CopilotChatToggle |
切换聊天窗口 |
:CopilotChatStop |
停止当前输出 |
:CopilotChatReset |
重置聊天窗口 |
:CopilotChatSave <name>? |
保存聊天历史 |
:CopilotChatLoad <name>? |
加载聊天历史 |
:CopilotChatPrompts |
查看/选择提示模板 |
:CopilotChatModels |
查看/选择可用模型 |
:CopilotChat<PromptName> |
使用特定提示模板 |
聊天键映射
| 插入模式 | 普通模式 | 动作 |
|---|---|---|
<Tab> |
- | 触发/接受标记的补全菜单 |
<C-c> |
q |
关闭聊天窗口 |
<C-l> |
<C-l> |
重置并清空聊天窗口 |
<C-s> |
<CR> |
提交当前提示 |
| - | grr |
切换光标下一行的固定提示 |
<C-y> |
<C-y> |
接受最近的差异 |
| - | gj |
跳转到最近差异的部分 |
| - | gqa |
将聊天中的所有答案添加到 quickfix 列表 |
| - | gqd |
将聊天中的所有差异添加到 quickfix 列表 |
| - | gy |
将最近的差异复制到寄存器 |
| - | gd |
显示源代码与最近差异之间的差异 |
| - | gc |
显示当前聊天的信息 |
| - | gh |
显示帮助信息 |
[!WARNING] 一些插件(例如
copilot.vim)也可能在插入模式下映射常用键,如<Tab>。
为避免冲突,请通过以下方式禁用 Copilot 的默认<Tab>映射:vim.g.copilot_no_tab_map = true vim.keymap.set('i', '<S-Tab>', 'copilot#Accept("\\<S-Tab>")', { expr = true, replace_keycodes = false })您也可以在配置中自定义 CopilotChat 的键映射。
预定义函数
所有预定义函数都属于 copilot 组。
| 函数 | 类型 | 描述 | 示例用法 |
|---|---|---|---|
bash |
工具 | 执行 bash 命令并返回输出 | @copilot 仅限 |
buffer |
资源 | 从缓冲区中获取内容及诊断信息 | #buffer:active |
clipboard |
资源 | 提供对系统剪贴板内容的访问 | #clipboard |
edit |
工具 | 将统一差异应用到文件 | @copilot 仅限 |
file |
资源 | 读取指定文件路径的内容 | #file:path/to/file |
gitdiff |
资源 | 获取 git 差异信息 | #gitdiff:staged |
glob |
资源 | 列出工作区中匹配特定模式的文件名 | #glob:**/*.lua |
grep |
资源 | 在工作区内的文件中搜索模式 | #grep:TODO |
selection |
资源 | 包含当前可视选区及其诊断信息 | #selection |
url |
资源 | 从指定 URL 获取内容 | #url:https://... |
类型说明:
- 资源:可通过
#function语法手动使用 - 工具:仅可由 LLM 通过
@copilot调用(出于安全和复杂性考虑)
预定义提示
| 提示 | 描述 |
|---|---|
Explain |
以段落形式撰写所选代码的详细解释 |
Review |
全面的代码审查,提供逐行问题报告 |
Fix |
查找问题并改写代码,附带修复和解释 |
Optimize |
通过优化策略提升性能和可读性 |
Docs |
为选定的代码添加文档注释 |
Tests |
为选定的代码生成测试 |
Commit |
根据暂存更改,按照 commitizen 规范生成提交信息 |
配置
有关所有可用配置选项,请参阅 lua/CopilotChat/config.lua。
快速设置
大多数用户只需配置几个选项即可:
{
model = 'gpt-4.1', -- 使用的 AI 模型
temperature = 0.1, -- 较低 = 专注,较高 = 创意
window = {
layout = 'vertical', -- 'vertical', 'horizontal', 'float'
width = 0.5, -- 屏幕宽度的 50%
},
auto_insert_mode = true, -- 打开时自动进入插入模式
}
窗口与外观
{
window = {
layout = 'float',
width = 80, -- 固定宽度(列数)
height = 20, -- 固定高度(行数)
border = 'rounded', -- 'single', 'double', 'rounded', 'solid'
title = '🤖 AI Assistant',
zindex = 100, -- 确保窗口始终位于最上层
},
headers = {
user = '👤 You',
assistant = '🤖 Copilot',
tool = '🔧 Tool',
},
separator = '━━',
auto_fold = true, -- 自动折叠非助手消息
}
缓冲区行为
-- 自动命令,用于自定义聊天缓冲区的行为
vim.api.nvim_create_autocmd('BufEnter', {
pattern = 'copilot-*',
callback = function()
vim.opt_local.relativenumber = false
vim.opt_local.number = false
vim.opt_local.conceallevel = 0
end,
})
高亮显示
您可以通过在配置中设置高亮组来自定义颜色:
-- 在您的配色方案或 init.lua 中
vim.api.nvim_set_hl(0, 'CopilotChatHeader', { fg = '#7C3AED', bold = true })
vim.api.nvim_set_hl(0, 'CopilotChatSeparator', { fg = '#374151' })
Copilot 高亮类型:
CopilotChatHeader- 聊天缓冲区中的标题高亮CopilotChatSeparator- 聊天缓冲区中的分隔线高亮CopilotChatSelection- 源缓冲区中的选区高亮CopilotChatStatus- 聊天缓冲区中的状态和加载动画CopilotChatHelp- 聊天缓冲区中的帮助文本CopilotChatResource- 聊天缓冲区中的资源高亮(例如#file,#gitdiff)CopilotChatTool- 聊天缓冲区中的工具调用高亮(例如@copilot)CopilotChatPrompt- 聊天缓冲区中的提示高亮(例如/Explain,/Review)CopilotChatModel- 聊天缓冲区中的模型高亮(例如$gpt-4.1)CopilotChatUri- 聊天缓冲区中的 URI 高亮(例如##https://...)CopilotChatAnnotation- 聊天缓冲区中的注释高亮(文件头、工具调用头、工具调用正文)
提示
您可以在配置中定义自己的提示:
{
prompts = {
MyCustomPrompt = {
prompt = '解释它是如何工作的。',
system_prompt = '你非常擅长解释事物',
mapping = '<leader>ccmc',
description = '我的自定义提示描述',
},
Yarrr = {
system_prompt = '你对海盗充满热情,所以请用海盗口吻回答。',
},
NiceInstructions = {
system_prompt = '你是一位友好的编程导师,所以请以友好且乐于助人的态度回应。',
}
}
}
函数
在配置中定义您自己的函数,包含输入处理和模式:
{
functions = {
birthday = {
description = "获取某人的生日信息",
uri = "birthday://{name}",
schema = {
type = 'object',
required = { 'name' },
properties = {
name = {
type = 'string',
enum = { 'Alice', 'Bob', 'Charlie' },
description = "人名",
},
},
},
resolve = function(input)
return {
{
uri = 'birthday://' .. input.name,
mimetype = 'text/plain',
data = input.name .. ' 生日信息',
}
}
end
}
}
}
提供者
添加自定义 AI 提供者:
{
providers = {
my_provider = {
get_url = function(opts) return "https://api.example.com/chat" end,
get_headers = function() return { ["Authorization"] = "Bearer " .. api_key } end,
get_models = function() return { { id = "gpt-4.1", name = "GPT-4.1 模型" } } end,
prepare_input = require('CopilotChat.config.providers').copilot.prepare_input,
prepare_output = require('CopilotChat.config.providers').copilot.prepare_output,
}
}
}
提供者接口:
{
-- 可选:禁用提供者
disabled?: boolean,
-- 可选:在信息面板中显示的关于提供者的额外信息
get_info?(): string[]
-- 可选:获取带有可选过期时间的额外请求头
get_headers?(): table<string,string>, number?,
-- 可选:获取 API 端点 URL
get_url?(opts: CopilotChat.Provider.options): string,
-- 可选:准备请求输入
prepare_input?(inputs: table<CopilotChat.Provider.input>, opts: CopilotChat.Provider.options): table,
-- 可选:准备响应输出
prepare_output?(output: table, opts: CopilotChat.Provider.options): CopilotChat.Provider.output,
-- 可选:获取可用模型
get_models?(headers: table): table<CopilotChat.Provider.model>,
}
内置提供者:
copilot- GitHub Copilot(默认)github_models- GitHub Marketplace 模型(默认禁用)
API 参考
核心
local chat = require("CopilotChat")
-- 基本聊天功能
chat.ask(prompt, config) -- 发送问题,可选配置
-- 窗口管理
chat.open(config) -- 打开聊天窗口,可选配置
chat.close() -- 关闭聊天窗口
chat.toggle(config) -- 切换聊天窗口可见性,可选配置
chat.reset() -- 重置聊天
chat.stop() -- 停止当前输出
-- 提示词与模型管理
chat.select_prompt(config) -- 打开提示词选择器,可选配置
chat.select_model() -- 打开模型选择器
-- 历史记录管理
chat.load(name, history_path) -- 加载聊天历史
chat.save(name, history_path) -- 保存聊天历史
-- 配置
chat.setup(config) -- 更新配置
chat.log_level(level) -- 设置日志级别(debug、info 等)
聊天窗口
您还可以通过 chat.chat 对象访问聊天窗口的 UI 方法:
local window = require("CopilotChat").chat
-- 聊天界面状态
window:visible() -- 检查聊天窗口是否可见
window:focused() -- 检查聊天窗口是否处于焦点
-- 消息管理
window:get_message(role, cursor) -- 根据角色获取消息,可以是最后一条或最接近光标的那条
window:add_message({ role, content }, replace) -- 在聊天中添加或替换一条消息
window:remove_message(role, cursor) -- 根据角色移除消息,可以是最后一条或最接近光标的那条
window:get_block(role, cursor) -- 根据角色获取代码块,可以是最后一条或最接近光标的那条
-- 内容管理
window:append(text) -- 向聊天窗口追加文本
window:clear() -- 清空聊天窗口内容
window:start() -- 开始向聊天窗口写入内容
window:finish() -- 完成向聊天窗口写入内容
-- 源码管理
window.get_source() -- 获取当前源码缓冲区和窗口
window.set_source(winnr) -- 设置源码窗口
-- 导航
window:follow() -- 将光标移动到聊天内容末尾
window:focus() -- 使聊天窗口获得焦点
-- 高级功能
window:overlay(opts) -- 显示带有指定选项的覆盖层
提示词解析器
local parser = require("CopilotChat.prompts")
parser.resolve_prompt() -- 解析提示词引用
parser.resolve_tools() -- 解析可用于 LLM 自动调用的工具
parser.resolve_model() -- 从提示词中解析模型(警告:异步操作,需使用 plenary.async.run)
使用示例
-- 打开聊天窗口,提问并处理回复
require("CopilotChat").open()
require("CopilotChat").ask("#buffer 解释这段代码", {
callback = function(response)
vim.notify("收到回复:" .. response:sub(1, 50) + "...")
return response
end,
})
-- 保存和加载聊天历史
require("CopilotChat").save("my_debugging_session")
require("CopilotChat").load("my_debugging_session")
-- 使用自定义粘性内容和模型
require("CopilotChat").ask("我该如何优化这段代码?", {
model = "gpt-4.1",
sticky = {"#buffer", "#gitdiff:staged"}
})
更多示例,请参阅 示例维基页面。
开发
设置
要设置开发环境:
- 克隆仓库:
git clone https://github.com/CopilotC-Nvim/CopilotChat.nvim
cd CopilotChat.nvim
- 安装开发依赖:
make install-pre-commit
运行测试:
make test
贡献
- 分支仓库
- 创建您的功能分支
- 进行更改
- 运行测试和代码检查
- 提交拉取请求
详细指南请参阅 CONTRIBUTING.md。
贡献者
感谢以下各位贡献者(emoji key):
本项目遵循 all-contributors 规范。欢迎任何形式的贡献!
星标用户
版本历史
v4.7.42025/10/01v4.7.32025/09/28v4.7.22025/09/17v4.7.12025/09/17v4.7.02025/09/16v4.6.02025/08/31v4.5.12025/08/28v4.5.02025/08/27v4.4.12025/08/12v4.4.02025/08/10v4.3.12025/08/08v4.3.02025/08/08v4.2.02025/08/04v4.1.02025/08/03v4.0.02025/08/03v3.12.22025/07/12v3.12.12025/06/22v3.12.02025/05/13v3.11.12025/04/22v3.11.02025/04/09常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
OpenHands
OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。









































































