Commit Graph

2449 Commits

Author SHA1 Message Date
everywhere.z
192579ee8e feat(core): 支持无 chain 配置启动
放宽 DTD 与 JSON 解析对 chain 节点的强校验,允许 ruleSource 下未定义任何 chain 时正常启动;新增 NoChainELSpringbootTest 用例。
2026-04-30 14:27:49 +08:00
铂赛东
2feb4b636c !355 bug 修复 PercentageOfParallelExecutor 并行任务执行时可能出现的阻塞问题
Merge pull request !355 from luoyi/issues/IIYPFL
2026-04-30 05:49:01 +00:00
everywhere.z
bfad0ece58 docs(react-agent): document default NanoId session and ReAct logging hook
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 11:59:56 +08:00
everywhere.z
47095ddd40 test(react-agent): consolidate test suite to a Gemini integration test
Remove the per-platform model/factory/entry tests and the unit-style
tool/session/component tests; keep a single Spring Boot integration
test that exercises the full ReAct chain against Gemini.

The pruned tests were tightly coupled to the older ModelSpec/Builder
APIs and largely duplicated coverage now provided by the integration
flow plus the new logging hook visibility.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 11:49:39 +08:00
everywhere.z
9612800b4b feat(react-agent): log ReAct reason/act events with sessionId and config toggle
Subscribe to agentscope Pre/PostReasoningEvent, Pre/PostActingEvent
and ErrorEvent through a new ReActLoggingHook, surfacing the agent's
internal think-act loop in standard logs. Each line carries the
LiteFlow agent sessionId so concurrent sessions stay distinguishable.

