吉鑫升
643f9b2c76
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/pages/AgentChatPage.tsx
2026-05-21 17:44:09 +08:00
董宏凯
2089f5e8ee
Merge branch 'dhk-1' into 'master'
...
配置参数修改
See merge request knowledge-base-bj/deerflow-server!36
2026-05-21 09:38:12 +00:00
董宏凯
7e98d7dc52
配置参数修改
2026-05-21 17:37:39 +08:00
xu hd
a514b2fe79
Merge branch 'xuhd' into 'master'
...
feat: 记忆配置改为数据库存储,用户只可配置召回模式
See merge request knowledge-base-bj/deerflow-server!35
2026-05-21 09:34:48 +00:00
xuhd and Claude Sonnet 4.6
d56230e04d
feat: 记忆配置改为数据库存储,用户只可配置召回模式
...
- 新增 persistence/memory_config/ 模块:UserMemoryConfigRow ORM 模型 +
SqlUserMemoryConfigRepository + MemoryUserMemoryConfigStore(内存兼容)
- 新增 Alembic 迁移脚本 20260521_01 创建 user_memory_configs 表
- memory_config.py:USER_WRITABLE_FIELDS 从 3 个缩减为 1 个
(hindsight.recall_budget),移除文件 IO,改为进程内 cache + async DB 对接函数
- Gateway lifespan 启动时批量预热 recall_budget cache
- memory router PATCH/DELETE 改用 DB 存储,支持 400 校验非法 budget 值
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 17:34:25 +08:00
董宏凯
065bd8f28a
样式修改
2026-05-21 17:22:40 +08:00
董宏凯
c69486556a
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-05-21 16:31:27 +08:00
董宏凯
bfd75da308
功能迁移,页面整体样式修改
2026-05-21 16:30:11 +08:00
吉鑫升 and Claude Opus 4.7
53bbb9b15b
feat: 公开定时任务页支持正文/MD 切换与内联编辑
...
- 公开查看器右侧改为 Tabs:MD 附件优先、然后是「正文」;标签使用文件名(去后缀)
- 新增内联编辑:正文与 MD 文件均可编辑保存,每个 Tab 支持 Word 下载
- 后端新增公开 PUT 端点(/runs/{run_id}/files/{i}、/runs/{run_id}/body),服务层提取 _apply_run_file_edit 并新增 admin_update_run_file / admin_update_run_body
- 列表过滤:仅展示 succeeded 且有正文或可用 MD 的执行记录;后端在响应中标记每个文件 available,前端隐藏磁盘已缺失的 MD Tab
- 左侧任务名与右侧执行记录标题均改为可换行 + Tooltip 显示完整内容
- .gitignore 增加 frontend-web/dist
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 15:53:43 +08:00
吉鑫升
f1d58983c2
feat: 智能体精选排序与新对话智能体选择器
...
- 后端新增 featured_order 字段及精选排序 API(/agents/selector、/agents/{id}/featured、/agents/featured/order),移除 user_agent_pin 表
- 前端新对话页 (ChatPage) 与输入框 (InputBox) 接入 agent-selector,选中后跳转 AgentChatPage 并通过 sessionStorage 透传首条消息
- 新增管理员智能体管理弹窗 (agent-manage-dialog) 支持精选添加/移除/上下移动
2026-05-21 14:39:12 +08:00
xuhd and Claude Sonnet 4.6
3748513996
feat: 智能体创建流程优化与管理员记忆页面
...
- 创建智能体页面:保存后自动跳转列表页、技能列表增加搜索过滤框
- Bootstrap 模式:开放全部技能可见性,注入专属提示词(skill_list 匹配意图、禁止 skill_manage)
- 管理员记忆页面:新增 AdminMemoryPage 及路由,支持查看/编辑用户记忆条目
- 内存配置与管理员用户接口同步更新
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 11:43:59 +08:00
吉鑫升
313290b22c
Merge remote-tracking branch 'origin/master'
2026-05-20 17:06:06 +08:00
吉鑫升 and Claude Opus 4.7
d339db4799
feat: 公开定时任务页面、Word 导出、定时任务实时刷新与技能详情重构
...
- 新增 /public/scheduled-tasks/:taskId 公开只读访问页与对应的
/api/public/scheduled-tasks 后端路由(无需登录)
- 新增对话整体 / 单条消息 / Markdown 工件 "另存为 Word (.docx)" 能力
- 定时任务列表与运行列表在任务执行中自动轮询刷新,并新增"正在执行"标记
- 定时任务运行消息接口在事件存储为空时回退到 LangGraph checkpoint,
让正在执行的任务也能立即看到提示词与流式输出
- 技能详情对话框由折叠面板改为 Tab 切换(Detail / SKILL.md),
并支持 Rendered / Raw 切换、一键复制
- config.yaml 增加 database (MySQL) 与 checkpointer (SQLite) 配置块
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 17:04:58 +08:00
董宏凯
0196b0a445
文档修改
2026-05-20 14:05:53 +08:00
董宏凯
8edd06fb67
文档配置文件修改
2026-05-20 14:03:26 +08:00
董宏凯
4fbd0bb5c5
ai写作
2026-05-20 13:06:29 +08:00
董宏凯
f358cfb7c7
容错处理
2026-05-20 12:51:04 +08:00
董宏凯
f44e2ccf52
报错兜底
2026-05-19 22:54:36 +08:00
吉鑫升
7e75c5b9b9
Merge remote-tracking branch 'origin/master' into ji
2026-05-19 19:58:59 +08:00
董宏凯
226439ef36
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-05-19 19:54:18 +08:00
董宏凯
81aca93b81
章节问答
2026-05-19 19:51:44 +08:00
吉鑫升 and Claude Opus 4.7
777c3b0079
fix: 定时任务执行过程实时刷新——RunJournal 增加按时间 flush
...
RunJournal 原本只在缓冲满 20 条或运行结束时才把事件落库,短运行会在结束前一直查不到消息,导致定时任务执行详情页的「执行过程」一直显示「暂无执行消息」。
新增 _FLUSH_INTERVAL_SECONDS=3s 的按时间 flush(由 _put 驱动);flush 失败时退回缓冲并重新抛出以便区分成败;flush 成功后若缓冲仍有残留则补一次 flush,失败则不重试避免空转。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-19 18:18:14 +08:00
董宏凯
ab85e4df72
效果优化
2026-05-19 18:10:15 +08:00
吉鑫升 and Claude Opus 4.7
bf34b7df4e
fix: 修复 Memory V2 合并导致的启动崩溃
...
master 的 Memory V2 重构删除了 memory/updater.py,admin_users.py 仍从中导入 get_memory_data 导致启动 ImportError。改用 BuiltinFileProvider 读取 V2 的 USER.md / 各 agent MEMORY.md;前端 MemoryBucketView 同步改为渲染 V2 条目列表。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-19 17:22:27 +08:00
吉鑫升 and Claude Opus 4.7
028c5a34e6
fix: 速度胶囊每轮只显示一次 + 技能调用按 run 合并统计
...
速度胶囊:原本每条 AI 消息都渲染,agentic 多轮 LLM 调用会出现多个胶囊。改为只在每轮 turn-final 消息(下一条 human 之前的最后一条 AI 消息)显示。
技能统计:tool_call_metrics 改为按 (run_id, skill_name) upsert 合并——同一 run 内同一技能的多次调用/重试合并为一行;任一成功即记成功,全部失败则记一行 error 并累积所有报错信息;非技能调用不受影响。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-19 17:22:17 +08:00
xuhd
64492bec43
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into xuhd
2026-05-19 16:05:11 +08:00
董宏凯
2402a84c71
检索逻辑修改
2026-05-19 15:14:51 +08:00
董宏凯
294d06f22b
文档修改
2026-05-19 13:00:40 +08:00
xuhd
070cd07199
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into xuhd
2026-05-19 09:40:19 +08:00
xuhd
4ded0ccd4f
补充
2026-05-19 09:38:20 +08:00
xuhd
6253a2bca9
修改优化
2026-05-19 09:38:00 +08:00
吉鑫升
bd1efd8026
Merge branch ji into master: 工具/技能调用统计 + 用户活动审计 + 标签多选筛选
2026-05-19 09:28:44 +08:00
吉鑫升 and Claude Opus 4.7
4940e0d8ed
feat: 工具/技能调用统计 + 用户活动审计 + 标签多选筛选
...
- 任务1: 用户管理/定时任务管理移入左下角菜单, 从侧边栏删除原入口
- 任务2: 管理员查看用户问答(读 LangGraph checkpoint)与记忆, 新增 admin_users 路由与审计页
- 任务3: 标签筛选改为顶部多选标签栏(OR), agents/skills/scheduled_tasks 三端
- 任务4: 新增 tool_call_metrics 表 + ToolMetricsMiddleware + tool-metrics 路由,
工具/技能调用统计并入大模型统计页, 含错误分类
- 技能识别: lead agent 经 read_file 加载 /mnt/skills/<cat>/<name>/SKILL.md 调用技能,
中间件扫描工具参数里的 skills/{public,custom}/{name}/ 路径还原 skill_name
- 单元测试 tests/test_tool_metrics_middleware.py (18 项全过)
- 附: SQLite->MySQL 切换后清理脚本
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 00:59:15 +08:00
董宏凯
2c56a84bb7
接口报错异常处理
2026-05-18 23:06:59 +08:00
董宏凯
73e76fc72f
依赖安装
2026-05-18 22:46:57 +08:00
董宏凯
1e5e2581c8
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-05-18 22:45:25 +08:00
董宏凯
b25c4e33cb
异常处理
2026-05-18 22:41:44 +08:00
吉鑫升 and Claude Opus 4.7
e3cde9be25
feat: 定时任务运行详情执行过程视图 + 管理员下载删除 + MySQL 迁移修复
...
定时任务:
- 运行详情页新增「执行过程」标签页,按 agent_run_id 拉取该次运行的
agent 消息(GET /scheduled-tasks/runs/{id}/messages),运行中每 4s
自动刷新,可观察卡住的任务停在哪一步
- 详情页「返回」按钮回到来源列表(普通/管理员)并重新选中原任务
- 管理员可下载、删除任意用户的执行记录(DELETE /runs/{id} 加管理员兜底)
MySQL 兼容修复:
- 合并迁移 20260518_06 汇合 ai-writing 与 thread-shares 两个 head
- 20260517_02 改用 SQLAlchemy Core 构造,规避保留字 key 的 1064 报错
- list_messages_by_run 各事件存储补 user_id 形参以保持接口一致
测试: 新增 test_scheduled_task_admin_run_delete.py
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 21:13:58 +08:00
吉鑫升
449703a6f0
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# offline-backend-20260512/backend/app/gateway/deps.py
2026-05-18 19:35:16 +08:00
吉鑫升 and Claude Opus 4.7
358d5c72a6
feat: 业务库切换 MySQL + 修复定时任务运行详情递归与重名 500
...
- 业务 ORM 数据支持 MySQL 后端(asyncmy),新增 PortableJSON/
BeijingDateTime 可移植列类型、迁移脚本与切库脚本
- 修复 GET /api/scheduled-tasks/runs/{id} 的 _load_run 无限递归
(误调用自身,应委托 service.get_run)导致的 RecursionError 500
- 定时任务名按用户唯一:create/update/admin_update 主动校验,
冲突抛 DuplicateTaskNameError,路由转 409 而非裸 IntegrityError 500
- 补充回归测试 test_scheduled_task_run_lookup / _name_uniqueness
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 19:34:14 +08:00
董宏凯
49e5aaea6b
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-05-18 17:47:33 +08:00
董宏凯
5be5531722
容错显示
2026-05-18 17:41:51 +08:00
吉鑫升
2a4fccde70
Merge remote-tracking branch 'origin/likun'
2026-05-18 15:41:36 +08:00
吉鑫升
d6f018e581
Merge branch 'master' into ji
2026-05-18 15:39:57 +08:00
吉鑫升 and Claude Opus 4.7
e0c1cb6581
feat: 定时任务管理 + 会话只读分享
...
定时任务:
- 管理员可查看/编辑/删除/触发全部用户的定时任务(新增 /api/scheduled-tasks/admin/* 接口与管理页)
- 卡死任务恢复:单次执行超 30 分钟超时重试(最多 3 次),耗尽后标记 failed;看门狗回收服务重启遗留的「执行中」任务
会话分享:
- 新增「只读链接」分享模式,生成公开免登录的只读对话快照页(/share/:code)
- 公开接口 /api/public/shares/* 提供对话快照与图片附件
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 15:39:40 +08:00
xuhd and Claude Opus 4.7
f80a00e211
feat(skills): curator 面板加 pinned 计数 + 运行时输出技能名日志
...
- get_curator_status 的 agent_created_skills 增加 pinned 计数,与
active/stale/archived 正交;前端技能进化面板同步展示「被钉住」一项
(curator/types.ts、skill-evolution-panel.tsx、zh-CN/en-US/types i18n)。
- run_curator_review 每次运行时把涉及的技能名输出到日志:新增
_log_scanned_skills(扫描到的技能名)与 _candidate_skill_names
(候选技能名),logger 与 curator_log 双写。
新增 test_curator_status_counts.py、test_curator_skill_logging.py。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 15:25:13 +08:00
xuhd and Claude Opus 4.7
4aee413680
revert(memory): Hindsight document_id 改回每轮独立文档
...
commit dba821a 把 document_id 从带时间戳改成按 thread_id 确定性派生
(同一 thread 累积成一个文档)。经复核,改回原来的带微秒时间戳写法 ——
每轮对话的 retain 重新落到各自独立的 Hindsight 文档。
retain_every_n_turns 轮次节流(turn_index)与 aiohttp 客户端泄漏修复
保持不动,仅回退 document_id 这一处。
test_hindsight_provider.py 的 TestDocumentId 按"每轮独立文档"重写。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 15:24:13 +08:00
likun
2a91e2e7ad
知识库补充到p6
2026-05-18 15:18:22 +08:00
xuhd
dba821a70e
@
...
fix(memory): 修复 Hindsight provider 生命周期的三处缺陷
HindsightProvider 被 build_memory_manager 每轮重新构造,以下三个问题
都源于这个无状态特性未被正确处理:
1. document_id 每轮漂移 —— 原 _reset_retain_batch 用微秒时间戳拼接,
导致同一 thread 的每轮 retain 落到不同文档,文档数随对话轮数线性膨胀。
改为按 thread_id 确定性派生 (thread-{thread_id}),同一 thread 累积成一份。
2. retain_every_n_turns 失效 —— 进程内 _turn_counter 每轮被 initialize
重置,retain_every_n_turns > 1 时永不触发。新增 turn_index 参数贯穿
sync_turn/sync_all,由 MemoryMiddleware 按对话历史 (count_user_turns)
算出并传入;_turn_counter 仅作缺省退路。
3. aiohttp ClientSession 泄漏 —— 缓存的客户端从不 shutdown,且 _run_coro
每次新建事件循环使缓存客户端失效,触发 "Unclosed client session"。
改为客户端即开即关:_run_with_client 在 finally 保证关闭,_client_factory
作为可覆盖的测试注入点。
测试:test_hindsight_provider.py 全量重写 (含 TestDocumentId /
TestRetainEveryNTurnsAcrossRecreation / TestClientLifecycle),
新增 test_memory_message_processing.py,test_memory_manager.py 补
turn_index 透传用例。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
@
2026-05-18 14:34:22 +08:00
董宏凯
836dd73446
容错处理
2026-05-18 11:29:40 +08:00