feat(standalone): 新增单机模式,KILOSTAR_MODE=standalone 时去掉 Ray 依赖

通过 StandaloneProxy 适配层让 .remote() 调用在单机模式下透明降级为
asyncio 协程调用,7 个 Actor 和 workflow task 均可在纯 asyncio 环境运行,
启动快、资源占用低。分布式模式行为完全不变。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 15:52:41 +00:00
parent 76a67e8237
commit 457d12834f
14 changed files with 390 additions and 108 deletions
@@ -13,8 +13,8 @@
# limitations under the License.
import ray
from typing import Union, overload
from kilostar.utils.standalone_proxy import actor_class
from kilostar.core.individual.consciousness_node.template import (
ConsciousnessNodeDeps,
ForregulatoryNode,
@@ -32,7 +32,7 @@ from kilostar.utils.ray_hook import ray_actor_hook
from kilostar.utils.i18n import agent_prompt
@ray.remote
@actor_class
class ConsciousnessNode:
def __init__(self) -> None:
from kilostar.utils.logger import get_logger
@@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import ray
from pydantic_ai import Agent, RunContext
from kilostar.utils.standalone_proxy import actor_class
from kilostar.core.global_state_machine.global_state_machine import GlobalStateMachine
from kilostar.core.global_state_machine.model_provider.base_provider import Provider
from kilostar.adapter.model_adapter.agent_factory import AgentFactory
@@ -25,7 +25,7 @@ from kilostar.core.individual.control_node.template import (
from kilostar.utils.i18n import agent_prompt
@ray.remote
@actor_class
class ControlNode:
"""ControlNode(控制节点):工作流中具体子任务的执行 Actor。
@@ -13,8 +13,8 @@
# limitations under the License.
import datetime
import ray
from typing import Union
from kilostar.utils.standalone_proxy import actor_class
from kilostar.adapter.model_adapter.agent_factory import AgentFactory
from kilostar.core.global_state_machine.global_state_machine import GlobalStateMachine
from kilostar.core.global_state_machine.model_provider import Provider
@@ -27,7 +27,7 @@ from pydantic_ai import RunContext, Agent
from kilostar.utils.i18n import agent_prompt
@ray.remote
@actor_class
class RegulatoryNode:
"""RegulatoryNode(监管节点):用户请求的入口路由 Actor。