Commit Graph
18 Commits
Author SHA1 Message Date
EastonJiangandCursor 11f38624cd fix+perf: 绘图中文字体修复、进度自动跟踪、未验证配置刷爆日志 (#102)
* fix: 加固 Docker matplotlib 中文字体配置

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: 提前读取路径

* perf: 进度时间线与代码执行区自动跟踪最新消息

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: 未验证模型配置直接启动任务时无限重试刷爆日志

- 前端保存配置时始终推送到后端,不再依赖验证通过
- 后端 workflow 入口预校验四个 Agent 的 model/apiKey
- _validate_config 改抛 LLMConfigError 避免被 JSON 重试捕获
- coordinator/modeler 的 JSON 解析重试加上限 (MAX_JSON_RETRIES=3)

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:31:33 +08:00
Guobin ZhangandGrey e9de237ea7 fix: matplotlib 中文方块——font_manager 旧缓存导致 SimHei 注册失效 (#74)
* fix: 透传 reasoning_content,修复 DeepSeek/MiMo thinking 模式下的 400 错误

API 开启 thinking 模式时,返回的 reasoning_content 必须在下一轮请求中原样
带回。当前代码丢弃了该字段,导致后续调用 100% 返回 400 错误,重试机制陷入
无限循环。修复内容:
- StandardResponse 新增 reasoning_content 字段
- OpenAIChatProvider 从响应中提取该字段
- 各 Agent 构建 assistant 消息时携带 reasoning_content
- agent.py 基类同时补上遗漏的 tool_calls 写入

* fix: matplotlib 中文方块问题——初始化脚本清除字体缓存 + prompt 增加 addfont 注册

- local/e2b interpreter: 注册字体前清除 matplotlib 字体缓存并重建 font_manager,
  回退链加入 macOS 系统中文字体 (Heiti SC, STHeiti, PingFang SC)
- coder prompt: sns.set_theme() 之前增加 font_manager.addfont() 步骤,
  确保 LLM 生成的每段代码主动注册字体,不依赖初始化脚本

* refactor: 精简字体修复——prompt 移除冗余 addfont,补充工程约束意识

- coder prompt 撤回 addfont 注册步骤(内核初始化已处理),避免重复 token 消耗
- modeler/coder prompt 新增:优化类问题的工程约束铁律(变量物理上下界、Q4 绳长限制)
- modeler/coder prompt 新增:EDA 按题型区分——机理题不做描述性统计

---------

Co-authored-by: Grey <grey@Greys-MacBook-Air.local>
2026-05-16 19:14:36 +08:00
MuWinds ac57ad0c18 refactor: 重构 LLM Provider 模式、WebSocket 重连、图表字体跨平台兼容 (#70)
LLM 层重构:
- 将 LLM 调用层重构为 Provider 模式,支持多 API 类型
- 新增 Anthropic、OpenAI Chat、OpenAI Responses 三种 Provider
- 新增 LLM 类型定义和工厂类

WebSocket 重连:
- 添加指数退避自动重连机制(初始 1s,最大 30s,最多 10 次)
- 区分手动关闭与意外断开,仅意外断开触发重连
- 在任务页面顶部添加连接状态指示灯(绿/黄/红)

图表字体跨平台兼容:
- 在 backend/fonts/ 存放 SimHei 字体文件
- create_work_dir() 自动复制字体到任务工作目录
- 两个解释器从工作目录动态加载字体
- E2B 移除 apt-get install 依赖,改用上传字体文件
- 统一三处字体优先级配置

其他:
- 重构注释规范、修复类型错误、添加 lint hook
- 更新 CLAUDE.md 项目文档
2026-05-15 10:04:47 +08:00
Jiangming ZhongandClaude Opus 4.7 7b849c4a8f feat: 默认开启 RAG/HIL、修复类型问题、添加升级教程 (#69)
* feat: 新增 Web Search、RAG 知识库、HIL 人机协作、Feedback 容错机制

- Web Search: Tavily API 搜索互联网获取真实数据,注册为 search_web 工具
- RAG 知识库: ChromaDB + Rerank 检索建模方法、代码模板、论文写作参考
- HIL 人机协作: 关键节点暂停等待用户审批,支持 6 种决策动作
- 统一工具注册: tool_registry 替代 if/elif 硬编码分发
- Fallback Hand Off: 主 LLM 故障时自动切换备用模型,新建实例避免状态污染
- 有限重试: 所有 Agent 有明确重试上限,不再无限循环
- Evaluator Shadow Mode: 独立 LLM 评估输出质量,记录日志
- Feedback Rerun: 评估不通过时注入反馈重跑,先 Writer 后 Coder
- 双向 WebSocket: 客户端可发送决策消息到后端

* docs: 添加升级说明文档并更新 README 功能列表和后期计划

- UPGRADE2.md: Web Search + RAG 知识库 + HIL 人机协作升级说明
- UPGRADE3.md: Feedback Loop + Hand Off 容错机制升级说明
- README.md: 功能特性新增 4 项,后期计划标记 5 项已完成

* feat: 默认开启 RAG/HIL、修复类型问题、添加升级教程

- 默认开启 RAG_ENABLED=True 和 HIL_ENABLED=True,开箱即用
- 修复 response.py pyright 类型问题(msg_type override)
- 修复 knowledge_retriever.py ChromaDB metadata 类型转换
- 添加 升级说明.md 完整教程(Web Search / RAG / HIL / Fallback / Evaluator)
- 更新 README.md 添加新功能配置段落
- 预置所有功能配置到 .env.dev

* feat: 默认开启 RAG 和 HIL 功能

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat: 新增 Web Search、RAG 知识库、HIL 人机协作、Feedback 容错机制

- Web Search: Tavily API 搜索互联网获取真实数据,注册为 search_web 工具
- RAG 知识库: ChromaDB + Rerank 检索建模方法、代码模板、论文写作参考
- HIL 人机协作: 关键节点暂停等待用户审批,支持 6 种决策动作
- 统一工具注册: tool_registry 替代 if/elif 硬编码分发
- Fallback Hand Off: 主 LLM 故障时自动切换备用模型,新建实例避免状态污染
- 有限重试: 所有 Agent 有明确重试上限,不再无限循环
- Evaluator Shadow Mode: 独立 LLM 评估输出质量,记录日志
- Feedback Rerun: 评估不通过时注入反馈重跑,先 Writer 后 Coder
- 双向 WebSocket: 客户端可发送决策消息到后端

* docs: 添加升级说明文档并更新 README 功能列表和后期计划

- UPGRADE2.md: Web Search + RAG 知识库 + HIL 人机协作升级说明
- UPGRADE3.md: Feedback Loop + Hand Off 容错机制升级说明
- README.md: 功能特性新增 4 项,后期计划标记 5 项已完成

* feat: 默认开启 RAG/HIL、修复类型问题、添加升级教程

- 默认开启 RAG_ENABLED=True 和 HIL_ENABLED=True,开箱即用
- 修复 response.py pyright 类型问题(msg_type override)
- 修复 knowledge_retriever.py ChromaDB metadata 类型转换
- 添加 升级说明.md 完整教程(Web Search / RAG / HIL / Fallback / Evaluator)
- 更新 README.md 添加新功能配置段落
- 预置所有功能配置到 .env.dev

* Delete UPGRADE2.md

* Delete UPGRADE3.md

* fix: RAG 和 Web Search 改为默认关闭,减少用户配置负担

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 20:31:56 +08:00
Jiangming Zhong d5428a2a2e feat: 新增 Web Search 工具 + 统一 tool_registry 分发 (#68)
主要功能:
- Web Search: Tavily API 搜索互联网获取真实数据,注册为 search_web 工具
- 统一工具注册: tool_registry 替代 if/elif 硬编码分发
- Evidence 数据模型: DataEvidence 结构化搜索结果

编排层(workflow.py)集成:
- Web Search 初始化与动态工具注册
- RAG 知识库检索与注入
- HIL 人机协作检查点
- Fallback Hand Off 容错机制
- Evaluator + Feedback Rerun 质量保障

新增配置:TAVILY_API_KEY / SEARCH_ENABLED / SEARCH_CACHE_TTL
所有功能均有独立开关,未配置时行为与升级前一致。
2026-05-13 14:13:58 +08:00
MuWinds 5305754f0b refactor: 重构注释规范、修复类型错误、添加 lint hook 和 CLAUDE.md (#66)
- 后端按 Google Python Style Guide 重构注释,修复 ruff 和 pyright 错误(161→0)
- 前端按 Vue.js Style Guide 重构注释,修复 biome 错误
- 添加 PostToolUse lint hook(ruff + biome 自动检查)
- 更新 CLAUDE.md 覆盖 Commands/Testing/Structure/CodeStyle/GitWorkflow/Boundaries
- 修复 tsconfig.json 废弃的 baseUrl 配置
2026-05-11 23:02:39 +08:00
Sanjin aac34a1efd feat: 添加 OpenAlex API Key 支持并更新相关配置 2026-04-24 22:32:45 +08:00
Sanjin 49c5d6349a update readme , simplify config 2025-09-02 23:19:47 +08:00
Sanjin 57b7f55e78 fix bug
fix bug
2025-06-24 23:30:18 +08:00
Sanjin d00e613d21 Merge branch 'main' into codex/修复拼写错误和代码问题 2025-06-06 14:28:26 +08:00
Sanjin 9e8b5d79c9 fix docs and interpreter, update tests 2025-06-06 14:25:40 +08:00
Sanjin 275585b2c7 Fix return type in interpreters and update tests 2025-06-06 14:21:23 +08:00
Sanjin abb17af5a6 update
update
2025-05-19 20:31:56 +08:00
Sanjin db5f46987f modify
modify
2025-05-17 18:28:45 +08:00
Sanjin 621402525c feat: add right paper cite
feat: add right paper cite
2025-05-14 08:44:53 +08:00
Sanjin 8d51aa0dc3 update 2025-05-12 14:45:37 +08:00
Sanjin ba3466c594 support all model
support all model
2025-05-12 13:30:41 +08:00
Sanjin 190dc98762 init
init
2025-05-05 23:47:52 +08:00