← 返回项目

NeoCode

本地优先的 AI Coding Agent,在真实工作区中理解代码、调用工具并完成开发任务。

进行中

开源协作 · Web/桌面端与 Agent 交互链路

代表成果将 Agent 能力接入 Web 与 Electron,并补齐文件回退撤销和会话交互。

  • Go
  • React
  • Electron

产品介绍

NeoCode 是一个在本地开发环境中运行的 AI Coding Agent。开发者可以围绕真实项目提出任务,由 Agent 读取代码、调用工具、执行命令,并在同一会话中查看过程和继续交流。项目支持多模型、会话持久化、记忆、Skills 与 MCP 工具扩展。

它通过 Gateway 连接交互端与 Agent 运行时,让同一套能力可以服务终端、Web 和桌面应用。使用者从选择工作区、提出任务开始,再查看工具执行与文件变更,决定是否接受结果。NeoCode 是多人共同建设的开源项目,我的贡献集中在 Web/桌面体验及其与运行时之间的衔接。

我负责的内容

建立 Web 与桌面交互入口

我提交了 Web 前端与 Electron 桌面应用的实现,覆盖聊天、模型选择、工具调用卡片、文件面板和权限审批。前端使用 React 与 TypeScript,通过 WebSocket 连接 Gateway;桌面端补充窗口管理、原生能力桥接和打包配置,让 Agent 不只通过终端使用。

补齐会话与工作区的衔接

我参与扩展 Gateway 的会话、文件和模型接口,并持续修复会话切换竞态、工作区内容串线和文件预览边界问题。这些工作服务于一个具体目标:切换任务之后,用户看到的消息、文件与执行状态仍属于当前工作区。

让文件回退可以撤销

我补齐了文件级回退的 Undo 能力。回退前先保存本次涉及路径的保护快照,再在界面提供「撤销回退」入口;撤销只恢复这次操作涉及的文件。这样,用户检查 Agent 修改时,可以在误回退之后恢复,而不需要重新生成整份改动。

改进记忆提取与可见状态

我参与将自动记忆提取收敛到当前一轮执行的消息范围,并加入创建、更新和跳过的语义决策,限制自动更新只作用于自动提取的记忆。同时修复 Web 端记忆指令、上下文压缩状态和会话回放等交互,让运行时能力能够被正确使用和理解。

最终成果

截至 2026 年 9 月 14 日,上述代表性贡献已通过公开 PR 合入项目。Web 与桌面入口让开发者可以直观看到对话、工具执行和文件变化;文件回退撤销与工作区隔离修复,则完善了检查结果和恢复操作的体验。

对我而言,这段协作的主要产出是把界面、协议和运行时行为连起来:一个按钮背后有明确的操作范围,一次状态更新能回到正确的会话。产品完整能力由团队共同完成,本页列出的个人工作可通过下方 PR 查看。

相关链接

这个项目,存好了。

SOUNDS OF SUMMERFirst Light ParticlesYoiyami
0:000:00
你的夏日歌单

曲目已以 CC0 奉献至公共领域。