Eigent v1.0.4 发布说明:技能与连接器仪表板、稳定的多轮运行
在同一个界面中浏览和配置资源,让长时间运行的智能体任务可预期地完成

Eigent v1.0.4 是一次让工作区更易读的发布。技能与连接器过去是层层堆叠的设置卡片,现在成为图书馆式的仪表板,拥有真正的集合视图、详情页,以及 Home、技能与连接器共用的页面框架。
在这层界面之下,本次发布还修复了一组在任务运行时间变长后才暴露出来的问题:模型多轮调用之间指令丢失、任务在空间内克隆仓库后检查点失败、连接器显示的状态与真正执行它的运行时不一致,以及应用在最后一个窗口关闭后没有干净退出。
🧩 作为管理仪表板的技能与连接器
管理一个技能,不应该意味着在设置页面里不停滚动,直到找到正确的卡片。
感谢 @Douglasymlai 在 PR #1896 中将技能与连接器重建为集合与详情界面,也感谢 @4pmtong 的评审。
技能现在是一个图书馆式仪表板。每个技能都能打开专属详情页,显示它的来源、拥有的访问权限、是否启用,以及包含哪些文件。连接器遵循同样的模型:集合总览、添加与浏览流程,以及带有图标、名称、来源和安装或保存操作的资料页头部。
新增内容:
- 技能库仪表板 — 以集合方式浏览技能,而不是一叠设置卡片
- 技能详情视图 — 来源与访问标签、启用状态和文件浏览器集中在一处
- 连接器集合与发现 — 从浏览可用连接器到完成配置的路径更清晰
- 连接器详情头部 — 图标、名称、来源与安装或保存操作以资料页形式呈现
- 详情侧边栏 — 相关上下文始终停留在你正在查看的资源旁边
真正的差别在于可检视性。你可以在起始页面内回答“这个技能从哪来、它能访问什么、里面有什么”。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1896
🏠 Home、技能与连接器共用同一页面框架
当你每天都要在同一个应用里穿行时,一致性本身就是功能。
v1.0.4 将 Home 与设置统一到一个页面框架上,由共享基础组件构成——集合工具栏、面包屑、内容栏和侧边栏返回头部。Home 的列表、空状态和空间详情标签页,现在与技能和连接器采用同一套集合布局。
改进内容:
- 共享布局 — Home、技能与连接器使用相同的头部、面包屑和阅读栏
- 一致的集合列表 — 中心列表与空间详情标签页遵循同一种布局模型
- 更清晰的空状态 — 未配置的界面会自我说明,而不是显示一块空白面板
- 可预期的导航 — 面包屑与返回头部在任何位置行为一致
一旦页面框架统一,在 Home、空间、技能和连接器之间切换就不再需要重新认识每个页面。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1896
🔁 能保住指令的多轮智能体工作
一个长任务是一连串轮次,而每一轮都需要同样的可信指令。
感谢 @4pmtong 在 PR #1883 中修复了 Responses API 链式请求上的 Prompt Guard 失败问题。
链条中的第一个请求是成功的,这也是这个回归一直没被发现的原因。后续请求复用了 previous_response_id,但顶层 instructions 不会自动传递——于是可信的智能体提示词会在运行中途悄悄消失。
修复内容:
- 每个请求都带指令 — 可信的智能体提示词通过 Responses API
instructions在每一轮发送,而不只是第一轮 - 不再重复提示内容 — system 与 developer 条目在提升为
instructions后从输入中移除,避免重复 token 和重复计费 - Prompt Guard 保持完整 — 针对不可信提示词的既有拒绝消息予以保留
这类缺陷只有在长度足够时才会显现。短任务看起来一切正常,故障其实藏在第三轮。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1883
🧰 具有动态参数结构的工具
并非每个工具都有固定的形态,严格的结构校验不应该拒绝那些没有固定形态的工具。
感谢 @fengju0213 在 PR #1897 中将 camel-ai[eigent] 升级到 0.2.91a7 并刷新了后端锁文件。
新的 CAMEL 版本包含了带开放映射的工具参数所需的严格结构回退机制。有了它,PlanningWorktreeToolkit.planning_exit_plan_mode 得以保留其结构值 additionalProperties,并以 strict: false 发出,从而在保留该工具真正需要的动态字典字段的同时,避免提供商侧返回 400。
带有开放式参数的工具现在可以在强制严格结构的提供商上正常工作,而不会在调用时失败。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1897
🌿 Git 支持的空间中的嵌套仓库
v1.0.3 为空间带来了 Git 版本历史。v1.0.4 让这份历史在任务于空间内克隆仓库时依然成立。
感谢 @4pmtong 在 PR #1902 中为工作区检查点提供了嵌套仓库支持。
Git 会把未跟踪的嵌套仓库报告为单个目录条目,例如 ?? child-repository/。检查点流程会把该路径归一化为 child-repository,导致克隆完成之后路径校验失败——工具结果被标记为未知,运行随之失败。
修复内容:
- 嵌套仓库是独立边界 — 经过验证的未跟踪嵌套 Git 根目录被排除在父级检查点与状态归属之外
- 不隐式修改 gitlink 或忽略文件 — 不会为了容纳子仓库而悄悄重构父仓库
- 父级状态保持不变 — 检查点完成时 HEAD、状态令牌与已跟踪路径均不受影响
- 子仓库内容完好 — 嵌套仓库及其提交得以保留
- 工作树安全性保留 — 当隔离工作树中仍存在未合并的嵌套仓库时不会被清理
把仓库克隆进空间是再普通不过的智能体工作。本次发布之后,它不会再终结整个运行。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1902
🔌 与运行时一致的连接器状态
一个报告错误状态的连接器,比什么都不报告更糟糕。
来自 @4pmtong 的两项修复分别应对同一问题的两个方向。
网页搜索在需要配置时反而被隐藏。 对于默认模型为自定义模型的用户,在启用 Querit 或配置 Google Search 凭据之前,网页搜索都被视为未连接——而连接器总览会过滤掉所有未连接的内置连接器。由于该行同时也是进入其设置面板的入口,受影响的用户根本无法完成配置。网页搜索现在会保持可见,并显示真实状态未连接,而托管模型仍保持既有的已连接状态。其他未连接的内置连接器的过滤行为保持不变。
Slack 在未连接时却显示已连接。 在托管模式下,设置界面把本地 Slack 配置组的存在当作有效连接,但托管任务通过 Connector Gateway 执行 Slack 操作——而同一用户在那里可能根本没有 Slack 连接。结果是先看到已连接标记,随后在运行时收到找不到连接的错误。新用户流程由 Connector Gateway 拥有的内置连接器,现在遵循集中策略:启用 Gateway 时,内置 Slack 会从连接器页面、聊天连接器选择器和新建 Worker 的工具选择中隐藏。禁用 Gateway 时,内置 Slack 仍可用于纯本地运行时。
无论哪种情况,既有的 Slack 工具包执行、已存配置、已保存的 Worker 兼容性与 Slack 触发器凭据都会继续工作。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1890
🔗 PR: https://github.com/eigent-ai/eigent/pull/1892
🖥️ 最后一个窗口关闭时干净退出
关闭应用就应该结束应用。
感谢 @4pmtong 在 PR #1891 中修复了退出生命周期。关闭唯一的窗口现在会在所有平台上干净地退出 Eigent,本地后端也随之关闭。
修复内容:
- 统一的退出路径 — 原生窗口关闭、窗口关闭 IPC 与关闭窗口菜单命令全部走同一条受保护的
quit-app流程 - macOS 在最后一个窗口时退出 —
window-all-closed现在在 macOS 上也会触发退出,与 Windows 和 Linux 一致,因此before-quit能清理本地后端 - 安全拆解 — 保留绑定的
webContents引用,而不是从已销毁的BrowserWindow中读取 - 跳过已销毁对象 — 已销毁的窗口与 web contents 不再执行监听器移除,协调器引用在拆解前先行清空
开发者也享受同样的收益:npm run dev 现在会正常终止,而不是在窗口关闭后留下一个仍在运行的后端。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1891
🧹 可靠完成的网页生成任务
有些网页生成任务无法终止。原因最终被证明是两件事叠加。
感谢 @4pmtong 在 PR #1907 中提供的发布安全修复。
Eigent 不再需要把生成内容上传到旧版远程部署服务,因此 Web Deploy Toolkit 从 Workforce 开发者智能体与单智能体组装中移除,部署相关描述也从开发者智能体提示词、Workforce 协调器描述和工作流能力清单中删去。仍然请求 web_deploy.enabled=true 的旧版工具包配置会被忽略。web_deploy_toolkit.py 及其历史渲染支持仍保留在代码库中以备将来使用。
第二个原因是时间。终端后台清理的检查点预算从 5 秒提高到 30 秒,让已停止的预览服务器有足够时间释放写入租约,并在运行收尾前完成工作区 Git 检查点。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1907
⚙️ 面向贡献者的更快护栏
缓慢的 CI 是对每一位提交拉取请求的人征税。
前端护栏作业过去经常耗时 20 到 30 分钟,因为它会在禁用缓存的情况下,为基线提交和拉取请求提交各跑一遍完整的 Vitest 套件,然后针对本就包含已知失败与 29 秒超时的基线重试失败用例。
感谢 @4pmtong 在 PR #1898 中用聚焦运行器替换了这套全量对比。
改进内容:
- 变更测试运行器 — 只执行本次变更新增或修改的前端测试文件
- 快检先行 — 类型、Electron、设计系统与格式检查在 Vitest 之前运行
- 取消被取代的运行 — 新的推送会取消同一拉取请求或分支上此前的 Test 工作流运行
- 更短的超时 — 前端护栏预算从 30 分钟降到 15 分钟
在针对 PR #1891 所合并变更的回放中,变更测试运行器在 1.07 秒内执行了 4 个测试文件、134 个测试。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1898
🔁 既有工作的兼容性
升级到 v1.0.4 后,既有的空间、会话、任务、技能设置、已保存的 Worker 和连接器配置仍然可用。默认体验无需额外配置。
纯本地集成得到明确保留。当 Connector Gateway 被禁用时,内置 Slack、已保存的 Worker 与 Slack 触发器继续工作,且两种模式下已存的 Slack 配置都不会被改动。
❤️ 一个能自我说明的工作区
Eigent v1.0.4 带来:
- 技能成为图书馆式仪表板,具备来源、访问权限、启用状态与文件详情视图
- 连接器成为集合、发现与资料详情流程
- 共享页面框架,让 Home、技能与连接器拥有一致的面包屑、侧边栏、内容栏与空状态
- 可信的智能体指令在 Responses API 链式轮次中得以保留,且不重复提示内容
- 对具有动态参数结构的工具提供严格结构兼容性
- 工作区检查点将嵌套 Git 仓库视为独立边界
- 网页搜索在仍需配置时保持可被发现
- Slack 通过真正会执行它的连接器路径呈现
- 最后一个窗口关闭时应用与本地后端干净退出
- 更可靠的网页生成任务完成与后台进程清理
- 前端 CI 护栏从半小时缩短到几分钟
这次发布的主题是可读性。仪表板告诉你一个技能能访问什么。连接器状态告诉你哪个运行时会执行它。检查点告诉你哪个仓库拥有某项变更。而长时间运行的任务,会一直保有它开始时的指令。
能被检视的工作,才是能被信任的工作。
🔗 发布版本: https://github.com/eigent-ai/eigent/releases/tag/v1.0.4
🔗 完整变更日志: https://github.com/eigent-ai/eigent/compare/v1.0.3...v1.0.4
让我们继续构建。
Recent Posts

Meta Muse:能预订、购物和谈判的个人 AI 智能体
Meta Muse 是一款个人 AI 智能体,可通过对话完成旅行预订、商品购买和账单谈判。本文介绍其功能、定价、安全机制及横向对比。

Claude Fable 5.1 与 Mythos 5.1:新功能详解
Claude Fable 5.1 与 Mythos 5.1 详解:同一模型的两个安全防护层级,附最新基准测试成绩、约 25% 至 45% 的成本降幅及访问方式说明。

Gemini 3.8 Flash:编程与 AI 智能体的全新升级
Gemini 3.8 Flash 在保持与 3.7 Flash 相同低价的前提下,大幅提升了编程能力和智能体推理能力,并推出全新的 3.8 Flash Cyber 变体。本文涵盖基准测试、定价及使用方法。