第238章 Action Controller|动作控制器
238.1 动作控制器的定义
在个体人工智能系统中,Behavior Controller 负责控制“采取什么行为”,而 Action Controller|动作控制器进一步负责控制:
一个行为具体由哪些动作构成,以及当前应该执行哪个动作。
因此:
ActionController=Control(Action)ActionController = Control(Action)
可以进一步定义:
At=f(Behaviort,Goalt,Statet,Contextt,Constraintt,Feedbackt−1)A_t = f( Behavior_t, Goal_t, State_t, Context_t, Constraint_t, Feedback_{t-1} )
其中:
- BehaviortBehavior_t:当前行为
- GoaltGoal_t:当前目标
- StatetState_t:当前状态
- ContexttContext_t:当前上下文
- ConstrainttConstraint_t:当前约束
- Feedbackt−1Feedback_{t-1}:历史反馈
- AtA_t:当前动作
因此:
BehaviorController→BehaviorBehaviorController \rightarrow Behavior
而:
ActionController→ActionActionController \rightarrow Action
二者不是同一个控制层。
238.2 Action 是什么
Action 可以理解为:
系统在某一个时刻对对象、环境或自身状态执行的一次具体操作。
例如:
Read
Write
Click
Move
Select
Open
Close
Send
Receive
Calculate
Record
Compare
这些都可以成为 Action。
因此:
Action=OperationAction = Operation
但在更完整的定义中:
Action=Actor+Target+Operation+Parameter+Condition+ResultAction = Actor + Target + Operation + Parameter + Condition + Result
例如:
Actor: System
Target: Document
Operation: Read
Parameter: Page 10
Result: Content Loaded
这就是一个完整动作。
238.3 Behavior 与 Action 的关系
上一章已经定义:
Behavior=Action+State+Goal+Continuity+FeedbackBehavior = Action + State + Goal + Continuity + Feedback
因此一个行为可以包含一个或者多个动作:
Behavior
↓
Action 1
↓
Action 2
↓
Action 3
↓
Action 4
例如:
Behavior = 信息验证
Action 1 = 获取信息
Action 2 = 读取来源
Action 3 = 比较内容
Action 4 = 判断差异
Action 5 = 记录结果
因此:
Behavior=Sequence(Action1,Action2,…,Actionn)Behavior = Sequence(Action_1,Action_2,\ldots,Action_n)
但并非所有 Behavior 都必须包含多个 Action。
简单行为可能只有:
Behavior=ActionBehavior = Action
复杂行为则可能是:
Behavior={A1,A2,…,An}Behavior = \{A_1,A_2,\ldots,A_n\}
238.4 为什么需要 Action Controller
如果只有 Behavior Controller:
Goal
↓
Behavior
↓
Execution
那么系统仍然缺少一个关键问题:
Behavior 内部具体执行什么?
例如:
Behavior = Search
Search 不是一个真正足够细的执行单元。
它可能包含:
Open Source
↓
Input Query
↓
Submit
↓
Receive Result
↓
Read Result
↓
Record Result
因此需要:
Behavior→ActionController→ActionBehavior \rightarrow ActionController \rightarrow Action
Action Controller 负责把一个较高层行为转换成可执行动作。
238.5 Action Controller 的核心职责
Action Controller 至少承担以下八项功能。
1. Action Selection|动作选择
从动作集合中选择当前动作:
A∗=argmaxa∈AScore(a∣Behavior,State,Goal)A^* = argmax_{a\in A} Score(a|Behavior,State,Goal)
例如:
Current Behavior = Information Retrieval
Possible Actions:
Read
Search
Compare
Record
系统根据当前状态选择:
Search
2. Action Ordering|动作排序
复杂行为中的动作存在先后关系:
A1→A2→A3A_1 \rightarrow A_2 \rightarrow A_3
例如:
Open
↓
Read
↓
Analyze
↓
Record
Action Controller 决定动作顺序。
3. Action Parameterization|动作参数化
同一个动作可以具有不同参数。
例如:
Read(Document,Page)Read(Document, Page)
可以是:
Read(Document A, Page 10)
也可以是:
Read(Document B, Page 50)
因此:
Action=Type+ParameterAction = Type + Parameter
Action Controller负责确定参数。
4. Action Validation|动作验证
动作执行前,需要判断动作是否有效:
Valid(A,State)=TrueValid(A,State)=True
例如:
Action = Delete
但如果对象不存在:
Target = NULL
那么:
Valid(Delete,State)=FalseValid(Delete,State)=False
动作控制器必须阻止无效动作进入执行阶段。
5. Action Switching|动作切换
动作执行过程中可能发生状态变化:
Action A
↓
State Change
↓
Action B
例如:
等待数据
↓
数据已经到达
↓
停止等待
↓
开始读取
所以:
At→Statet+1→At+1A_t \rightarrow State_{t+1} \rightarrow A_{t+1}
6. Action Suspension|动作暂停
某些动作不能立即完成。
例如:
Receive
Wait
Download
Monitor
Listen
其状态可能为:
ActionState={Ready,Running,Waiting,Paused,Completed,Failed}ActionState = \{Ready,Running,Waiting,Paused,Completed,Failed\}
7. Action Termination|动作终止
动作需要明确停止条件。
例如:
Terminate(A)=Success∨Failure∨Timeout∨InterruptTerminate(A)= Success \lor Failure \lor Timeout \lor Interrupt
避免动作无限执行。
8. Action Evaluation|动作评价
动作完成后需要评价结果:
Evaluation=f(ExpectedResult,ActualResult)Evaluation = f(ExpectedResult,ActualResult)
例如:
Expected = Data Received
Actual = Data Received
则:
Action = Success
如果:
Expected = Data Received
Actual = Timeout
则:
Action = Failed
238.6 Action State|动作状态
动作不是简单的:
Execute / Not Execute
而应该拥有状态。
可以定义:
READY
↓
PREPARED
↓
RUNNING
↓
┌───────────────┐
↓ ↓
WAITING FAILED
↓
RESUMED
↓
RUNNING
↓
COMPLETED
因此:
Astate∈{Ready,Prepared,Running,Waiting,Paused,Completed,Failed,Cancelled}A_{state} \in \{ Ready, Prepared, Running, Waiting, Paused, Completed, Failed, Cancelled \}
这使动作能够进入真正的动态控制。
238.7 Action Controller 与 Executor
Action Controller 与 Executor 也必须区分。
Action Controller
决定:
执行什么动作?
Executor
负责:
把这个动作真正执行出来。
因此:
Behavior
↓
Action Controller
↓
Action
↓
Executor
↓
Execution
↓
Result
例如:
Action = Save File
Action Controller决定执行:
Save File
Executor负责真正调用文件系统。
所以:
ActionController≠ExecutorActionController \neq Executor
238.8 Action 与 Method 的区别
Action 和 Method 很容易混淆。
Method
解决:
怎么完成一个任务。
Action
解决:
具体执行什么操作。
例如:
Method = Comparison Method
可能包含:
Action 1 = Load A
Action 2 = Load B
Action 3 = Compare
Action 4 = Record Difference
因此:
Method→Action1+Action2+⋯+ActionnMethod \rightarrow Action_1 + Action_2 + \cdots + Action_n
Method 是过程结构。
Action 是过程中的执行单元。
所以:
Method≠ActionMethod \neq Action
238.9 Method Controller 与 Action Controller
两者形成上下层关系,但不是简单替代关系。
Method Controller
↓
Method
↓
Action Controller
↓
Action
↓
Executor
例如:
Goal = 判断两个对象是否相同
Method Controller
↓
选择 Comparison Method
Comparison Method
↓
Load
Compare
Evaluate
Action Controller
↓
选择当前 Action
Action
↓
Load Object A
因此:
Method Controller 选择过程,Action Controller 控制过程中的具体动作。
238.10 Action Controller 与 Behavior Controller
两者之间也存在清晰边界。
Behavior Controller
控制:
采取什么行为。
Action Controller
控制:
这个行为现在执行什么动作。
例如:
Goal
↓
Behavior Controller
↓
Behavior = Verification
↓
Action Controller
↓
Action = Read Source
↓
Executor
因此:
BehaviorController→Behavior→ActionController→ActionBehaviorController \rightarrow Behavior \rightarrow ActionController \rightarrow Action
238.11 动作与对象
在 EOM 理论中:
Element→Object→MethodElement \rightarrow Object \rightarrow Method
动作发生时,通常存在明确的 Target Object。
因此可以进一步定义:
Action=Operation(Object)Action = Operation(Object)
例如:
Object = Document
Action = Read(Document)
或者:
Object = Product
Action = Compare(Product)
因此:
对象是动作作用的认知目标,动作是对对象施加的操作。
238.12 EOM 的进一步扩展
EOM 可以继续向执行层延伸:
Element→Object→Method→ActionElement \rightarrow Object \rightarrow Method \rightarrow Action
形成:
Element
↓
Object
↓
Method
↓
Action
↓
Execution
这意味着:
- Element:构成认知的基本单元
- Object:组织后的认知对象
- Method:处理对象的过程
- Action:过程中的具体操作
- Execution:动作的实际执行
于是:
EOM+Action+ExecutionEOM + Action + Execution
构成从认知结构到现实执行的一条完整链路。
238.13 Action Controller 与状态
动作并不是脱离状态执行的。
可以表示:
Actiont=f(Behaviort,Statet,Goalt)Action_t = f(Behavior_t, State_t, Goal_t)
执行之后:
Statet+1=f(Statet,Actiont)State_{t+1} = f(State_t,Action_t)
因此:
State
↓
Action
↓
State Change
↓
New Action
例如:
State = File Closed
Action = Open
New State = File Opened
Next Action = Read
所以动作控制实际上参与了状态转换。
238.14 Action Transition|动作转换
可以定义动作转换:
T(Ai,Si)=Si+1T(A_i,S_i)=S_{i+1}
例如:
Open(File,S0)→S1Open(File,S_0) \rightarrow S_1
其中:
S0=ClosedS_0 = Closed S1=OpenedS_1 = Opened
然后:
Read(File,S1)→S2Read(File,S_1) \rightarrow S_2
因此:
A1→S1→A2→S2A_1 \rightarrow S_1 \rightarrow A_2 \rightarrow S_2
动作控制器实际上是在管理:
Action−State−ActionAction-State-Action
转换链。
238.15 动作组合
复杂行为可以由多个动作组合:
Behavior=A1→A2→A3Behavior = A_1 \rightarrow A_2 \rightarrow A_3
也可以:
Behavior=A1∥A2Behavior = A_1 \parallel A_2
即两个动作并行执行。
因此 Action Controller 需要处理:
- Sequential Action
- Parallel Action
- Conditional Action
- Repeated Action
- Optional Action
- Recovery Action
例如:
获取数据
↓
┌───────────┐
↓ ↓
解析数据 记录来源
↓ ↓
└─────┬─────┘
↓
生成结果
238.16 Action Failure|动作失败
动作失败是行为控制中的重要问题。
例如:
Action = Read Source
Result = Failed
Action Controller不能简单地结束整个 Behavior。
它可能进入:
Failure
↓
Retry
或者:
Failure
↓
Alternative Action
或者:
Failure
↓
Return to Method Controller
↓
Select New Method
因此:
ActionFailure→Retry∨Switch∨Fallback∨TerminateActionFailure \rightarrow Retry \lor Switch \lor Fallback \lor Terminate
238.17 Action Retry|动作重试
对于可重复动作,可以定义:
Retry(A,n)Retry(A,n)
其中 nn 为最大重试次数。
例如:
Action
↓
Failed
↓
Retry 1
↓
Failed
↓
Retry 2
↓
Success
但是并非所有动作都适合重试。
因此:
Retryable(A)=True/FalseRetryable(A)=True/False
Action Controller 必须判断:
这个动作是否允许重新执行?
238.18 Action Cost|动作成本
不同动作具有不同成本:
Cost(A)Cost(A)
例如:
Read Local Data
可能成本较低。
而:
Complex Processing
可能成本较高。
因此动作选择可以考虑:
Score(A)=Utility(A)−Cost(A)Score(A)= Utility(A)-Cost(A)
进一步:
A∗=argmaxA[Utility(A)−Cost(A)−Risk(A)]A^*= argmax_A [Utility(A)-Cost(A)-Risk(A)]
这样,Action Controller 就不再只是机械执行,而开始具有成本意识。
238.19 Action Risk|动作风险
动作还可能具有风险:
Risk(A)Risk(A)
例如:
Read
通常属于低风险动作。
而:
Delete
Modify
Publish
Send
可能具有更高影响。
因此:
Behavior→Action→RiskEvaluationBehavior \rightarrow Action \rightarrow Risk Evaluation
对于高风险动作,可以要求:
Action
↓
Validation
↓
Confirmation
↓
Execution
对于低风险动作,可以:
Action
↓
Execution
所以动作控制可以与前面的验证机制、行为控制机制共同形成安全边界。
238.20 Action Feedback|动作反馈
动作执行产生结果:
At→ResulttA_t \rightarrow Result_t
结果产生反馈:
Resultt→FeedbacktResult_t \rightarrow Feedback_t
反馈再影响下一动作:
Feedbackt→At+1Feedback_t \rightarrow A_{t+1}
形成:
Action
↓
Result
↓
Evaluation
↓
Feedback
↓
Next Action
因此:
ActionControllert+1=f(ActionControllert,Feedbackt)ActionController_{t+1} = f(ActionController_t,Feedback_t)
这使动作控制成为动态系统。
238.21 Action Controller 的完整闭环
完整动作控制可以表示为:
Behavior
↓
Action Selection
↓
Action Validation
↓
Action Parameterization
↓
Action Execution
↓
Result
↓
Evaluation
↓
Feedback
↓
Next Action
进一步形成:
Behavior→Action→Execution→Result→Feedback→ActionBehavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback \rightarrow Action
238.22 控制层级
到目前为止,可以形成更加完整的控制体系:
Cognition Controller
↓
Cognitive Controller
↓
Perception Controller
↓
Method Controller
↓
Behavior Controller
↓
Action Controller
↓
Executor
但这里需要强调:
这不是一个绝对严格的单向层级,而是一组具有不同控制职责的机制。
它们之间可以发生回退、循环和重新调用。
例如:
Action Failure
↓
Action Controller
↓
Behavior Controller
↓
Method Controller
↓
New Method
↓
New Behavior
↓
New Action
因此系统是动态控制网络,而不是静态流水线。
238.23 从认知到执行
现在可以把前面章节形成的整个链条进一步扩展:
Perception→Cognition→Decision→Method→Behavior→Action→ExecutionPerception \rightarrow Cognition \rightarrow Decision \rightarrow Method \rightarrow Behavior \rightarrow Action \rightarrow Execution
对应:
感知
↓
认知
↓
决策
↓
方法
↓
行为
↓
动作
↓
执行
其中每一层回答不同的问题:
| 层 | 核心问题 |
|---|---|
| Perception | 看到了什么? |
| Cognition | 理解了什么? |
| Decision | 决定什么? |
| Method | 怎么完成? |
| Behavior | 采取什么行为? |
| Action | 具体做什么动作? |
| Execution | 实际如何执行? |
这形成从信息到现实操作的连续结构。
238.24 Action Controller 的本质
从个体人工智能角度看,Action Controller 并不是简单的“动作调度器”。
它真正解决的是:
如何将一个具有目标的行为分解为当前可执行、可验证、可切换、可反馈的具体动作。
因此:
ActionController=Control(Selection,Ordering,Parameterization,Validation,Switching,Suspension,Termination,Evaluation)ActionController = Control( Selection, Ordering, Parameterization, Validation, Switching, Suspension, Termination, Evaluation )
它是:
Behavior→ExecutionBehavior \rightarrow Execution
之间的核心控制机制。
238.25 与 WSaiOS 个体人工智能的关系
在 WSaiOS-ICAI 中,如果系统需要真正形成完整的个体行动能力,那么不能只拥有:
Knowledge
Memory
Cognition
Reasoning
Decision
还需要:
Behavior
Action
Execution
Feedback
最终形成:
Knowledge
↓
Cognition
↓
Decision
↓
Method
↓
Behavior
↓
Action
↓
Execution
↓
Environment
↓
Feedback
↓
Learning
↓
Knowledge
由此形成完整闭环:
Knowledge→Cognition→Decision→Action→Environment→Feedback→Learning→KnowledgeKnowledge \rightarrow Cognition \rightarrow Decision \rightarrow Action \rightarrow Environment \rightarrow Feedback \rightarrow Learning \rightarrow Knowledge
这已经超越了单纯的信息处理系统。
它开始形成:
Individual Cognitive Action System\boxed{Individual\ Cognitive\ Action\ System}
238.26 本章核心结论
第238章建立了 Action Controller|动作控制器。
核心区别可以压缩为:
Behavior=采取什么行为Behavior = 采取什么行为 Action=具体做什么Action = 具体做什么 ActionController=决定当前具体做什么以及如何控制这个动作ActionController = 决定当前具体做什么以及如何控制这个动作
进一步:
BehaviorController→BehaviorBehaviorController \rightarrow Behavior Behavior→ActionControllerBehavior \rightarrow ActionController ActionController→ActionActionController \rightarrow Action Action→ExecutorAction \rightarrow Executor
最终形成:
Goal
↓
Cognition
↓
Decision
↓
Method
↓
Behavior Controller
↓
Behavior
↓
Action Controller
↓
Action
↓
Executor
↓
Environment
↓
Feedback
↓
Cognition
因此,本章最核心的一句话是:
Behavior Controller 决定系统采取什么行为,Action Controller 决定这个行为此刻具体执行什么动作。
在 EOM 的扩展结构中,则形成:
Element→Object→Method→Behavior→Action→Execution\boxed{ Element \rightarrow Object \rightarrow Method \rightarrow Behavior \rightarrow Action \rightarrow Execution }
这标志着 WSaiOS-ICAI 的 EOM 模型开始从认知结构进一步延伸到行为结构与执行结构。