bf99e01b51
feat(LocalRunnerClient): introduce LocalWatchServiceHelper and internal implementations
...
Context:
This change introduces an internal scaffold to organize WatchEventHandler building logic.
2025-12-29 17:45:39 +08:00
1bd23b20c4
refactor(LocalRunnerClient): introduce DescMcpServer
...
Context:
This refactor supports creating descriptional files for common MCP Tools.
2025-12-29 17:35:03 +08:00
442dd55686
refactor(LocalRunnerClient): rename LocalWatchServiceRegistry
2025-12-29 14:27:00 +08:00
abe5dd5251
chore(idea): update misc.xml
2025-12-26 21:28:10 +08:00
1f737c0e29
refactor(action): reorganize constants in action module
2025-12-26 21:28:02 +08:00
d41074c814
refactor(LocalRunnerClient): replace ActionWatchService with unified watch service builder.
...
Context:
ActionWatchService was used to support SCRIPT and PLUGIN type actions loading from local FileSystem, this refactor allows register different paths to watch.
2025-12-25 15:41:49 +08:00
621441601a
feat(LocalRunnerClient): correct method signature
2025-12-25 10:20:55 +08:00
e00d77f076
feat(LocalRunnerClient): add shutdown logic for dynamicActionMcpServer
2025-12-25 10:12:38 +08:00
d614ac0b15
feat(LocalRunnerClient): support initializing in-process dynamic action MCP Server
2025-12-24 21:36:39 +08:00
592e2604d9
refactor(mcp): move InProcessMcpTransport into Partner-Common module
...
Context:
Action modules in Partner-Main and SandboxRunner module rely on in-process MCP transport to support dynamically action generating.
2025-12-24 19:34:04 +08:00
dcbd2c6569
build(maven): introduce common module
2025-12-24 19:21:53 +08:00
476acb0641
refactor(LocalRunnerClient): rename McpServerParams into McpClientTrasnportParams
2025-12-22 15:02:07 +08:00
88a14f36b2
refactor(runner): relocate InProcessMcpTransport to experimental and move local MCP client logic into LocalRunnerClient
...
Context:
Recent changes blurred the responsibility boundary between RunnerClient and LocalRunnerClient.
This refactor moves local MCP client–specific logic into LocalRunnerClient and isolates InProcessMcpTransport and related code under the experimental package.
RunnerClient only defines indispensable methods and attributes.
2025-12-22 14:56:23 +08:00
05d1fff125
refactor(RunnerClient): remove unused MCP type enum class
2025-12-21 23:03:25 +08:00
49a4c9eb01
docs(RunnerClient): add architecture-location comment on RunnerClient
2025-12-21 22:05:46 +08:00
9e76c3e7ad
refactor(SandboxRunnerClient): align doRun visibility with superclass
2025-12-19 23:34:17 +08:00
9762739138
refactor(action): replace HashMap with ConcurrentHashMap for thread-safe MetaAction storage
2025-12-19 23:30:27 +08:00
1f5509c17d
refactor(RunnerClient): redesign existedMetaActions update strategy
...
Context:
Resource-change events cannot reliably represent tool changes.
The previous approach attempted to externalize descriptive content into files, but the meta attribute of McpSchema.Tool can provide this information.
2025-12-19 23:22:36 +08:00
ed042cfffa
fix(action): correct params type in related DTOs
2025-12-19 22:57:34 +08:00
128592e23c
chore(MetaActionInfo): remove unused type attribute
2025-12-19 22:47:06 +08:00
5ba36ed3e8
feat(LocalRunnerClient): support executing MetaActions via MCP type
2025-12-19 22:29:03 +08:00
4dea948f82
refactor(MetaAction): separate key attribute into name and location
...
Context:
This change adapts MetaAction locating to support different MetaAction types,
including loading from the local filesystem and from MCP tools.
2025-12-19 21:35:39 +08:00
dc4074715e
chore(MetaAction): remove unused order attribute
2025-12-19 20:53:01 +08:00
225802c1a8
refactor(MetaActionInfo): remove key attribute and update related logic
...
Context:
MetaActionInfo was previously located via its own key attribute.
This is now redundant, as ActionCore already uses the key of existedMetaActions
as the single source of truth.
2025-12-19 20:41:07 +08:00
e851e33b2e
feat(RunnerClient): support MCP type-based dynamic client/server registration
...
This allows implementations of RunnerClient to dynamically register different types of MCP service, and also provides a shutdown hook to close client/server properly.
2025-12-18 22:25:32 +08:00
cb28a5b068
feat(RunnerClient): add InProcessMcpTransport to support in-process MCP communication
...
Context:
This allows RunnerClient implementations to host local MCP servers without spawning another process.
2025-12-18 21:48:35 +08:00
ad58567ada
chore(deps): introduce mcp dependencies
2025-12-18 17:52:15 +08:00
0eee12d685
refactor(MetaActionInfo): remove outdated constructor
...
Context:
Previously, MetaActionInfo comes from the local filesystem changes.
But now MCP Servers already provide a method to get information of MetaActions.
The pre- or post-dependencies are still required, for some MCP Tools cannot just be executed without additional context.
2025-12-18 17:49:52 +08:00
1e6ff1b30c
chore(ActionCore): update outdated comment
2025-12-18 17:49:52 +08:00
0413fc281d
chore(MetaAction): update outdated comment
2025-12-17 22:18:43 +08:00
8a7681ae31
chore(LocalRunnerClient): remove a redundant comment
2025-12-17 20:02:28 +08:00
1947f25ed6
feat(LocalRunnerClient): support executing origin actions
...
Context:
Origin actions are generated by DynamicActionGenerator and may optionally be
persistently serialized. This feature adds the basic execution flow for origin
actions within LocalRunnerClient.
Notes:
The current mapping between action files and their extensions is hardcoded. This should later be replaced with a configurable registry or loaded dynamically
during application startup.
2025-12-16 21:59:53 +08:00
488246525f
chore(gitignore): exclude runtime data directory from version control
2025-12-16 21:39:11 +08:00
534dcd5ade
fix(LocalRunnerClient): correctly capture stdout and stderr to avoid missing output in method exec
2025-12-16 21:30:51 +08:00
ad58c0cc7c
refactor(LocalRunnerClient): allow injecting action watch path
...
Context:
The hardcoded action watch path made LocalRunnerClient difficult to test and
tightened it to a specific runtime layout. Injecting the watch path improves
testability and allows the runner to work in different runtime environments.
2025-12-16 21:02:29 +08:00
d546148d69
chore(test): organize experimental tests and test resources
2025-12-16 19:58:08 +08:00
bf2d5ac707
refactor(RunnerClient): restructure serialization and temp execution paths
...
Context:
Following the consolidation of action types into ORIGIN and MCP,
the serialization logic needs to be separated into dedicated methods.
These methods are invoked by DynamicActionGenerator.
2025-12-16 10:47:23 +08:00
628234f6e2
refactor(MetaActionType): redefine meta action types into MCP and ORIGIN
...
Context:
Previously, SCRIPT and PLUGIN were treated as separate action types,
but their semantics are already covered by MCP.
However, a generic execution path for locally generated actions is still
required, which is represented by ORIGIN.
2025-12-16 10:37:04 +08:00
4b852e0049
推进 ActionExecutor 下的‘行动生成与执行’部分
...
- 新增 RunnerClient 抽象类,并划分 SandboxRunnerClient、LocalRunnerClient两个子类(内容待完善)。前者负责对接 SandboxRunner 模块,后者直接使用本地作为执行环境(但不推荐)。
- 将 ActionWatchService 划为 LocalRunnerClient 的内部类,负责采用本地执行环境时,监听行动程序变化
- 完善 ActionRepairer 处的修复逻辑
- 调整 MetaAction 中路径获取逻辑
这提交方式真该调整一下了,这阶段推进容易攒太多,但又不好停手。或许阶段目标可以保留,但推进点应该可以细化🤔
2025-12-15 21:54:24 +08:00
6e3deced77
推进 ActionExecutor 下的 DynamicActionGenerator 子模块
...
- 完善了 DynamicActionGenerator 的大致逻辑,序列化逻辑待实现
- 补充了 PhaserRecord 中的阻塞逻辑,使用普通的线程sleep操作
- 调整了 MetaAction 中参数形式,由列表替换为 Map,便于执行时填写参数
- 完善了 DynamicActionGenerator 相关的数据类
2025-12-07 20:10:53 +08:00
6a351413a1
推进行动执行模块: 调整了 ActionExecutor 以支持行动链动态修复和参数提取; 完善了 ActionRepairer、ParamsExtractor 的主要逻辑; 完善了部分数据类的内容
...
- 在 ActionData 中新增 additionalContext 用于存储各个执行阶段临时修复生成的上下文,同样以执行阶段为键
- 调整 ActionExecutor 的输入参数,可传入用户标识,用于执行器调用 ActionRepairer 的修复过程
- 完善了 ActionExecutor 中行动单元的执行与修复逻辑,将支持正常状态推进执行、触发自对话时阻塞当前行动单元、所有修复方式失败时将整个行动数据标为 FAILED
- 完善了 ActionExecutor 中各个DTO的构建方法
- 完善了 ParamsExtractor 中的参数提取逻辑
- 在 PhaserRecord 中新增 interrupt 和 complete 方法,将用于后续行动单元的阻塞(ActionExecutor中)与恢复(InterventionHandler中)
- 完善了 ActionRepairer 中的修复逻辑,但自对话通道的暴露方式、DynamicActionGenerator 的具体逻辑待完善
2025-12-05 21:58:21 +08:00
ad973d4230
对 ActionExecutor 下子模块的功能分布、某些实体类进行了调整; 完善了 ActionExecutor 中的大致执行逻辑
...
- 梳理执行链路时发现 ActionRepairer 的能力明显超出可实现边界,故将其能力进行限定
- 新增 ActionCorrector 负责单组行动执行完毕后,根据意图和执行状况进行行动链修正
- 将 PhaserRecord 拆分为独立实体,未来将封装一部分流程控制逻辑
2025-12-02 22:35:53 +08:00
1d315a9b62
ActionExecutor 的执行流程规划完毕,具体逻辑待填充
...
- 调整了部分代码分布,移除了某些非必需的转发方法
- 新增几个 TODO 内容,后续工作已明确
这套调度方式看起来真的有些‘探索性质’了。实际上看起来有些像把 ReAct 的逻辑显式地进行了工程实现,不管是修复、依据状态选择行动单元生成还是阶段间针对行动单元的参数提取,在 ReAct Agent 中都是由一个智能体完成的。
但在这里,它要做的事情太多了,再加上 Partner 行动链的干预逻辑、幻觉参数又不可接受所以需要自对话或者用户干预,这些东西交给一个 ReAct 模块恐怕并不合适也不放心。所以这种显式模块划分应该更符合 Partner 行动模块的需求。
这点硬要说的话,应该还是在于‘ReAct 行为’并非 Partner 的全部吧。
不过谁知道呢,也许以后也会变,但这套至少现在看来是更能实现理想行为的
2025-12-01 19:25:21 +08:00
4e32129b31
优化行动链结构及相关组件、针对 ActionPlanner 相关组件做出调整
...
- 将existedMetaActions的实现由LinkedHashMap替换为HashMap,免去不必要的性能消耗
- 在 ActionCapability 中新增 listAvailableActions 方法用于获取当前存在的可用行动
- 将 ActionData 及相关类中的 LinkedHashMap 替换为普通Map,阶段并发将通过遍历key集合进行,而非针对原始行动链进行遍历
- 在 ActionPlanner 中完善行动链依赖修正逻辑,防止行动单元执行时的输入缺失
- 在 ActionEvaluator 中调整了 Prompt 构建方式
- 调整处理行动链相关代码,移除多余参数,简化方法签名
- 修正 EvaluatorResult 中行动链数据结构为Map,LLM将直接返回初始行动链,后续将加载行动数据并修复行动单元间的依赖关系
- 优化 InterventionHandler、ActionExecutor 等模块中对行动链Map的使用
2025-12-01 17:20:54 +08:00
3f59719e16
调整 MetaAction 的执行方式,将交给 ActionCapability、SandBoxRunnerClient 执行
2025-11-30 22:16:57 +08:00
c548cceec6
新增 SandboxRunner 项目子模块,该模块将在指定容器运行持久服务,与外部主进程通信,将用于后续执行JAR、SCRIPT两类行动类型
2025-11-30 18:41:42 +08:00
b3098310b4
完善了 ActionConfirmer 的遗漏逻辑
2025-11-30 15:16:57 +08:00
f48d559a7b
调整了 ActionInterventor 中数据构建方法的组织方式
2025-11-30 14:38:50 +08:00
14a57f0be6
推进行动干预模块,前置部分逻辑已基本完成
...
- 在`ActionData`中添加必要注释、新增`executingStage`字段表示当前执行阶段、移除了`WAITING`的状态类型
- 调整并修正了`ActionExecutor`中的`Phaser`阻塞逻辑
- 完善了`ActionInterventor`中`识别 -> 评估 -> 异步执行`的干预逻辑,并将干预结果以 Prompt 形式回写至流程上下文,作为主模块的已知内容
- 调整了干预模块内部的各个数据类的字段结构,适配干预流程
- 完善了`InterventionEvaluator`、`InterventionHandler`、`InterventionRecognizer`等必需的干预子模块
2025-11-29 20:56:29 +08:00
dff7b69b51
更新 README
2025-11-12 19:53:48 +08:00