fengxiangdebaozi
d7d101814f
fix: 修复深色导航与会商悬浮样式
2026-07-16 11:21:52 +08:00
fengxiangdebaozi
3cd093a8a2
地址修改
2026-07-16 09:56:54 +08:00
fengxiangdebaozi
4a59da7ff0
fix: 优化侧栏并接入品牌脱敏
2026-07-16 09:48:40 +08:00
fengxiangdebaozi
0bd0ac41cd
代码合并
2026-07-11 18:16:08 +08:00
fengxiangdebaozi
388a9133fc
fix: adapt frontend for legacy Chrome and runtime config
2026-07-11 16:55:08 +08:00
fengxiangdebaozi
f3511e5cd0
样式修改
2026-07-03 16:35:52 +08:00
fengxiangdebaozi
96947d7636
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-07-03 14:56:49 +08:00
fengxiangdebaozi
034a379ecd
技能提交
2026-07-03 14:56:35 +08:00
fengxiangdebaozi
2215ec3c49
feat: add user-assisted xdfx skill flow
2026-07-01 19:21:18 +08:00
fengxiangdebaozi
f5efe9b041
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-07-01 17:50:33 +08:00
fengxiangdebaozi
a4a44e1154
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-07-01 17:50:06 +08:00
fengxiangdebaozi
cef08638af
技能修改
2026-07-01 17:49:51 +08:00
fengxiangdebaozi
6378cd33bd
统一外部 access_token 存储与轻应用 URL 拼接,修复嵌入会话鉴权隔离。
...
将 access_token 纳入 scoped storage 迁移,yUserId 登录优先并独立持久化 token;轻应用/按钮管理默认改用 access_token 参数名,支持 hash 路由占位符替换与自动追加。
2026-06-29 23:00:31 +08:00
fengxiangdebaozi
8c6d08d6bf
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-29 18:08:37 +08:00
fengxiangdebaozi
29082b349d
技能修改
2026-06-29 18:08:09 +08:00
fengxiangdebaozi
45ce14e15a
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-29 17:39:52 +08:00
fengxiangdebaozi
6851c96a45
技能提交
2026-06-29 16:59:23 +08:00
fengxiangdebaozi
210cb5117f
fix: polish compact workspace controls
2026-06-29 16:44:13 +08:00
fengxiangdebaozi
eb61b332a2
Add XDFX skill data artifacts
2026-06-29 10:25:36 +08:00
fengxiangdebaozi
4fce6f9104
Add intranet retrieval diagnostics for AI writing
2026-06-29 10:21:10 +08:00
fengxiangdebaozi
bcd656fb49
代码提交
2026-06-28 18:50:59 +08:00
fengxiangdebaozi
65449ffd71
merge dhk-1 yuser login cache
2026-06-27 19:58:57 +08:00
fengxiangdebaozi
006c5bc4c1
fix: cache yuser login info by user id
2026-06-27 19:57:06 +08:00
fengxiangdebaozi
1847eb9d6a
fix(auth): normalize external accessToken and preserve on empty yUser login
2026-06-27 17:29:52 +08:00
fengxiangdebaozi
4d10590511
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-26 11:04:19 +08:00
fengxiangdebaozi and Claude Opus 4.8
3d60651491
feat(ai-writing): 检索类型加回「知识库检索」(直连内网 ES 接口)
...
弱模型常识别不了配置技能(deepseek-chat 等),恢复旧的"不用技能"检索路径
作为独立检索类型 knowledge_base:绕过技能编排,直接调
ai_writing.intranet_search_url 内网知识库 ES 接口(IntranetSearchProvider)
对检索词并发检索;未配地址 → 无素材 + skill_error 告警。
- researcher.py: material_source 归一保留 knowledge_base + 新增直连内网分支
- state.py: material_source 三值注释
- 前端 AIWritingForm/WritingFormContext/types: 下拉新增「知识库检索」
- tests/test_ai_writing_knowledge_base.py: 直连/未配/不编排技能 3 用例
- backend CLAUDE.md: 检索类型段更新为三值
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 10:04:57 +08:00
fengxiangdebaozi and Claude Opus 4.8
158d157af4
feat(ai写作): 内网检索接口执行诊断写入 material_package.intranet_debug(排查用)
...
- material_package 新增 intranet_debug:是否配置/端点/知识库/超时/每个检索词命中数与
报错/原始响应片段/总命中数/是否被采用为兜底/status(not_configured|pending|ran|
cancelled|crashed)。随 values 事件回前端,前端忽略该字段,仅供 devtools 排查。
- 新增 config ai_writing.intranet_search_debug(默认 false):开启后即使技能成功也跑完
内网并记录完整结果,用于验证内网接口是否真能通。
- 前端不改动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 22:55:27 +08:00
fengxiangdebaozi and Claude Opus 4.8
1ed004fbb1
fix(ai写作): 弱模型也能真正执行技能脚本(执行优先的强提示)
...
弱模型在 lead agent 能执行 py 脚本、在 ai写作子智能体却不能:根因是子智能体的
_MATERIAL_OUTPUT_CONTRACT 过度强调"只输出 JSON",弱模型据此跳过工具执行直接吐空 JSON。
对齐 lead agent 的 skill_system 强框架,把契约改成"执行优先":
- 第一步强制先用 bash 实际运行技能脚本(给出 cd 技能目录 && python3 scripts/..py 的命令形态),
严禁不调用工具就直接输出 JSON/凭记忆编造
- JSON 输出降级为第二步"检索完成后再整理"
- task 末尾追加"现在立刻开始执行检索"的强指令,进一步推动弱模型先动手
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 22:50:10 +08:00
fengxiangdebaozi
1fd997303e
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-25 21:29:14 +08:00
fengxiangdebaozi
ce69905950
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-25 19:54:58 +08:00
fengxiangdebaozi
71e7b9dd63
代码提交
2026-06-25 19:54:37 +08:00
fengxiangdebaozi and Claude Opus 4.8
dc5b83e8cd
Merge branch 'dhk-3': 会商第一步分析记录按业务链筛选
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 18:09:37 +08:00
fengxiangdebaozi and Claude Opus 4.8
27fffbec61
feat(会商第一步): 分析记录按业务链筛选(漏斗下拉, 选项从草稿chainTitle去重)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 18:08:36 +08:00
fengxiangdebaozi
368673c3b4
Merge branch 'dhk-1': ai写作技能检索稳定接收数据 + 内网兜底优化
2026-06-25 17:06:01 +08:00
fengxiangdebaozi and Claude Opus 4.8
854de9b43c
fix(ai写作): 技能检索稳定接收数据(复用参考文献提取+截断抢救+上限早停)
...
- 复用主智能体「参考文献」模式的提取逻辑(deerflow.runtime.references)解析技能JSON,字段并集兼容
- bash输出中间截断时逐条抢救完整记录对象,不再因大JSON解析失败而全丢
- 所有退出路径(超时/递归上限/异常)都从tool输出收割,不依赖模型最终汇总
- 达到max_materials上限即停止驱动模型,修复步骤条爆100+条/素材超额
- 步骤条实时显示每次检索获得多少条数据
- 内网兜底:与技能并行预跑、响应解析兼容两套接口字段、0结果换简单检索词重试、超时放宽到10分钟
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 17:05:09 +08:00
fengxiangdebaozi and Claude Opus 4.8
893f1e6933
fix(会商第三步): 流程图入库限 rwfx-A + 修复跳过报告生成流程图出现双调度中卡片
...
- 入库功能仅 rwfx-A(businessCode 6BF)深链会商模式提供,其它业务深链生成流程图不再出现入库按钮/询问
- 流程图抽取串行化:auto 自动出图与用户「跳过报告直接生成流程图」手动出图竞态时,先中止上一轮、复用/移除被取代气泡,保证任意时刻只有一张流程图卡片
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 12:29:45 +08:00
fengxiangdebaozi and Claude Opus 4.8
04e6d0aa00
fix(ai写作): 前端实时接收技能步骤(此前被白名单丢弃,只在快照里一次性显示)
...
根因在前端:后端 _emit_skill_step 以 writer({"type":"skill_search_step", **step})
发出,**step 里的 type(invoke_skill/list_skills/skill_result/select_skills/
match_skills/skill_error/fallback/stop_early)会覆盖外层 "skill_search_step",
所以 custom 事件实际 type 是这些内层值。customToProgressEvent 的白名单没有它们,
直接 return null 丢弃——后端逐条实时发(SSE id 时间戳已证实分散在 0~76s),前端却
全扔了,技能步骤只能等节点结束的素材包快照一次性出现(前端一直 loading)。
修复:customToProgressEvent 按内层 step 类型识别,实时归一成 skill_search_step
事件(与快照里的 step 同格式),让技能调用过程一步步实时进时间线。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 01:20:21 +08:00
fengxiangdebaozi and Claude Opus 4.8
1d6659f9e7
fix(ai写作): 技能步骤从节点协程 emit,custom 事件真正实时刷给前端
...
前端/SDK 都是实时的(onCustomEvent 逐条即触发,draft_chunk 同链路就实时)。
问题在后端:技能步骤原来在节点内的嵌套 agent.astream 里直接 emit,custom 事件
被攒到整段跑完才一次性吐到 SSE(后端在跑、前端一直 loading)。
改为:嵌套 astream 跑后台任务,只把工具调用塞进 asyncio.Queue;真正的 writer
由 researcher 节点**自身协程**从队列取出来调(与 draft_chunk 同一上下文),
custom 事件即被 LangGraph 实时刷给前端。撤掉上一版无效的 sleep(0)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 01:04:49 +08:00
fengxiangdebaozi and Claude Opus 4.8
a4a67c1a00
fix(ai写作): 技能流式每步主动让出事件循环,custom 事件实时刷给前端
...
前端 skill_search_step 已是 pushImmediate(实时渲染),但事件在节点内的嵌套
agent.astream 里发出后没及时让出事件循环,被攒到整段跑完才一次性吐到 SSE,
前端看着像卡死。每个 chunk 处理完 await asyncio.sleep(0) 主动让出,促使刚 emit
的 custom 事件实时刷给前端(对齐 draft_chunk 的实时行为)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 00:48:57 +08:00
fengxiangdebaozi and Claude Opus 4.8
8f773d3f1b
fix(ai写作): 技能调用实时流式显示 + 去掉大纲拼检索词/复用检索词
...
- 技能调用过程改为实时流式:run_skill_via_real_agent 不再 to_thread 阻塞跑
executor.execute(),而是复用其 agent/state 构建后在图事件循环里 astream,
每个工具调用(读 SKILL.md / bash / 检索)实时推一条步骤到时间线——内网慢时
用户能看到技能在执行,不会以为卡死。整段 asyncio.wait_for 卡 5 分钟超时。
- 回退检索词相关改动(实测无用、且结合大纲后检索词变长不利按词匹配):
- intent_parser 不再顺便生成 keywords,删 precomputed_keywords 状态字段;
- researcher 不再复用,每次自己现生成检索词(回到原行为);
- 检索词提示词去掉「结合大纲/{outline_section}」,删 keyword_outline_section。
保留:关思考、技能真实运行时、技能目录修复、内网兜底。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 00:33:57 +08:00
fengxiangdebaozi and Claude Opus 4.8
c0305c9269
fix(ai写作): 修复内网技能检不出东西(技能目录路径 + 模型 + 兜底 + 开关)
...
对比主智能体与 AI 写作两份调用日志定位到根因:真实 agent 路径只注入了
SKILL.md 内容、没告诉模型技能在容器内的目录,模型用相对路径跑脚本
(python3 scripts/search)→ No such file。主智能体则 cd 进技能绝对目录再跑。
- _skill_agent:注入 skill.get_container_path() 的绝对目录,要求先 cd 再执行
脚本/用绝对路径(对齐主智能体 skill_view 拿 location 后的行为)。
- researcher:跑技能的 agent 改用用户选定的写作主模型(model_name_fallback=None),
不再用常配成外网的 keyword_model,避免技能 agent 连不上自己的模型。
- researcher:所有技能都 0 条时,最终兜底直连内网 ES 接口(IntranetSearchProvider),
受 ai_writing.intranet_search_url 控制。
- config.yaml:开 researcher_skill_agent=true(内网技能必须走真实运行时),
新增 intranet_search_url / intranet_knowledge_base 兜底配置项。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 23:52:32 +08:00
fengxiangdebaozi and Claude Opus 4.8
d8b43e7579
fix(ai写作): 技能检索超时硬编码 5 分钟(内网慢检索不被过早切断)
...
内网检索很慢,原 120s 在三个真正生效的层把检索切断。统一硬编码 300s,
不依赖环境变量(部署方不一定会配):
- researcher._SKILL_SEARCH_TIMEOUT_SECONDS:120(env) → 300(写死),删掉 _env_int;
作用于直连/定向技能检索的 wait_for,也传给真实智能体路径。
- IntranetSearchProvider 默认 httpx 超时:120 → 300(直连内网 ES 的真正瓶颈)。
- run_skill_via_real_agent 整段运行上限:max(timeout_s, 300),至少 5 分钟。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 22:54:42 +08:00
fengxiangdebaozi
4f68235c94
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-24 22:45:42 +08:00
fengxiangdebaozi and Claude Opus 4.8
afb78a6943
feat(ai写作): 素材收集专家按真实智能体运行时跑技能 + 步骤条对齐
...
- 新增 run_skill_via_real_agent:复用 SubagentExecutor(与 lead agent / 子智能体
同一套运行时),加载技能 SKILL.md + 全套工具 + 懒加载沙箱,让技能的真实检索逻辑
(读文件 / 调内网接口 / MCP)真正执行,再按 JSON 契约收割结构化素材;researcher 的
_execute_skill 在 researcher_skill_agent 开启时切到它,失败/空结果回退直连检索。
解决内网技能(在别的智能体里好使)在 AI 写作里检不出东西的问题。
- 步骤条轻量对齐别的智能体:技能调用拆成「读取 SKILL.md → 执行检索 → 检索到 N 条」
三段(前两段新增,结果段沿用 skill_result);前端 SkillStepsCard 零改动。
- 含 roundtable-planning(业务链选择 / Step2 编排)的进行中改动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 22:19:30 +08:00
fengxiangdebaozi
3ea8e73389
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-24 19:48:15 +08:00
fengxiangdebaozi and Claude Opus 4.8
c117e296cb
feat(ai写作): 草稿局部修改只改命中章节,支持改章节标题,修改时右侧流式重写
...
用户在草稿确认填修改意见(user_revise)时,按章节定位只重写命中章节、
其余字节级保留;新增范围识别区分「改标题」与「改正文」,改标题同步回写
outline 使其持久生效(修复改章节标题不生效);整体性/结构性意见自动回退
整篇重写。前端新增 isRevising:修改时右侧先恢复初始占位(清空旧稿),
重写流到达后实时展示被改章节的流式重写。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 19:45:00 +08:00
fengxiangdebaozi and Claude Opus 4.8
42f55251f2
feat(ai写作): 历史回看右侧成稿可编辑并保存回历史记录
...
- 后端新增 PUT /api/ai-writing/sessions/{id}/draft(属主校验,draft_title 可选)
- 前端历史模式放开只读,工具栏新增「保存」按钮持久化修改
- 实时写作完成态保持原样(仅导出,不落库)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 18:32:11 +08:00
fengxiangdebaozi and Claude Opus 4.8
304e1b637a
feat(ai写作): 意图解析顺便生成检索词 + 修复快捷模式
...
- 意图解析(intent_parser)与意图理解共用同一次 LLM 调用顺便生成检索词
(结合意图 + 大纲覆盖各章节主题),存入 state.precomputed_keywords;
researcher 首轮直接复用,省掉素材收集阶段单独的「生成检索词」LLM 往返。
解析失败/为空时回退到 researcher 自己生成(优雅降级);re_search 仍重新生成。
keyword_outline_section 提到 _utils 供两处共用。
- 修复快捷模式:之前被「大纲先行确认」改动拖累,先误成「问一堆问题」,再被我
过度修正成「不生成大纲」。现修正为——快捷模式 = 用默认选项、不逐项澄清提问
(make_lead_agent 在快捷模式下直接不挂 ask_clarification 工具,物理上问不了),
但**仍生成并确认大纲**再提交;普通模式不变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 18:32:10 +08:00
fengxiangdebaozi and Claude Opus 4.8
49173d9c28
feat(ai写作): 大纲整理可见化 + 检索词结合大纲 + 素材/大纲阶段关思考
...
- 草稿确认卡:「给出修改意见」「让编辑继续审核」移到「确认定稿」上方。
- 大纲整理阶段文案:用户自带大纲时显示「整理你的大纲」而非「规划大纲」
(OutlineStreamingView / 骨架屏 / 状态栏,按 request.userOutline 切换)。
- 素材收集专家:用户自带大纲时把大纲原文带入检索词生成,让关键词结合写作
意图覆盖各章节主题(_keyword_outline_section,agent + legacy 两路)。
- 素材收集(检索词/排序)与大纲整理/生成阶段强制关闭思考
(create_chat_model force_disable_thinking:GLM thinking.disabled +
Qwen/vLLM enable_thinking=false),关不掉的模型仍由 ThinkTagParser 把
<think> 分流到思考框正常展示。disable_thinking 串入
_utils.get_model/llm_json 与 _agent_runner.stream/run_writing_agent。
- 含草稿「局部修改」WIP(writer_draft 只重写命中章节)及外观控件改动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 18:32:10 +08:00
fengxiangdebaozi and Claude Opus 4.8
e9c8d1cea2
feat(ai写作): 自带大纲/会商及研究模板等前后端改动
...
提交工作区中 AI 写作(表单/时间线/历史/上下文/流式 hook/类型)、
研究模板配置页、lead_agent、researcher/graph/state 及 gateway/config
的进行中改动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 16:15:39 +08:00
fengxiangdebaozi and Claude Opus 4.8
d2c76100f2
perf(ai写作): 用户自带大纲整理提速并流式化
...
用户自带大纲时「整理大纲」原有两个阻塞式非流式 LLM 调用,内网模型
<think> 关不掉导致用户长时间干等:
- 素材关联(每次都调)改为确定性词重叠 _assign_materials_heuristic,
零 LLM、瞬时;有编号/标题/缩进的大纲整理几乎零等待。
- 散文化大纲的 LLM 归一改为流式 _stream_normalize_user_outline:
ThinkTagParser 把思考推思考框、正文实时打字机展示并累积解析;
并在 OUTLINE_NORMALIZE_USER 末尾追加 /no_think。
- researcher 路径只做确定性解析,解析不出返回 None,交给 writer_outline
流式归一(outline_chunk 在该阶段天然映射大纲思考框)。
- 移除废弃的 OUTLINE_MATERIAL_ASSIGN_* 提示词与 llm_json 死引用。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 16:15:39 +08:00
fengxiangdebaozi and Claude Opus 4.8
f551c7af9b
fix(登录): redirect 透传登录 URL 其余 query 到目标页
...
?redirect=/page/strategy/dashboard-agent&taskId=3334 时把 taskId 等非登录消费参数
透传到目标页 query(目标自带同名参数优先),鉴权类参数不透传以防泄漏到地址栏。
修复跳转后目标页「缺少 taskId」。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 22:10:40 +08:00
fengxiangdebaozi
e3631a9fd6
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-23 21:52:27 +08:00
fengxiangdebaozi and Claude Opus 4.8
8241f8dd6b
feat(登录): 新增 ?redirect= 参数,登录后跳转指定站内页面
...
支持 ?redirect=page/strategy/dashboard-agent(可不带前导斜杠、可自带 query),
优先级高于 taskId/goPath 深链与默认首页;仅接受站内相对路径,拒绝绝对/协议相对
URL 与反斜杠以防开放式跳转。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 21:51:59 +08:00
fengxiangdebaozi
e263d86fc3
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-23 21:22:02 +08:00
fengxiangdebaozi
151384b26d
代码修改
2026-06-23 21:21:49 +08:00
fengxiangdebaozi
030ede6887
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-23 21:07:05 +08:00
fengxiangdebaozi
e6ca2bf64f
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-23 21:06:19 +08:00
fengxiangdebaozi
47cff9e2f9
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-23 21:06:09 +08:00
fengxiangdebaozi
6742346eb4
代码提交
2026-06-23 21:05:58 +08:00
fengxiangdebaozi and Claude Opus 4.8
8b022bffc5
feat(深链会商): rwfx-A/3qfx-A 首条消息附带 taskId,xdfx-A 附带 taskId+actionId
...
会商 Step1 自动发送的「任务信息」现追加任务/行动 id,与单智能体路径口径一致,
id 标签统一用驼峰(taskId / actionId)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 20:08:33 +08:00
fengxiangdebaozi
0fedb6ffd8
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-23 19:47:54 +08:00
fengxiangdebaozi
85aa242fd5
Merge branch 'master' into dhk-1
2026-06-23 19:45:41 +08:00
fengxiangdebaozi and Claude Opus 4.8
6f94a40303
fix(ai-writing): 写作分栏拖拽条不再压住左侧滚动条
...
隐形拖拽热区只向右(草稿区留白)延伸 + 抓手微右移,避免鼠标抓左侧时间线滚动条时
误触左右 resize 导致滑不动;不留任何视觉间隙。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 19:37:30 +08:00
fengxiangdebaozi and Claude Opus 4.8
b8c78ba06e
feat(ai-writing): 大纲先行确认 + 新文章类型识别 + 参考文献 + 编辑器修复
...
- 写作配置 Q&A 改为「先流式生成大纲并多轮确认 → 再确认意图」,放宽轮数上限
- 意图识别出列表外的新文章类型时带上类型名+简介(仅本次写作临时使用)
- 成稿支持参考文献:正文 [n] 角标 + 文末按出现顺序的「参考文献」列表(表单开关,默认开)
- 流式接取未闭合 <think> 思考内容,首 token 前加「正在整理…」占位
- 修复右侧编辑器输入空格只出一次、光标跳字(避免自激回灌 setContent 重置光标)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 19:07:03 +08:00
fengxiangdebaozi
adabfa2fe3
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-22 21:03:19 +08:00
fengxiangdebaozi and Claude Opus 4.8
f144a59c97
fix(roundtable): xdfx-A 深链会商聊天记录按行动id隔离存储
...
xdfx 深链 URL ?taskId= 原始值即 actionId(登录时解析成真实任务id)。
一个任务可派生多个行动,各行动会商需互相独立,故聊天记录/后台作业
按 actionId 存取,而非解析出的真实 taskId。
新增 recordTaskIdOf(prefill)=actionId??taskId,应用到草稿 CRUD/回显
(useDraftPersistence/useRoundtableDrafts/loadLatestByTask) 与后台作业
(startJob/getJobByDraft/cancelJob/startJobKeepalive)。目的树/入库/任务
详情/底部快捷跳转栏仍用真实 taskId。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 21:01:34 +08:00
fengxiangdebaozi and Claude Opus 4.8
0a456e9146
feat(ai-writing): 后台挂起改为即时返回,乐观标记历史「挂起中」
...
点击「转后台」后立刻 reset 回初始页,挂起请求 fire-and-forget;
历史下拉靠 markBackground/clearBackground 乐观标记马上显示「挂起中」,
不等后端确认,与「多智能体会商」交互一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 17:07:53 +08:00
fengxiangdebaozi and Claude Opus 4.8
b59cbd51d9
feat(ai-writing): 各阶段模型调用自动容错,失败时换下一个模型继续
...
参考多智能体会商的容错思路:意图解析/大纲/正文/审核四个 LLM
环节失败时,按 config.yaml models 顺序换下一个模型重跑该环节,
并通过 model_switch 事件在前端时间线提示「『X』模型<原因>,
已自动切换到『Y』继续」。正文逐章节、审核逐维度独立切换,
已生成的章节/维度保留;意图解析成功的模型还会写回 state
供下游阶段沿用,避免每阶段重复经历同一次失败。
- nodes/_model_fallback.py: 候选模型链 + 异常分类 + model_switch
事件构造(沿用 ROUNDTABLE_MODEL_FALLBACK[_MAX] env 开关)
- intent_parser/writer_outline/writer_draft/editor: 失败循环换模型
- 前端 types/reducer/timeline: 新增 model_switch 事件类型,按
stage 复位对应流式缓冲并以 amber 系统提示渲染
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 17:07:53 +08:00
fengxiangdebaozi and Claude Opus 4.8
23743ee193
chore: 精简 AI 写作示例文案
...
ai-writing 表单/检索/欢迎页的占位与示例改为通用文案。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 17:07:53 +08:00
fengxiangdebaozi and Claude Opus 4.8
e28277b21b
feat(layout): 全量模式右上角也加界面模式切换
...
复用 appearance-controls 的 LayoutModeSwitcher,Header 操作区在换肤旁
补上界面模式下拉,与简洁模式右上角保持一致。LayoutModeSwitcher 新增
fallback 属性指明 mode 未设置时的兜底界面(Header 传 full,ChatPage 传 compact)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 15:43:55 +08:00
fengxiangdebaozi and Claude Opus 4.8
79f1a004a0
feat(layout): 简洁模式右上角加换肤 + 界面模式下拉切换
...
抽出共享 appearance-controls(ThemeSwitcher 按 tone 适配 banner/content
配色,新增图标+下拉的 LayoutModeSwitcher);Header 复用换肤组件,简洁模式
ChatPage 顶栏右上角补上换肤与界面模式切换,与全量模式保持一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 11:02:51 +08:00
fengxiangdebaozi
548cfd1719
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-22 10:47:15 +08:00
fengxiangdebaozi
7d32b41e90
加载框样式
2026-06-22 10:46:57 +08:00
fengxiangdebaozi and Claude Opus 4.8
8ca16c74bc
fix(roundtable): 会商第三步各席位产物弹窗经 portal 挂 body,修复顶部被顶栏盖住
...
页面 <main> 的 `relative z-0` 新建层叠上下文,把内部 fixed 弹窗困在 z-0 层级,
被会商页头(z-40)/全局顶栏(z-45)盖住标题栏。ContentModal 与 ArtifactPreviewModal
改用 createPortal 挂到 document.body,脱离该上下文后正常盖在顶栏之上。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 22:12:45 +08:00
fengxiangdebaozi and Claude Opus 4.8
60626c384a
fix(roundtable): 会商 Step2/Step3 沙箱产物按对话创建者解析,修复历史/跨用户查看不了
...
圆桌会商系统线程(metadata.thread_type==roundtable)的 Step2 席位/总控 +
Step3 报告/总结/大屏/结构化 沙箱产物(md/流程图/报告)落在创建者目录下,
之前按当前登录解析路径 + owner_check 校验 → 历史草稿重开或 taskId 会商被
其他账号打开时 403/404 查看不了。沿用任务深链对话方案(23e6685 )扩展到圆桌:
- thread_paths._is_creator_shared_thread:taskId 或 thread_type==roundtable
都解析到对话创建者(threads_meta.user_id),覆盖所有线程路径关口
- ThreadMetaRepository.check_access:圆桌系统线程同样跳过 owner 过滤
(artifacts 路由 owner_check 据此放行其他账号/历史查看)
线程 id 仅存在于草稿中,无关账号无法发现,与 taskId 共享模型一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 20:51:05 +08:00
fengxiangdebaozi and Claude Opus 4.8
03c155f8a7
feat(roundtable): 第三步「数据入库」由结构化输出智能体自行调用技能
...
- 入库改为让 roundtable-structure 走完整 agent 运行时(ingest run policy)
自行挑选/读取/调用入库技能并传入 taskId,不再前端代调演示
- 新增 /api/flow-extract/ingest-eligibility(智能体判断当前业务场景是否有
合适入库技能,决定入库按钮是否显示)+ /api/multi-agent/structure/init
- 入库前判断是否已生成流程图:无则发起「是否先生成流程图」用户协助
- 「知识库入库」更名为「数据入库」
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 17:58:36 +08:00
fengxiangdebaozi and Claude Opus 4.8
a9f01bec79
feat(task-buttons): 外链按钮新增「打开方式」(新窗口/当前窗口)
...
按钮管理(/page/strategy/admin/task-buttons)的 url 外链按钮可配置打开方式:
- blank=新窗口(默认,window.open(_blank),行为同改前)
- self=当前窗口(window.location.assign,嵌入态即当前 iframe)
新增 TaskButton.openMode 字段贯通前后端:前端 task-buttons.ts 类型+种子+
runTaskButton 打开逻辑、api 客户端 snake⇄camel 映射、TaskButtonsPage 下拉;
后端 router schema + ORM open_mode 列(可空默认 blank,启动自动 ALTER 补列,
无需手动迁移)+ sql/memory store 归一化。仅 url 类型生效。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 16:09:01 +08:00
fengxiangdebaozi
ef615bbfb6
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-19 14:15:13 +08:00
fengxiangdebaozi and Claude Opus 4.8
31f9838095
feat(embed): iframe 嵌入模式(去 chrome + 主题隔离 / hideJump / 登录用户隔离)
...
外部系统用 iframe 套用深链单智能体问答/多智能体会商时,三个按标签页(sessionStorage)
开关,由深链 URL 参数开启、跨登录跳转/刷新/页内导航存活,绝不跨标签污染正常系统页:
- embed=1(可带 theme=):去全局导航栏 + 侧边栏;按外部主题色强制明/暗,走
next-themes forcedTheme(不写 localStorage),嵌入侧不调 setTheme/persistSidebarEnabled
- hideJump=1:隐藏深链底部「快捷跳转」栏 TaskJumpBar(底部「下一步」按钮 + 右侧悬浮菜单)
- 登录隔离:嵌入态鉴权/身份键(deerflow.auth/userInfo/login.*/tools_token 等)改走
sessionStorage(core/auth/scoped-storage.ts 的 authStorage),iframe 登录用户与正常
登录用户完全隔离、互不覆盖;token 读取统一过 getStoredAuth,改中心函数即全体生效;
跨标签账号变更监听 AuthSyncWatcher 嵌入态禁用
嵌入会话在 main.tsx 渲染前同步启用(早于任何鉴权写入)。正常标签页 isXxx() 恒 false,
行为零变化。新增 core/embed/embed-session.ts、core/auth/scoped-storage.ts。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 12:02:36 +08:00
fengxiangdebaozi
81ca13280b
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-19 10:03:10 +08:00
fengxiangdebaozi
bb7283dcd9
接口
2026-06-19 10:03:00 +08:00
fengxiangdebaozi
ce78cbf936
代码提交
2026-06-18 21:09:37 +08:00
fengxiangdebaozi and Claude Opus 4.8
3a315798e9
feat(roundtable): 深链会商页引入底部快捷跳转栏(去编辑/弹框查看)
...
抽出 TaskJumpBar 为独立组件,单智能体问答与多智能体会商共用;会商深链
taskId 模式按业务渲染按钮管理配置,并隐藏「编辑」与「弹框查看」按钮。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 19:17:45 +08:00
fengxiangdebaozi
6a8f118ad0
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
...
# Conflicts:
# CLAUDE.md
2026-06-18 17:53:23 +08:00
fengxiangdebaozi and Claude Opus 4.8
85cca36ddb
feat(roundtable): 入库门控——未挂载入库技能则不显示入库按钮、也不执行入库
...
- 门控改为「是否挂载了入库相关技能」:按 name/name_zh/description 含 `ingest` 或「入库」
识别任意启用的入库相关技能,不写死示例技能名(真实入库技能改名也能自动识别;
知识库检索类技能不误命中)。
- 操作层加保险:runIngest 在 ingestAvailableRef 为假时直接 no-op,未挂载技能/非深链
即使被触发也不执行任何入库动作。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 17:05:53 +08:00
fengxiangdebaozi and Claude Opus 4.8
19028ba627
feat(roundtable): 第三步流程图后入库(示例技能 · 仅深链 taskId 模式)
...
- 流程图生成完成后,发起用户协助询问是否入库:现在 / 稍后 / 不入库。
- 仅**深链(taskId)模式**(会商 rwfx-A / 3qfx-A / xdfx-A 等)且入库技能启用时才出现入库
询问 / 协助卡 / 手动入库按钮;普通会商不受影响。
- 「稍后入库」后输入框自由文字做意图识别(后端 /api/flow-extract/ingest-intent:
start_ingest / add_data / other / unclear),模糊则发起入库协助;另提供手动入库按钮。
- 入库执行复用总结智能体的同一线程,在消息列表出一条「知识库入库」气泡并显示步骤条
(调度 → 调用入库技能 →(补充内容)→ 提交 → 完成),与第二步同款。
- 入库数据以**用户最后修改后的流程图**为准;并把深链 **taskId 一并传给入库技能**(技能必需)。
- 入库状态(asking/later/done 等)随第三步草稿存取,重载不重复询问。
- 入库技能先用示例(演示用):skills/public/knowledge-base-ingest/SKILL.md(force-add,
skills/ 目录默认 gitignore),后续替换为真实入库技能时沿用同名即无缝切换。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 16:49:36 +08:00
fengxiangdebaozi
b04b830039
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
...
# Conflicts:
# frontend-web/src/roundtable-planning/hooks/useStep3Dashboard.ts
2026-06-18 15:18:41 +08:00
fengxiangdebaozi and Claude Opus 4.8
a8da6c2632
feat(roundtable): taskId 会商记录独立存储(不分权) + 第三步生成过程对话/步骤条入库
...
taskId 深链会商存储独立化:
- 新增独立表 roundtable_task_drafts + 路由 /api/roundtable-task-drafts,只按 task_id
归属、完全不按 user 分权(created_by 仅审计),与个人 roundtable_drafts 物理分离;
个人草稿表恢复严格按用户隔离(去掉原 task 放权)。
- 后台研讨作业按 taskId 共享:roundtable_jobs 加 task_id,get/get_by_draft/stream/
resume/cancel 支持 ?task_id= 跨用户读取与控制,作业报告写回 task-draft 存储。
- 前端:新增 api/task-drafts.ts 客户端,useDraftPersistence / useRoundtableDrafts /
roundtable-jobs / DispatchChainJobModal / RoundtablePlanningPage 按 taskId 路由读写。
- 迁移 20260618_01 + column_additions_mysql.sql(jobs.task_id) + 数据搬迁脚本
scripts/migrate_roundtable_task_drafts.py(把历史 task_id 行迁出个人表)。
第三步聊天记录像第二步一样存全:
- 总结报告 / 经典看板 / 大屏 三条流的生成过程对话(中间文字 + 步骤条 + stub)落库,
加载草稿整段回显,而非只剩最终 md / 流程图 / HTML。DraftStep3Snapshot 扩展
dialogues/seatStubMessages 槽位;存稿走页面 render 期 ref,恢复走各 hook hydrateSaved
(旧草稿无字段则回退单条「历史记录」气泡)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 15:11:50 +08:00
fengxiangdebaozi and Claude Opus 4.8
500a562bb6
fix(roundtable): 校验环节真正"逐个查 from 缺则补"——删掉自相矛盾的"你不用管连线"
...
校验本就把第一次抽取的完整 JSON(extracted)传给模型,但开头一句"连线由系统按
层级自动生成、你不用管连线"与第①要点"查每个非根节点 from 缺则补"自相矛盾,
模型读到前者就跳过补 from。删掉该句,改成明确指令:逐个节点检查上面这份 JSON
是不是缺字段,只要某节点缺 from 就补上正确的 from,绝不让非根节点悬空。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 23:32:59 +08:00
fengxiangdebaozi and Claude Opus 4.8
b5744a1378
feat(roundtable): 结构化抽取连线质量加固——尊重模型 from + 弱模型层级兜底
...
- parse_flow_graph 选边改为两全策略:模型把连线连全了(仅根节点无入边)→直接用
模型的 from/edges;模型漏连(≥2 节点无入边,最常见就是漏 from 导致平铺)→按 group
层级关系确定性推导补全,永不平铺,连线质量与模型能力解耦。
- SOUL.md 增加正确/错误节点示例(带 from vs 漏 from)+ 硬性要求:除根节点外每个
节点都必须填 from;画法④拆成 group/对应顺序/from 三件事并强调"漏 from 最常见"。
- 校验 prompt 把"连接关系"提为第①要点:逐个检查非根节点是否有 from,缺了必须补对。
- _STRUCTURE 兜底 prompt 同步要求填 from。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 23:28:07 +08:00
fengxiangdebaozi and Claude Opus 4.8
b8b71523b5
fix: 流程图连线推导加固——个别节点漏 group 时按发射顺序就近归层(carry-forward)
...
弱模型可能漏标个别节点的 group,原逻辑一漏标就整体放弃推导导致节点平铺。改为漏 group 的
节点沿用前一节点的层级,只有开头无 group / 全程无 group 才回退模型连边。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 23:18:05 +08:00
fengxiangdebaozi and Claude Opus 4.8
cc06d3f4d2
feat: 流程图连线后端确定性推导(弱模型也连对) + 校验不删边/不简化理由 + 调度中即时反馈
...
- 连线质量:新增 _derive_layered_edges——连线不再信任模型,后端按节点 group 分层 +
层级对应关系确定性推导(任务→各目的扇出、相邻等量层按下标一一对应、不规则层对回退模型边)。
模型只需 group 标对 + 各层内按相同对应顺序排列,连线就一定对。SOUL/_STRUCTURE 据此调整。
- 校验不删边:validate 要求节点数≥原图 + gen() 兜底「校验后节点/边变少则回退抽取结果」。
- 不简化理由:_SHAPE + SOUL detail 改为完整理由原样保留、不简化/精简。
- 调度中即时反馈:ask() 意图分类前立刻建「调度中」气泡,定意图后各分支复用(relabelDialogue
+ runFlowExtract.bubbleId),不再等 intent 接口返回才出内容。
- 测试 tests/test_flow_extract_parse.py 加层级连线推导 3 例(共 10 过)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 22:56:04 +08:00
fengxiangdebaozi and Claude Opus 4.8
0890b3c375
feat: 第三步流程图后端抽取智能体 + 意图识别 + 问答/画布编辑
...
- 新增专职「结构化抽取智能体」roundtable-structure(种子资产 SOUL+config,注册进 seeder
启动 seed+sync 进 DB,可在智能体管理页编辑、未来挂入库技能)。
- /api/flow-extract/stream 改用该 agent 的 SOUL(load_agent_soul,缺失回退内置默认) +
模型(前端所选 > agent 配置 > 默认);抽取/校验/编辑统一。SOUL 先输出简要分析过程再出
flow-json,模型慢时也有实时反馈(含 <think> 思考流)。
- 新增 /api/flow-extract/intent 意图识别(参考 ai_writing 一次性 JSON 范式):识别
重做报告/改流程图/重画流程图/提问/模糊;前端按意图分流,模糊则发起澄清让用户点选,
不再用关键词硬路由(修「说重做报告却出流程图」)。
- Phase 2 问答修改:edit 模式(当前图+指令→改图→校验);Phase 3 画布手动改/删节点。
- 修:用户消息发送即上屏(不等模型/分类返回);regenerate_report 不再清空对话历史;
全屏 portal 到 body 工具栏恢复;解析兼容独立 edges 数组。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 22:19:02 +08:00
fengxiangdebaozi
bb05f7b1de
Merge branch 'dhk-1' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-17 21:31:30 +08:00
fengxiangdebaozi
d3880f51b3
第三步结构化输出优化
2026-06-17 21:31:22 +08:00
fengxiangdebaozi and Claude Opus 4.8
fca39eeaee
feat: taskId 深链会商按任务隔离草稿 + 第三步自动结构化流程图
...
- 深链 ?taskId=&goPath=*-A 透传 taskId 进会商,按 taskId 隔离存取草稿(一个 taskId 多条、可新建);
后端新增 GET /api/roundtable-drafts/by-task/{id} 列表 + RoundtableJobRepository.status_map_by_drafts 富化。
- 第三步生成 md 报告后自动结构化输出流程图(仅 taskId 模式):有报告基于报告、无报告基于各席位交付,
整段内联数据来源逐条抽取;层级优先用业务链总控提示词写明的层级,否则用 stages 的 goal。
- 流程图节点加 group(层级名)标签 + detail(条目名称+理由);强 prompt 压制 coordinatorPrompt 报告锚定,
禁阶段编号节点;FLOW_STRUCTURE_RULE 精确画法(根=任务、每层每条成节点、按对应关系串分支、排除汇总段落)。
- flow-graph 解析容错:JSON.parse 失败退回正则逐字段抽取,兼容裸换行/尾逗号,避免节点被整体丢弃。
- 修:重开第二步后第三步基于新一轮分析重新生成(复位 step3 闸门 + 中断旧三流)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:45:35 +08:00
fengxiangdebaozi
8d0759123a
chore: 同步 backend CLAUDE.md 文档换行格式
2026-06-16 22:43:18 +08:00
fengxiangdebaozi
318f6c0c0c
feat: 业务链条配置管理导航与顶栏用户名统一
...
业务链条页增加配置管理入口与返回导航;配置管理页通过 aliasPaths 保持侧栏选中;顶栏用户名与设置个人信息页共用 getAccountDisplayName。
2026-06-16 22:42:42 +08:00
fengxiangdebaozi
d8102e8db8
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-1
2026-06-16 22:18:22 +08:00