feat(system):优化后端

1.新增后端测试
2.增加了后端的加密
3.增加了i18n(国际化)
This commit is contained in:
2026-05-31 15:39:34 +00:00
parent affe460180
commit 99520c69d7
118 changed files with 8174 additions and 1491 deletions
@@ -29,6 +29,7 @@ from kilostar.core.global_state_machine.global_state_machine import GlobalStateM
from kilostar.core.global_state_machine.model_provider.base_provider import Provider
from kilostar.adapter.model_adapter.agent_factory import AgentFactory
from kilostar.utils.ray_hook import ray_actor_hook
from kilostar.utils.i18n import agent_prompt
@ray.remote
@@ -45,22 +46,19 @@ class ConsciousnessNode:
provider_title: str,
model_id: str,
tools_list: list[str] = None,
toolsets=None,
locale: str | None = None,
) -> None:
system_prompt: str = (
"你叫kilostar,是一个多智能体AI助手系统中的【意识节点 (Consciousness Node)】。\n"
"你是系统的'高级规划师''架构师',负责处理监控节点分配过来的复杂任务。\n"
"你的主要工作场景包括:\n"
"1. 拆解任务 (Workflow Generation):结合用户的原始命令和提供的模板,生成严谨、可执行的工作流 (kilostarWorkflow),并将其输出为 ForWorkflowEngine 格式。拆解时步骤应清晰连贯。\n"
"2. 中途指导 (Workflow Execution):在工作流执行中,如果某一步骤指派给你,你需要对控制节点的结果进行分析或提供下一步的指导,输出 ForWorkflow 格式。\n"
"3. 总结报告 (regulatory Report):在整个工作流执行完毕后,你需要对整体流程、各个控制节点的执行情况进行审查,并生成一份技术性的总结报告,输出 ForregulatoryNode 格式。\n"
"请确保所有的思考和生成过程符合逻辑,严密且高质量。"
)
system_prompt: str = agent_prompt("consciousness_node", locale=locale)
output_type = Union[ForregulatoryNode, ForWorkflow, ForWorkflowEngine]
from kilostar.utils.get_tool import load_tools_from_list
from kilostar.core.global_state_machine.gsm_snapshot import fetch_snapshot
provider: Provider = await global_state_machine.get_provider.remote(
provider_title
)
snapshot = await fetch_snapshot(gsm_actor=global_state_machine)
provider: Provider = snapshot.providers.get(provider_title)
if provider is None:
from kilostar.utils.i18n import t
raise ValueError(t("provider_not_registered", locale=locale, provider_title=provider_title))
agent_factory = AgentFactory()
callables = load_tools_from_list(tools_list)
@@ -72,6 +70,7 @@ class ConsciousnessNode:
deps_type=ConsciousnessNodeDeps,
agent_name="consciousness_node",
tools=callables,
toolsets=toolsets,
)
@self.agent.system_prompt
@@ -95,6 +94,13 @@ class ConsciousnessNode:
开始进行工作流设计的交互过程(与用户通过 SSE 进行确认或直接生成)
目前简化为:直接根据 command 拆解并构建工作流,然后提交执行。
"""
from kilostar.utils.request_context import trace_id_scope
# 进入工作流域:把 trace_id 绑到 contextvars,本协程所有日志自动带上它
with trace_id_scope(trace_id):
await self._do_start_workflow_design(trace_id, command)
async def _do_start_workflow_design(self, trace_id: str, command: str):
self.logger.info(
f"ConsciousnessNode: 开始为 trace_id {trace_id} 设计工作流。原始命令:{command}"
)
@@ -116,11 +122,11 @@ class ConsciousnessNode:
original_command=command, available_skills=available_skills
)
# 通知 SSE 正在生成图结构
# 通知 SSE 正在生成图结构(pending 队列:节点端写入 → API SSE 读取,单向下行)
global_workflow_manager = ray_actor_hook(
"global_workflow_manager"
).global_workflow_manager
await global_workflow_manager.put_received.remote(
await global_workflow_manager.put_pending.remote(
trace_id, "正在为您构建并规划工作流任务节点,请稍候..."
)
@@ -131,17 +137,17 @@ class ConsciousnessNode:
workflow = result.workflow
workflow.trace_id = trace_id
await global_workflow_manager.put_received.remote(
await global_workflow_manager.put_pending.remote(
trace_id, "工作流构建完成,即将开始执行!"
)
# 将生成的完整工作流提交执行
workflow_engine = ray_actor_hook(
"workflow_running_engine"
).workflow_running_engine
await workflow_engine.execute_workflow.remote(workflow)
# 直接以 ray task 形式 fire workflow,不再经过 WorkflowRunningEngine 这层中转:
# workflow 是一次性、有头有尾的执行,task 语义比常驻 actor 更贴。
from kilostar.core.work.workflow.workflow_engine import run_workflow_task
run_workflow_task.remote(workflow.model_dump(), trace_id)
else:
await global_workflow_manager.put_received.remote(
await global_workflow_manager.put_pending.remote(
trace_id, "很抱歉,工作流生成失败。"
)
await postgres_database.update_workflow_status.remote(trace_id, "failed")