ReActAgentComponent attaches the hook automatically alongside any
user-provided hooks. Toggle via liteflow.agent.logging.react-enabled
(default true) or override enableReActLogging() per component.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 11:49:27 +08:00
everywhere.z
5bd1850d99 fix(react-agent-gemini): align agentscope and google-genai versions with parent BOM
The module had hardcoded agentscope:1.0.9 and google-genai:1.0.0,
which conflicted with parent pom's 1.0.11/1.38.0 properties and
caused NoSuchMethodError on Part.thoughtSignature() at runtime.
Use the property placeholders so versions stay centrally managed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 11:49:17 +08:00
everywhere.z
a630e85a88 chore(react-agent-core): add missing NanoIdSessionIdGenerator source
Supplements 61824d695 which referenced this generator without
checking it in.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 11:49:10 +08:00
everywhere.z
61824d6956 feat(react-agent): add session factory infrastructure, memory storage config, and integration tests
- Add MemoryStorageConfig/MemoryStorageMode and per-backend configs (Redis, MySQL, workspace file)
- Add AgentSessionFactoryRegistry with NONE, JVM, WORKSPACE_FILE, REDIS, MYSQL implementations
- Add integration test suite with EL-orchestrated Spring Boot tests
- Remove per-module READMEs in favor of unified guide
- Update POMs, CLAUDE.md, AGENTS.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:12:29 +08:00
everywhere.z
0820f45032 docs(react-agent): rewrite usage guide based on current ModelSpec API
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:11:26 +08:00
everywhere.z
c612dfaf72 test(react-agent): migrate test cmps to ModelSpec API
Replaces buildModel(ctx) overrides with model(ctx) returning
DeepSeek/OpenAI/Anthropic/Gemini/DashScope spec instances.
Also updates TestAgent inner classes in ReActAgentComponentTest
and MemoryStoragePersistenceTest.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:30:21 +08:00
everywhere.z
ca9608f793 refactor(react-agent-core): switch abstract from buildModel to model
ReActAgentComponent now requires subclasses to override model(ctx)
returning a ModelSpec. The legacy buildModel(ctx) becomes a
non-abstract escape hatch with a default implementation delegating
to model(ctx).resolve(agentConfig()).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:25:22 +08:00
everywhere.z
055e7399e1 feat(react-agent-dashscope): add DashScope entry and DashScopeSpec
DashScope.of(modelName) returns DashScopeSpec with a thinking
sub-builder using DashScope's native budget term.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:22:39 +08:00
everywhere.z
64d5404b2c feat(react-agent-gemini): add Gemini entry and GeminiSpec
Gemini.of(modelName) returns GeminiSpec exposing a thinking sub-builder
that supports both Gemini 2.5's level() and the legacy budget() form.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:22:33 +08:00
everywhere.z
994cbd2a25 feat(react-agent-anthropic): add Anthropic entry and AnthropicSpec
Anthropic.of(modelName) and AnthropicCompatible.custom(configKey,
modelName) return AnthropicSpec, with a thinking sub-builder using
Anthropic's native budget/enabled terms.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:22:27 +08:00
everywhere.z
679dc33ca2 feat(react-agent-openai): add OpenAI-compatible vendor entries
DeepSeek/Kimi/GLM/Minimax static entries with default baseUrls,
plus OpenAICompatible.custom() fallback for arbitrary vendors.
All read credentials from liteflow.agent.openai-compatible.<key>.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:15:36 +08:00
everywhere.z
5cc43acff2 feat(react-agent-openai): add OpenAI entry and OpenAISpec
OpenAI.of(modelName) returns an OpenAISpec exposing reasoningEffort,
frequencyPenalty, and presencePenalty in addition to the common
ModelSpec setters; resolve() reads liteflow.agent.openai credential.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:11:54 +08:00
everywhere.z
b40ec52632 feat(react-agent-core): add CredentialResolver helper
Centralizes credential lookup with consistent AgentConfigException
messages that point at the relevant liteflow.agent.* config path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 18:06:46 +08:00
everywhere.z
4abb4d1eb4 fix(react-agent-core): widen ModelSpec.resolve to public
resolve() is the framework SPI: ReActAgentComponent (in a different
package) needs to call spec.resolve(cfg), which protected access
does not permit. The test's TestSpec override is widened in lockstep
since Java forbids narrowing visibility on override.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 17:54:26 +08:00
everywhere.z
c417620f2c feat(react-agent-core): introduce ModelSpec base class
Vendor-neutral model descriptor with common fluent setters
(temperature/topP/topK/maxTokens/seed/stream/cacheControl) and an
abstract resolve(AgentConfig) SPI that provider modules implement.
2026-04-29 17:43:38 +08:00
everywhere.z
4285720428 docs(react-agent): add implementation plan for ModelSpec redesign
10-task TDD plan covering ModelSpec/CredentialResolver in core, the
four provider modules (openai/anthropic/gemini/dashscope), the
ReActAgentComponent abstract-method switch, and migration of test cmps.
2026-04-29 17:37:04 +08:00
everywhere.z
b63bc1a7f4 docs(react-agent): add design spec for ModelSpec API redesign
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 17:28:23 +08:00
everywhere.z
b2d47d74c9 fix(build): use JDK-activated profile for react-agent modules
Move liteflow-react-agent from compile/release profiles to a dedicated
react-agent profile that auto-activates on JDK 21+. This keeps the
project buildable under Java 8 — react-agent is only included when
the JDK supports it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 23:49:33 +08:00
everywhere.z
efe384890a docs(agent): add README for react-agent parent and sub-modules
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:08:14 +08:00
everywhere.z
4b2050446c fix(build): enable gemini module in parent pom
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:06:12 +08:00
everywhere.z
7a0720636f fix(agent-anthropic): add anthropic-java SDK dependency
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:04:55 +08:00
everywhere.z
e573416bf4 feat(agent-dashscope): add DashScope module to parent pom
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:01:38 +08:00
everywhere.z
6840f2fc2a feat(agent-dashscope): add DashScope (Qwen) model factory
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:00:42 +08:00
everywhere.z
ff9f6e22d0 fix(agent): comment out unimplemented modules
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:00:24 +08:00
everywhere.z
f85d09a2b6 feat(agent-anthropic): add Anthropic model factory
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 20:00:12 +08:00
everywhere.z
7bf6908793 feat(agent-gemini): enable gemini and dashscope modules
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:59:54 +08:00
everywhere.z
8dcfc56258 feat(agent-gemini): add Gemini model factory
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:59:45 +08:00
everywhere.z
d719f83162 feat(agent-openai): add OpenAI factory and compatible presets
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:58:55 +08:00
everywhere.z
404f55c94e test(agent-core): add ReActAgentComponent end-to-end test with FakeEchoModel
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:56:48 +08:00
everywhere.z
17d5deefc7 feat(agent-core): implement ReActAgentComponent with final process()
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:52:57 +08:00
everywhere.z
4f9a4cdca6 feat(agent-core): add ManagedShellCommandTool with whitelist/blacklist policy
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:41:56 +08:00
everywhere.z
3b4c283ae4 feat(agent-core): add WorkspaceFileTools with path traversal guard
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:41:48 +08:00
everywhere.z
7740bab36d fix(agent-core): remove duplicate POJOs from core module
The AgentConfig/SessionConfig/WorkspaceConfig POJOs belong in
liteflow-core, not liteflow-react-agent-core.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:37:06 +08:00
everywhere.z
c9bcc4f1b1 feat(agent-core): add AgentSessionManager with LRU eviction and idle cleanup
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:36:03 +08:00
everywhere.z
b5920b0363 build: enable surefire tests in react-agent-core module
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:32:35 +08:00
everywhere.z
42a03a508f feat(agent-core): add AgentSession with reentrant lock and lastActive
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:30:30 +08:00
everywhere.z
bb5969de75 feat(agent-core): add ReActAgentContext value holder
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:30:23 +08:00
everywhere.z
4574658f56 feat(agent-core): add AgentException hierarchy
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:30:18 +08:00
everywhere.z
73c266529f build: scaffold liteflow-react-agent-core module
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:22:13 +08:00
everywhere.z
fa3cf706ca build: register liteflow-react-agent parent module
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:21:49 +08:00
everywhere.z
226c98fa4c feat(solon): bind agent config into LiteflowConfig
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:16:54 +08:00
everywhere.z
e28308b471 feat(starter): bind liteflow.agent into LiteflowConfig via LiteflowProperty
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:14:40 +08:00
everywhere.z
b04b22d407 build: declare agentscope and google-genai versions in root pom
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:12:31 +08:00
everywhere.z
94fc5189d6 feat(core): expose agent field on LiteflowConfig
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:11:24 +08:00
everywhere.z
b64706c26a feat(core): add AgentConfig POJOs for ReAct agent configuration
Introduce AgentConfig and nested POJOs (WorkspaceConfig, SessionConfig,
ShellConfig, DefaultsConfig, PlatformCredential, ShellMode) as pure data
holders with sensible defaults and zero third-party dependencies. Add
JUnit 5 test dependency and surefire override to liteflow-core for TDD.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 19:08:23 +08:00
everywhere.z
3751739b26 docs: 新增 liteflow-react-agent 模块实现计划
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 15:25:06 +08:00