Skip to content

Repository files navigation

Codext Agent

基于 Electron、React 和 TypeScript 的 Windows 桌面 ReAct AI Agent 一期工程。

已实现

  • Electron 安全窗口与 context-isolated IPC
  • 标准 ReAct:Reason → Skill → Act → Validate
  • ReAct 输出协议校验与自动纠正,兼容 JSON、Thought/Action/Action Input 文本及 OpenAI tool_calls
  • 工具参数分级恢复:字段别名与类型标准化、安全默认值、当前任务唯一值补全、精简上下文定向修复、歧义路径用户确认及重复修复熔断
  • 模型首包和 SSE 流停顿检测,自动降级非流式请求;重试共享总超时预算并显示状态
  • 保留当前工具 Observation、附件和写入内容供后续轮次使用,超出预算时优先压缩较早的历史与重复结果
  • 按当前任务隔离模型上下文:完整会话仅用于本地展示,模型只接收一个相关任务片段;历史附件仅在明确追问时复用,成功任务不再携带旧工具轨迹
  • Token 感知的分级上下文压缩:达到可用输入预算 80% 后压缩至约 62%,保留当前请求和最新 Observation,并在 UI 标记完成状态
  • OpenAI 兼容 chat/completions 适配与演示模式
  • 本地配置、任务历史持久化,以及模型配置面板
  • 多模型配置档案、默认模型管理,以及会话级模型切换
  • 内置 Word/Excel 本地解析工具和 PPT MCP 处理服务
  • 内部文件解密工具,已验证支持 txt、csv、pdf、docx、xlsx、pptx
  • TypeScript、ESLint、Vitest、构建与 Windows 打包脚本

运行

npm install
npm run dev

Office 文档与 PPT MCP

当前支持直接上传现代 Office OOXML 格式:.docx.xlsx.pptx。上传的 Office 附件会安全保存到工作区的 .codext-attachments 目录。

  • Word 和 Excel 分别由本地 parse_wordparse_excel 工具解析。
  • PowerPoint 由内置 PPT MCP 的 parse_powerpoint 工具解析。应用在 127.0.0.1:3777 启动 Streamable HTTP MCP 服务,并在每次连接和工具发现前在对应会话消息流中请求用户“允许一次”。
  • PPT Processing Service 使用 officeparser 提取幻灯片结构、文本和备注。环境中存在 LibreOffice 时会报告渲染能力;不可用时自动跳过。OCR Vision 当前关闭,不影响结构和文本提取。
  • 文本、CSV 或 Office 文件出现 NUL、乱码、异常二进制内容或解析失败时,Agent 会先调用 decrypt_file,将解密副本保存回工作区,再使用返回的 output_path 继续读取或解析。原文件不会被覆盖。

调用链如下:

Electron/React -> ReAct Agent -> GPT API -> 单次用户确认 -> PPT MCP -> PPT Processing Service

会话工作区

每个会话可以选择独立工作区。未设置覆盖路径时,会话直接继承全局配置中的工作目录;选择会话目录不会修改全局配置,使用“恢复全局目录”即可重新继承默认值。附件、文件工具、Office 解析、解密和 PPT MCP 均使用当前会话的有效工作区。切换工作区时,已落盘的会话附件会复制到新目录。

会话附件会持续保存并自动加入后续请求,但发送后不会继续占用输入框附件区域;模型请求失败或应用重启不会清除附件状态。旧版本会话会从最近一条含附件的用户消息自动恢复该状态。

设置页可以保存多个 OpenAI 兼容模型配置,并指定一个默认模型。聊天输入区底部可以为当前会话选择独立模型;选择“跟随默认模型”时,后续请求会自动使用当前默认配置。模型切换只影响切换后的新任务,不会改变正在运行的任务。

当任务存在多个互斥执行方案时,Agent 会在当前消息流中显示单选列表和“确认选择”按钮。用户确认后,选择结果会回到同一次 ReAct 任务中继续执行,不需要再发送一条对话消息。

使用 npm run verify 执行类型、规范、测试和构建校验;使用 npm run package:win 输出 NSIS 与便携版 Windows 安装产物。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages