Commit Graph
602 Commits
Author SHA1 Message Date
天海蒼灆 ebbdd5028a feat(agent): support document_ids in retrieval node and tool (#16938) 2026-09-11 19:15:23 +08:00
huyua9 56966c0df0 fix(template): align data analysis CodeExec prompt (#18958) 2026-09-11 15:26:09 +08:00
Sbaaoui Idriss 681f418424 fix(invoke): tolerate invalid headers across runtimes (#19481) 2026-09-11 10:21:25 +08:00
Zhu Lei 13458475c0 fix(agent): compare retrieval KBs by resolved embedding model, not raw embd_id (#19206)
Fix #19203 — agent retrieval now treats UUID and composite embedding IDs as same model when tenant_embd_id matches, reusing validate_dataset_embedding_models.
2026-09-10 21:11:48 +08:00
euvre 16f25e72ec fix(agent): template retrieval binding at creation + false "no dataset selected" save warning (#19316) 2026-09-09 17:56:21 +08:00
euvre 38c40e64a9 fix(agent): treat missing List Operations input as empty list (#19275) 2026-09-09 11:07:43 +08:00
Sbaaoui Idriss d796dcfb6f fix(agent): preserve sandbox artifacts through streaming (#19355) 2026-09-09 09:57:34 +08:00
Sbaaoui Idriss 76c197f12a fix(agent): clear stale template dataset references (#19399) 2026-09-09 09:53:38 +08:00
c44e171dbc feat(agent): add Sofya search tool (#19323)
Add Sofya web search tool — returns full page content (not snippets). Modeled on You.com. Configurable depth (basic/snippets), top N, and per-call params.

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-09-08 12:40:36 +08:00
MarMar Labs 293de5aad7 fix(agent/tools): run a DuckDuckGo news search when the channel is news (#19176)
Fix DuckDuckGo News search — branched on topic (Tavily param) instead of channel. Now branches on != "news" and reads channel.
2026-09-08 10:55:06 +08:00
leilei3167andSbaaoui Idriss aadc4d7e7e fix(exesql): serialize DATE/TIME columns for canvas SSE JSON (#19266)
Fix ExeSQL canvas SSE crash on DATE columns — datetime.date not JSON serializable. Now isoformats date/datetime/time.

Co-authored-by: Sbaaoui Idriss <112825897+6ba3i@users.noreply.github.com>
2026-09-07 20:01:59 +08:00
Ehsan 9f7bc613b0 fix(agent): hold back a node whose upstream runs in the same batch (#19282)
Fix join node race — now checks if upstream finished, not just scheduled. CodeExec/aggregator dependencies now visible via param_refs(). Mutual references now run. 

Fixes #19265
2026-09-07 17:34:22 +08:00
Lynn 2177c3ad5e Fix: check required fields when use template (#19228) 2026-09-04 16:52:50 +08:00
Lem0nTea2002 500fe29d62 fix(agent): propagate deferred stream errors through Message (#18796)
Fix lazy stream errors — partial output followed by failure now stops and reports error instead of persisting as success.
2026-09-02 10:11:04 +08:00
alaningtrump 87fb9d5d21 fix(agent): avoid shared StringTransform merge arguments (#19023)
### Summary

StringTransform._merge used a dictionary as a default argument and
passed it to get_kwargs, which adds missing template inputs to that
mapping. Use None and create a fresh dictionary per call so merge
invocations cannot share accumulated state.
2026-09-01 13:55:00 +08:00
天海蒼灆 07660a1bb2 feat(agent): expose Iteration max_concurrency on the canvas (#19066) 2026-09-01 13:44:31 +08:00
Tyyyy 02912f7d1b fix(agent): sanitize Excel output sheet names (#18505)
Fix ExcelProcessor sheet name sanitization — replaces invalid characters (: etc.), preserves 31-char limit, handles reserved names, and deduplicates.
2026-08-31 14:35:14 +08:00
qinling0210 cb158785a9 Fix llm.py (#19037)
Fix "Provider not found for model" introduced by #18318
2026-08-31 11:49:46 +08:00
abdabf883b fix(rag): key Infinity field_map by original column names, not pinyin (#18318)
Fixes #18287

Fix SQL retrieval field mapping: field_map used pinyin keys but chunk_data stored original names. Now keyed by original name on Infinity/OceanBase/SereneDB. Non-ASCII columns now work.

Co-authored-by: Taranum01 <Taranum01@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Taranum01 <50813317+Taranum01@users.noreply.github.com>
Co-authored-by: Taranum01 <taranumwasu@users.noreply.github.com>
2026-08-28 15:15:07 +08:00
Anupam Mediratta ba291809ad fix: upgrade starlette to 1.3.1 (CVE-2026-54283) (#18947)
Upgrade starlette from 0.49.1 to 1.3.1 to fix CVE-2026-54283.

---
*Automated security fix by [OrbisAI Security](https://orbisappsec.com)*
2026-08-28 13:59:41 +08:00
var4dev 4ec2c2582c feat(agent): make MCP tool call timeout configurable (#18016)
Make MCP tool call timeout configurable per agent (was hardcoded 10s). Added tool_timeout field to agent settings.
2026-08-27 15:03:44 +08:00
jay77721 0947a87c76 fix(parser): align image output_format to json and use per-family defaults (strict) (#18802) 2026-08-27 10:05:10 +08:00
陈志谦andjindou fdf937177d fix(security): authenticate sandbox executor API and isolate container network (#18703)
Fix sandbox security gaps: (1) add token auth + rate limiter to POST /run, bind port to localhost; (2) default containers to --network none. Backward compatible. Tests pass, docs updated.

---------

Co-authored-by: jindou <jindou@local>
2026-08-26 19:26:28 +08:00
MarMar Labs c2c2010974 fix(sandbox): sync the sandbox env with the Python version it requires (#18766)
Update python version to 3.13
2026-08-26 12:07:52 +08:00
MarMar Labs b4958dce3d fix(sandbox): remove the sandbox containers that exist, not a pool-size range (#18629)
Fix sandbox teardown (make clean / stop.sh) to remove actual containers by pattern instead of relying on POOL_SIZE range. Old logic left containers behind when .env changed or was missing. Now uses docker ps -a | grep with anchored pattern. Cleanup works without .env; Docker errors are properly reported.
2026-08-26 10:29:23 +08:00
MarMar Labs 407ec2c866 docs(sandbox): describe how the container pool is actually sized (#18625)
Fix sandbox spec documentation mismatch. pool_size is a deployment-scoped env var (read-only), not a writable runtime setting. Removed from writable examples, updated spec to match actual provider schema, and fixed stale test assertions.
2026-08-26 10:25:28 +08:00
Yuzhong Zhang df7f1908c8 fix(agent): default missing Graph path so stored DSL cannot KeyError (#18753) 2026-08-25 19:56:50 +08:00
euvre 9a03f708ec fix(agent): panic and raw error when auto play runs without a default TTS model (#18734) 2026-08-25 19:34:26 +08:00
陈志谦andjindou 4870e83aa7 fix(agent): prevent path traversal and SSRF in Browser URL file upload (#18711)
Hardens Browser component URL upload against path traversal (CWE-22) and SSRF (CWE-918). Fixed filename extraction to decode before basename() with strict validation. Replaced urllib with SSRF-safe fetch + manual redirect following. 15 tests pass.

---------

Co-authored-by: jindou <jindou@local>
2026-08-25 17:30:48 +08:00
Wang Qi 92c69db79e Refactor: expose knn top_k and knn num_candidaties (#18737)
Follow on #18300
2026-08-25 17:16:36 +08:00
rsnetworkingincandrsnetworkinginc 8e6f94bfa6 fix: substitute Message variables literally to avoid re.error on regex escapes (#17319)
### Summary

Fix Message component crash where re.sub treated variable values as regex templates. Windows paths like C:\10\report caused invalid group reference errors. Switched to str.replace for literal substitution and added _apply_kwargs helper. Unit tests added.

Co-authored-by: rsnetworkinginc <rsnetworkinginc@users.noreply.github.com>
2026-08-25 12:46:03 +08:00
rsnetworkingincandrsnetworkinginc a7421bfd60 fix: substitute UserFillUp tips placeholders literally to avoid re.error (#17321)
### Summary

Fix UserFillUp crash where re.sub treated field values as regex replacements. Windows paths like C:\1files caused invalid group reference errors. Switched to str.replace for literal substitution. Regression test added.

Co-authored-by: rsnetworkinginc <rsnetworkinginc@users.noreply.github.com>
2026-08-25 12:39:01 +08:00
c6b2923387 feat(agent): add You.com search tool (#18583)
### Summary

@JinHai-CN — the agent tool you asked for in #18478, as its own PR.

Adds `YouComSearch` to the agent tool set, modeled on the Keenable tool
(#16233) rather than Querit's: You.com exposes a small parameter
surface, so this needs a two-field form rather than a bespoke form
suite. **+594 lines**, close to Keenable's +392 and well under Querit's
+3527.

Independent of #18478. That PR wires You.com into chat retrieval; this
one is the agent canvas node. Neither depends on the other and they
share no lines.

---------

Co-authored-by: Brian Sparker <brainsparker@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-25 12:16:40 +08:00
Wang Qi 4c6f745c1e Refactor: rename prefetch_size to rerank_candidates (#18718) 2026-08-25 11:35:53 +08:00
Sbaaoui Idriss 295727822e fix: validate message content to prevent empty values (#18676) 2026-08-24 19:33:33 +08:00
primorLeeandJin Hai a113116780 fix(agent): preserve whitespace around message references (#18666)
### Summary

- keep literal whitespace outside streamed message references
- retain single, double, and spaced outer-brace reference forms
- apply the same boundary rule to iteration aliases
- add regression coverage for adjacent and consecutive references

Fixes #18665

---------

Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-08-24 19:25:03 +08:00
Wang Qi 5659476a30 Fix: correct rerank #17296 - add prefetch_size (#18300) 2026-08-24 16:09:07 +08:00
de029503ee docs: replace root-relative cross links with relative page links (#18664)
configurations.md and backup_and_migration.md cross-linked each other
via /migration#... and /configurations#s3-tigris. These host-absolute
paths match no route on the docs site (real pages live under
/administrator/...) and 404 on GitHub. Point them at the sibling
markdown files so both Docusaurus and GitHub can resolve them; the
existing anchors are preserved.

---------

Co-authored-by: jindou <jindou@local>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-08-24 11:58:43 +08:00
陈志谦andjindou c1ee17bebc fix: Invoke proxy uses validated URL; remove stray debug print in Canvas.reset (#18657)
### Summary

Two small fixes found during a code-review pass.

**1. `Invoke._build_proxies` sends the raw proxy string instead of the
normalized one**

**2. Leftover `print(self.variables)` in `Canvas.reset`**

---------

Co-authored-by: jindou <jindou@local>
2026-08-24 11:46:06 +08:00
Loong c15241c3a9 fix(agent): reset execution path for new sessions (#18532) 2026-08-20 22:42:55 +08:00
c466ff3b1a fix(llm): disable DeepSeek V4 thinking by default via extra_body (#18241)
## Summary
- Disable DeepSeek V4 thinking (chain-of-thought) by default.
- litellm 1.82.x drops `thinking: disabled`; carry the toggle through
`extra_body.thinking.type` and strip `reasoning_effort` to avoid the
400.
- Use local timezone for agent `sys.date` instead of UTC.

Reference: https://api-docs.deepseek.com/guides/thinking_mode

---------

Co-authored-by: Claude <claude@example.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-08-19 13:47:36 +08:00
Muhammad Furqan c3153ba294 fix(agent/tools): port DeepL to ToolBase so it works as an Agent tool (#18395)
### Summary

Closes #18394.
2026-08-18 15:36:11 +08:00
var4dev 63a454084e fix(agent): close MCP sessions wrapped in MCPToolBinding (#18399) 2026-08-18 13:15:16 +08:00
Ilya Bogin 9c81d9be8b fix(agent/tools): read Keenable result content from snippet (#18341)
### Summary

Follow-up bug fix to #16233 (the Keenable search tool, merged
2026-06-25).
2026-08-17 20:25:24 +08:00
balibabu e3d46efce3 Fix: The begin operator of the agent created from the template does not display a pattern. (#18367) 2026-08-17 17:12:50 +08:00
wenqian c589a5d050 feat: add UCloud agent sandbox provider (#18088) 2026-08-13 15:33:03 +08:00
jay77721 e1b8366ecc refactor: remove resume (CV) workflow DSL template and Go handling code (#18177) 2026-08-13 10:47:37 +08:00
EthanZhang 1d8b9c7452 feat(agent): add Querit Contents tool (#18156)
### Summary

Add Querit Contents as a built-in page content tool for RAGFlow Agents
and Canvas workflows.

Querit Contents crawls one or more known URLs and returns their page
content and optional metadata. It complements the existing Querit Search
tool: Search discovers relevant pages, while Contents retrieves pages
already selected by an Agent or workflow.

This integration supports two usage modes:

- A standalone `QueritContents` node in Canvas workflows.
- An embedded content tool available to RAGFlow Agents.
2026-08-12 21:03:21 +08:00
Zhichang Yu d9ed14ce9c feat: wiki incremental Mode A/B with durable rewrite barrier (#18122)
Port the wiki_incremental dataset-level merge and make its rewrite
barrier durable and concurrency-safe. Wiki pages merge replace-only; the
barrier persists a monotonic numeric generation, and a scheduler-backed
per-dataset lock closes the cross-process TOCTOU window. Adds the
Compiler Plan toggle (frontend) with Mode A grouping.
2026-08-11 22:10:49 +08:00
Carl Calaquian ad6fdfd7b4 fix(sandbox): update Tenki SDKs and drop removed project_id (#18117)
### Summary

Brings both halves of the Tenki sandbox provider onto current SDKs and
removes `project_id`, which Tenki deleted from its API.

**Go:** `github.com/LuxorLabs/tenki-sdk-go/sandbox` `v0.5.2` → `v0.7.0`
(current latest).
**Python:** the provider's SDK was renamed on PyPI — `tenki-sandbox` is
frozen at 0.4.0 and everything from 0.5 ships as
[`tenki`](https://pypi.org/project/tenki/). The docs told operators to
`pip install tenki-sandbox`, which installs a stale SDK that no longer
matches this provider's expectations.

**`project_id` is gone.** Tenki removed project scoping from the sandbox
API in 0.5.x: `Client.create()` no longer accepts `project_id`, so the
current code path would raise `TypeError` against a current SDK. It was
also marked `required: True` in the config schema, so the Admin >
Sandbox Settings form asked for a value that no longer exists.
2026-08-11 20:37:21 +08:00