matevip
7f45b95432
feat(agent): include progress-ledger snapshot in limit-exceeded wrap-up
2026-05-24 23:00:49 +08:00
matevip
59d090ebb5
chore(agent): raise default max_iterations 100 -> 150
2026-05-24 23:00:42 +08:00
matevip
c36abf38b8
feat(agent): inject stale-ledger reminder when the model stops updating
2026-05-24 23:00:35 +08:00
matevip
8798668524
feat(agent): require ledger discipline in system prompt for multi-step tasks
2026-05-24 23:00:30 +08:00
matevip
9f2fb3db23
feat(agent): echo full ledger snapshot in progress_update tool result
2026-05-24 23:00:24 +08:00
matevip
7736f6b0ab
fix(agent): serialise progress-ledger upsert per conversation
2026-05-24 23:00:17 +08:00
matevip
e953f8be5a
feat(agent): age-based compaction of older tool-response bodies
2026-05-24 23:00:11 +08:00
matevip
05289e6bdb
feat(agent): per-conversation progress ledger to survive context trims
2026-05-24 23:00:03 +08:00
matevip
fe9610dfa6
fix(dashboard): count tool calls from assistant.metadata, not role=tool rows
2026-05-24 22:58:02 +08:00
matevip
8030a41125
fix(api): return 400 on path-variable type mismatch instead of 500
2026-05-24 22:57:51 +08:00
matevip
c49b4a21bb
fix(tool): force markdown-link reply for generated-file downloads
2026-05-24 22:57:41 +08:00
matevip
68effa3f90
fix(tool): retry browser_use eval with async IIFE on top-level return
2026-05-24 22:57:30 +08:00
matevip
c857d6dd45
fix(agent): retry empty LLM completion before treating it as final answer
2026-05-24 22:57:19 +08:00
matevip
481cece733
fix(channel): preserve queued chat inputs across turns
2026-05-24 22:57:08 +08:00
matevip
a9c2d45790
Harden goal approval and workspace flows
2026-05-23 22:55:16 +08:00
matevip
5cd6e841a4
feat(skill): broaden script security scan + GBK zip-import fallback
2026-05-23 22:55:10 +08:00
matevip
4e01c98fc1
docs: add v1.4.0 release notes and update guides for the release
2026-05-23 22:55:03 +08:00
matevip
3fc121c6b7
fix(tool): show runtime names in tools admin
2026-05-23 22:54:57 +08:00
matevip
123d912f84
fix(skill): allow template file access
2026-05-23 09:08:01 +08:00
matevip
cef1730e6e
feat(tool,skill,ui): progressive tool/skill disclosure (load_skill + enable_tool + tier UI)
2026-05-23 09:07:45 +08:00
matevip
773c64bfd7
chore(tool): localize send_file success message and use English Javadoc
2026-05-22 16:32:10 +08:00
倪程伟
f16021690f
feat(tool): add send_file tool for sending existing server files as IM attachments ( #199 )
...
* feat(tool): add send_file tool for sending existing server files as IM attachments
Adds a new built-in tool that reads a file from the server and stashes it
in GeneratedFileCache so the channel adapter (Feishu, DingTalk, etc.)
automatically sends it as a native attachment. This fills the gap where
agents had no way to send existing server files to users — ReadFileTool
only reads text, and render tools only generate new files.
- New SendFileTool with path validation, MIME detection, 20MB limit
- Added "send_file" to tool allowlist in AgentBindingService
- Added i18n error messages (zh-CN + en-US)
* fix(tool): send_file returns URL in scrubber-detectable format
The previous JSON return format caused the LLM to reply with just
"status: sent" without echoing the /api/v1/files/generated/{id} URL.
GeneratedFileScrubber only scans the LLM's final text output, so the
file was never delivered as a native attachment.
Changed to match GeneratedFileLink's format: returns a markdown link
with explicit instructions for the LLM to echo the URL verbatim.
2026-05-22 16:27:53 +08:00
倪程伟
6bf64449bd
fix(channel/feishu): register all IM event handlers to prevent HandlerNotFoundException ( #196 )
...
The Lark SDK throws HandlerNotFoundException for any event type without
a registered handler. This exception is caught internally by the SDK's
WebSocket client, which then sends a 500 response to the Feishu server.
The server may close the connection as a result, and the exception is
swallowed — never reaching the application layer.
Added empty handlers for all remaining IM event types:
- P2MessageReadV1 (read receipts)
- P2MessageRecalledV1 (message recall)
- P2ChatMemberBotDeletedV1 (bot removed from chat)
- P2ChatMemberUserAddedV1 / UserDeletedV1 / UserWithdrawnV1
- P2ChatUpdatedV1 (chat info update)
- P2ChatDisbandedV1 (chat disbanded)
- P2ChatAccessEventBotP2pChatEnteredV1 (bot entered p2p chat)
Also added explicit logback config for com.lark.oapi at WARN level
to ensure SDK internal errors are not silently filtered.
Refs: larksuite/oapi-sdk-java#185
2026-05-22 16:10:05 +08:00
matevip
5f571e86a2
feat(agent,ui): multi-level subagent delegation tree
2026-05-22 13:44:01 +08:00
matevip
8bd8a02cd0
feat(agent,ui): nested subagent timeline + always-on plan panel
2026-05-22 09:48:06 +08:00
matevip
66af70388b
fix(goal): give reasoning models enough budget for the evaluator JSON
2026-05-21 22:27:43 +08:00
matevip
7d7ea99747
fix(goal): emit goal_evaluated on every GoalEvaluationNode skip path
2026-05-21 22:27:17 +08:00
matevip
81915ccfae
feat(tool): read_file can page through an oversized single line via startColumn ( #190 )
2026-05-21 22:27:09 +08:00
matevip
9e93c52d9a
fix(goal): real evaluator, retry refactor, hardened node + extra edges
2026-05-21 22:27:00 +08:00
matevip
c34e8290ac
feat(goal,ui): inline set-goal prompt, terminal system-line, sidebar dot
2026-05-21 22:26:40 +08:00
matevip
9c5ad29d42
chore(llm): drop unused imports, add XIAOMI_MIMO cross-turn cache tests
2026-05-21 17:24:53 +08:00
倪程伟
7861f603eb
fix(llm): MiMo thinking 模式 reasoning_content 多轮对话兼容修复 ( #189 )
...
MiMo V2 系列在 thinking 模式下,assistant 消息携带 tool_calls 时必须同时包含 reasoning_content,否则提供方返回 400。
- ModelFamily 新增 MIMO_THINKING 族,detect() 添加 mimo* 匹配
- FallbackPolicy 新增 XIAOMI_MIMO(patchCrossTurn=true, patchNonToolCall=true)
- 新增 ReasoningContentCache,按 tool_call_ids 回放真实推理内容
- 缓存作用范围:所有 patchCrossTurn=true 的 thinking provider(MiMo + DeepSeek)
- NodeStreamingChatHelper 流式响应完成后写入缓存
Closes #188
2026-05-21 17:15:35 +08:00
matevip
e61b05bba0
fix(tool): read_file no longer returns empty content + infinite retry on oversized single lines ( #190 )
2026-05-21 16:26:24 +08:00
matevip
a910004b3b
feat(agent): digital-employee builder skill to auto-create agents and chain them into a workflow ( #165 )
2026-05-21 16:26:04 +08:00
matevip
e8ec612ca8
docs: add user guide for the persistent-goal feature
2026-05-21 16:25:50 +08:00
matevip
2b6a4c64c9
fix(agent): add data-fidelity rules to summarizer prompts + fix fallback cut ( #187 )
2026-05-21 15:13:15 +08:00
matevip
03e68d3c74
fix(agent): structure-aware truncation to stop mid-JSON cuts inducing hallucination ( #187 )
2026-05-21 15:13:07 +08:00
matevip
43bbe26ff9
fix(goal,agent): expose goal management tools to every agent by default
2026-05-21 14:44:06 +08:00
matevip
c9e54e820f
fix(goal,ui): live ring update after agent-triggered setGoal / addGoalCriterion
2026-05-21 14:43:59 +08:00
matevip
89f8413db8
test(agent): sync LaneDPerformanceFixesTest with MAX_RETRIES bump
2026-05-21 14:43:52 +08:00
matevip
efce3bc209
fix(goal): pin JSON wire form for GoalStatus to lowercase
2026-05-21 14:43:40 +08:00
matevip
746ade0410
feat(goal): flip enabled flag on, forward completions to long-term memory
2026-05-21 14:43:34 +08:00
matevip
6646e91585
feat(goal): built-in tools for agent-driven goal management
2026-05-21 14:43:20 +08:00
matevip
ce74a0ae48
feat(goal): graph topology + evaluation node wired into ReAct + Plan-Execute
2026-05-21 14:43:13 +08:00
matevip
ac6c8a18e3
feat(goal): persistent cross-turn goal with self-evaluation scaffolding
2026-05-21 14:43:01 +08:00
matevip
51e6542a5a
feat(channel/qq): add scan-to-bind onboarding via QQ Open Platform Lite portal
2026-05-20 21:47:49 +08:00
matevip
b26bca1584
fix(qq): handle non-Map data in DISPATCH events ( #185 )
2026-05-20 21:47:43 +08:00
matevip
2d3afa6550
feat(sessions): paginate admin list, add back-nav, redesign with depth
2026-05-20 20:58:05 +08:00
matevip
82540a5fcb
docs(conversation): bilingualize ConversationService comments (en/zh)
2026-05-20 20:57:53 +08:00
matevip
6a4318c268
fix(channel): IM conversations respect per-conversation model selection ( #183 )
2026-05-20 17:49:03 +08:00