第七十三章
WSaiOS Execution Engine Implementation
执行引擎工程实现
73.1 Execution Engine概述
在第七十二章中,我们完成了:
Decision Engine
输出:
Decision Object
例如:
{
"goal":"Improve SEO Ranking",
"action":"Generate Local Landing Page"
}
Decision Engine只负责:
决定做什么。
Execution Engine负责:
真正把事情完成。
因此:
Execution Engine 是 WSaiOS 中唯一允许改变外部世界状态的模块。
例如:
- 写数据库
- 创建文章
- 调用API
- 发送HTTP请求
- 执行Python模块
- 调用WordPress接口
- 写入日志
这些都属于Execution。
73.2 工程职责
Execution Engine负责:
Receive Action
↓
Validate
↓
Schedule
↓
Execute
↓
Collect Result
↓
Feedback
注意:
Execution Engine 不负责:
- 推理
- 决策
- 学习
这些都已经结束。
73.3 Execution Engine架构
Execution Engine
│
┌──────┼──────────┐
▼ ▼ ▼
Queue Dispatcher Executor
│
▼
Result Collector
这是一个典型的软件执行流水线。
73.4 Action Object
Execution接收统一对象:
class ActionObject(CognitiveObject):
def __init__(self):
super().__init__()
self.action_id=""
self.action_type=""
self.target=""
self.parameters={}
self.priority=0
self.status="waiting"
例如:
{
"action_type":"generate_article",
"target":"WordPress",
"parameters":{
"keyword":"electric toothbrush supplier California"
}
}
73.5 Execution Queue(执行队列)
执行引擎首先不能直接执行。
必须进入队列。
Action
↓
Execution Queue
↓
Waiting
↓
Running
↓
Finished
为什么?
因为未来:
一个系统可能:
1000个Action
↓
排队
↓
依次执行
因此:
Execution Queue 是必须存在的。
Python:
from queue import Queue
execution_queue = Queue()
73.6 Action Dispatcher(任务分发器)
Dispatcher负责:
根据Action类型:
选择执行器。
例如:
Action
↓
generate_article
↓
Content Executor
或者:
Action
↓
http_request
↓
HTTP Executor
Dispatcher:
class ActionDispatcher:
def dispatch(self, action):
if action.action_type=="generate_article":
return ContentExecutor()
elif action.action_type=="http_request":
return HttpExecutor()
Dispatcher:
永远不知道具体业务。
73.7 Executor接口
WSaiOS规定:
所有执行器:
必须实现统一接口。
class Executor:
def execute(self, action):
raise NotImplementedError
任何模块:
例如:
WordPress
Python
Crawler
SEO
API
全部遵守:
execute()
接口。
这是整个WSaiOS以后插件体系的基础。
73.8 Execution Result
执行以后:
统一返回:
ExecutionResult。
class ExecutionResult:
def __init__(self):
self.success=False
self.output=None
self.error=None
self.duration=0
例如:
{
"success":true,
"duration":1.35,
"output":"Article Generated"
}
73.9 Result Collector
执行完成:
必须收集。
流程:
Executor
↓
Execution Result
↓
Result Collector
↓
Experience Manager
注意:
这里与第六十六章形成了闭环:
Experience不是Execution的一部分。
Execution只负责:
产生Result。
Experience负责:
保存Result。
职责清晰。
73.10 Action生命周期
建议统一定义整个生命周期,而不是只有状态。
Created
│
Queued
│
Dispatched
│
Running
│
Completed
│
Archived
失败路径:
Running
│
Failed
│
Retry
│
Completed
这样以后增加重试机制、超时控制都会非常自然。
73.11 工程目录
建议执行模块拆分如下:
execution/
├── engine.py # 执行引擎入口
├── queue.py # 执行队列
├── dispatcher.py # 分发器
├── executor.py # 执行器接口
├── result.py # 执行结果
├── lifecycle.py # 生命周期管理
├── validator.py # 参数校验
└── executors/
├── content_executor.py
├── http_executor.py
├── database_executor.py
└── plugin_executor.py
这里的 plugin_executor.py 不再是执行架构本身,而是众多执行器中的一个,更符合软件工程设计。
73.12 最小验证实验
建立三个 Action:
Generate Article
HTTP Request
Database Save
进入:
Execution Queue。
验证:
Queue
↓
Dispatcher
↓
Executor
↓
Execution Result
↓
Experience Manager
检查:
- Action 是否成功排队;
- Dispatcher 是否选择正确执行器;
- Executor 是否完成任务;
- Result 是否完整;
- Experience 是否收到反馈。
本章总结
第七十三章完成后,WSaiOS 的主认知链已经形成完整闭环:
Perception
│
Memory
│
Knowledge
│
Reasoning
│
Decision
│
Execution
│
Experience
│
Optimization
这条链路中的每一个节点都有明确的软件职责、数据对象和接口,可以逐步实现和验证,而不是停留在概念层面。这也为后续实现 WSaiOS-Core 的最小可运行版本(MVP)奠定了完整的工程基础。