首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第178章 DecisionService

第178章 DecisionService

在 ICAI 工程体系中,CapabilityService 解决“有没有能力”,MethodService 解决“有哪些可行方法”,而 DecisionService 进一步解决:

在当前条件下,多个候选方案中应该选择哪一个。

因此,DecisionService 是连接 Method、Capability、Goal 与 Behavior 的关键服务层。

前面的 MethodService 已经能够根据 Goal、Capability、Condition、State、Process 等信息形成 Method Candidates,但候选方案形成之后,并不意味着系统已经完成决策。

例如:

Goal = 获取杯子

Candidate Method A
Locate → Move → Grasp

Candidate Method B
Locate → Move → Align → Grasp

Candidate Method C
Locate → UseAlternativeGripper → Grasp

三个方法都可能满足基本目标,但当前环境、能力状态、资源、风险、历史结果和优先级可能不同。

此时系统必须进行:

Decision Conditions
        ↓
Candidate Solutions
        ↓
Rule Calculation
        ↓
Candidate Comparison
        ↓
Selection
        ↓
Decision Result

因此,本章将 DecisionService 定义为:

DecisionService 是负责建立决策条件、管理候选方案、执行规则化决策计算并形成可追溯决策结果的应用服务。

其核心模型可以表示为:

DS=(C,Ca,Cal,R)DS=(C,Ca,Cal,R)

其中:

  • CC = Condition,决策条件;
  • CaCa = Candidate,候选方案;
  • CalCal = Calculation,决策计算;
  • RR = Result,决策结果。

即:

DecisionService
 ├── Decision Condition
 ├── Candidate Management
 ├── Decision Calculation
 └── Decision Result

一、决策条件

决策条件(Decision Condition)是 DecisionService 的输入基础。

决策并不是脱离环境进行的。

系统必须首先知道:

当前目标是什么?
当前有哪些能力?
当前有哪些方法?
当前对象处于什么状态?
当前环境是什么?
有哪些限制?
有哪些风险?
有哪些优先级?

因此可以定义:

DC=(G,C,M,O,E,R,P)DC=(G,C,M,O,E,R,P)

其中:

  • GG = Goal,目标;
  • CC = Capability,能力;
  • MM = Method,方法;
  • OO = Object,对象;
  • EE = Environment,环境;
  • RR = Risk,风险;
  • PP = Priority,优先级。

决策条件不是简单的一个 Boolean 值,而是一组能够影响候选方案选择的事实和规则。

例如:

Goal = 将箱子移动到仓库

Current State:
箱子重量 = 20kg
距离 = 50m
电量 = 70%

Capability:
Lift = Available
Move = Available
Carry = Available

Risk:
ManualCarryRisk = Medium

Priority:
Safety > Speed

这些信息共同形成当前 Decision Context。


二、决策条件与 Method Condition 的区别

这一点必须与第177章保持严格边界。

Method Condition 回答:

这个方法能不能在当前条件下执行?

Decision Condition 回答:

在多个可执行方案之间,当前应该选择哪个?

例如:

Method A:
需要 Battery > 30%

Method B:
需要 Battery > 50%

当前:

Battery = 60%

那么:

Method Condition
A → Pass
B → Pass

两个方法都可行。

这时 DecisionService 才进一步比较:

Method A
速度 = 10
风险 = 5

Method B
速度 = 8
风险 = 2

如果当前优先级是安全:

选择 Method B

因此:

Method Condition
→ 判断可执行性

Decision Condition
→ 判断选择依据

两者不能混为一个条件体系。


三、决策条件的类型

Decision Condition 可以分为多个层次。

1. Goal Condition

目标必须明确。

例如:

Target = Box
Destination = Warehouse

2. Capability Condition

候选方案所需要的能力必须存在并处于可用状态。

例如:

Move = Available
Lift = Available

3. Method Condition

候选 Method 自身的执行条件必须满足。

例如:

Battery > 30%
Load <= 20kg

4. State Condition

当前 Object、Individual、Method、Environment 的状态必须允许方案选择。

例如:

Robot State = Ready

5. Resource Condition

候选方案需要的资源必须存在。

例如:

Tool = Available
Storage = Available
Energy = Sufficient

6. Risk Condition

方案必须满足当前风险控制要求。

例如:

Risk Level <= AcceptableLevel

7. Priority Condition

不同目标之间存在优先级时,决策必须遵守优先级。

例如:

Safety > Cost > Speed

因此决策条件最终可以形成:

Goal
+
Capability
+
Method
+
State
+
Resource
+
Risk
+
Priority

四、候选方案

候选方案(Candidate Solution)是 DecisionService 的核心输入对象。

Candidate 在第161章 Decision 类中已经定义。

候选对象并不一定只能是 Method。

可以是:

Method
Capability
Behavior
Action
Object
Route
Strategy
Resource

但在当前 Service 层的主要流程中,DecisionService 最主要接收的是 Method Candidates。

例如:

Method Candidates
 ├── Method A
 ├── Method B
 └── Method C

DecisionService 首先必须对 Candidate 进行读取和标准化。


五、候选方案的状态

Candidate 必须具有状态。

例如:

unknown
available
unavailable
blocked
selected
rejected
failed

这些状态不是简单标签,而是决策计算的重要输入。

例如:

Method A → Available
Method B → Blocked
Method C → Available

则:

Candidate Set
=
{A,C}

Method B 不应进入最终选择计算。

但是:

Blocked Candidate 仍然应该保留在 Decision History 中。

因为未来 Diagnosis、Memory、Experience 可能需要知道:

为什么 Method B 没有被选择?

因此:

Candidate Rejected
≠
Candidate Deleted

六、候选方案的结构

可以建立 Candidate 对象:

Ca=(I,T,S,C,R,E)Ca=(I,T,S,C,R,E)

其中:

  • II = Candidate ID;
  • TT = Candidate Type;
  • SS = Candidate State;
  • CC = Candidate Conditions;
  • RR = Candidate Requirements;
  • EE = Evidence。

例如:

Candidate
 ├── ID
 ├── Type = Method
 ├── State = Available
 ├── Conditions
 ├── RequiredCapabilities
 ├── RequiredResources
 ├── Risk
 ├── History
 └── Evidence

这样 DecisionService 才能够对不同 Candidate 进行统一计算。


七、候选方案形成

候选方案主要来自 MethodService。

完整关系:

Goal
 ↓
CapabilityService
 ↓
Available Capabilities
 ↓
MethodService
 ↓
Method Matching
 ↓
Method Composition
 ↓
Method Candidates
 ↓
DecisionService

因此 DecisionService 不应该自己重新寻找全部 Method。

它接收:

Method Candidates
+
Decision Context

然后进行选择。

这样可以保持 Service 边界清晰。


八、候选方案过滤

候选方案进入决策计算之前,需要经过第一轮过滤。

例如:

Candidate A → Available
Candidate B → Blocked
Candidate C → Available
Candidate D → Condition Failed

则:

Eligible Candidates
=
{A,C}

可以定义:

E(Ca)=State∧Condition∧Capability∧ResourceE(Ca)=State\land Condition\land Capability\land Resource

其中:

  • State = 候选状态允许;
  • Condition = 条件满足;
  • Capability = 所需能力满足;
  • Resource = 所需资源满足。

如果:

E(Ca)=0E(Ca)=0

则 Candidate 不进入最终选择集合。


九、决策计算

决策计算(Decision Calculation)是 DecisionService 的核心计算过程。

它回答:

多个满足基本条件的 Candidate 中,哪个更适合当前目标?

决策计算必须建立在明确的规则之上。

ICAI 的 Decision Calculation 不依赖随机生成,也不是通过大模型产生结论。

它使用:

Facts
+
Conditions
+
Rules
+
Candidate Attributes
+
Priority
+
History
+
Experience
+
Risk

进行离散、可追踪的计算。

因此可以表示:

D=f(G,Ca,Co,S,R,H,E)D=f(G,Ca,Co,S,R,H,E)

其中:

  • GG = Goal;
  • CaCa = Candidate;
  • CoCo = Condition;
  • SS = State;
  • RR = Risk;
  • HH = History;
  • EE = Experience。

十、决策计算不是随机选择

如果存在三个候选:

A
B
C

系统不能简单:

$selected = $candidates[array_rand($candidates)];

这种方式没有认知依据,也无法解释为什么选择 A。

ICAI 的决策必须能够回答:

为什么选择 A?
为什么没有选择 B?
为什么 C 被排除?
使用了什么条件?
使用了什么规则?

因此决策必须产生 Decision Evidence。


十一、决策规则

可以建立规则:

Rule 1:
如果 Candidate Condition 不满足
→ Reject

Rule 2:
如果 Required Capability 不可用
→ Reject

Rule 3:
如果 Risk 超过允许范围
→ Reject

Rule 4:
如果 Priority = Safety
→ 优先安全性更高的 Candidate

Rule 5:
如果安全等级相同
→ 比较执行成本

Rule 6:
如果成本相同
→ 比较历史结果

这样形成:

Candidate Filter
 ↓
Rule Evaluation
 ↓
Candidate Comparison
 ↓
Selection

十二、候选方案比较

候选方案比较可以建立结构化指标。

例如:

Candidate A
Safety = 8
Cost = 6
SuccessHistory = 9

Candidate B
Safety = 9
Cost = 8
SuccessHistory = 8

Candidate C
Safety = 7
Cost = 5
SuccessHistory = 7

如果当前优先级:

Safety > Success > Cost

则可以按照规则进行比较。

注意:

这里的数值只是离散决策指标,不意味着系统必须使用机器学习模型。

这些值可以来自:

事实
规则
历史统计
验证结果
人工配置
经验结构

例如安全等级可以直接由规则确定:

Risk = Low
→ SafetyScore = 3

Risk = Medium
→ SafetyScore = 2

Risk = High
→ SafetyScore = 1

因此 Decision Calculation 仍然属于符号规则和离散计算体系。


十三、决策计算可以采用规则评分

在工程实现中,可以建立:

Score(Ci)=∑j=1nWjVijScore(C_i)= \sum_{j=1}^{n}W_jV_{ij}

其中:

  • CiC_i = 第 ii 个候选方案;
  • WjW_j = 第 jj 个决策因素的权重;
  • VijV_{ij} = Candidate ii 在因素 jj 上的评价值。

例如:

Safety Weight = 5
Cost Weight = 3
Success Weight = 4
Speed Weight = 2

然后:

Candidate A
Safety = 3
Cost = 2
Success = 3
Speed = 2

Candidate B
Safety = 3
Cost = 3
Success = 2
Speed = 2

系统可以按照预定义规则进行计算。

但是必须明确:

权重本身也是决策规则的一部分,而不是神经网络自动学习出来的参数。

权重可以由:

人工规则
业务规则
历史统计
Experience
Goal Priority

共同形成。


十四、决策计算中的 History

History 可以参与决策,但 History 本身不是 Decision。

例如过去执行:

Method A
成功 8 次
失败 2 次

Method B
成功 5 次
失败 5 次

这些都是 History。

DecisionService 可以读取这些历史事实:

History
 ↓
Success Rate Calculation
 ↓
Candidate Evaluation

但必须区分:

History
= 过去发生了什么

Decision
= 当前选择什么

因此:

History→EvidenceHistory \rightarrow Evidence

而:

Evidence+Rule→DecisionEvidence + Rule \rightarrow Decision


十五、Experience 参与决策

Experience 比 History 更进一步。

例如系统已经形成经验:

Condition:
ObjectWeight > 20kg

Method:
ManualCarry

Pattern:
FailureRisk High

那么当前遇到同样条件时:

Current Condition
 ↓
Experience Match
 ↓
Risk Increase
 ↓
Candidate Evaluation

因此:

Memory
 ↓
Experience
 ↓
Decision Evidence
 ↓
Decision

但 Experience 不能直接决定结果。

最终仍然需要:

Experience
+
Current Condition
+
Rule
+
Candidate
→
Decision Calculation

这样才能保证当前事实优先于单纯历史记忆。


十六、风险参与决策

Risk 是 DecisionService 的重要输入。

例如:

Method A
Risk = Low

Method B
Risk = High

当前 Goal:

Priority = Safety

则 DecisionService 可以依据规则:

Safety Priority
+
Risk Evaluation
→
Method A

如果所有候选风险都超过允许范围:

Candidate A → High Risk
Candidate B → High Risk
Candidate C → High Risk

则系统不应该强制选择一个。

正确结果是:

Decision Result
=
No Suitable Candidate

这是 ICAI 中非常重要的原则:

没有满足条件的候选方案时,“不决策”本身也是合法的决策结果。


十七、决策结果

决策结果(Decision Result)记录本次决策到底发生了什么。

Decision Result 不能只保存:

selected = true

应该至少包含:

DecisionResult
 ├── Decision ID
 ├── Selected Candidate
 ├── Candidate State
 ├── Decision Status
 ├── Reason
 ├── Conditions
 ├── Calculation
 ├── Evidence
 └── Time

例如:

Decision ID = 1001

Selected Candidate = Method B

Status = Selected

Reason =
Safety Priority

Evidence =
Method B Risk = Low

Rejected:
Method A = Higher Risk
Method C = Capability Unavailable

这样以后可以回答:

为什么选择 B?

系统能够从 Decision Result 和 Decision History 中恢复完整过程。


十八、决策结果状态

Decision Result 可以具有:

pending
selected
rejected
failed
cancelled
blocked
no_candidate

例如:

Candidate Exists
 ↓
Condition Evaluation
 ↓
No Candidate
 ↓
Decision Result = no_candidate

或者:

Candidate A
Candidate B
 ↓
Calculation
 ↓
B Selected
 ↓
Decision Result = selected

如果后续执行失败:

Decision
 ↓
Selected Method
 ↓
Execution
 ↓
Failure

此时不能把原来的 Decision Result 修改成“从未选择”。

应该保留:

Decision Result
= Selected

Execution Result
= Failed

因为:

决策失败与执行失败是两个不同事实。


十九、Decision 与 Method 执行的边界

DecisionService 负责:

选择 Method

不负责:

执行 Method

完整链路:

DecisionService
 ↓
Selected Method
 ↓
BehaviorService
 ↓
Behavior
 ↓
Action
 ↓
Execution

因此:

Decision
≠
Execution

Decision 只产生:

Selected Candidate

真正执行必须进入 Behavior / Action / Execution 层。


二十、决策结果与 Decision History

每一次 Decision 都应该产生 History。

例如:

Decision #1001
Goal = FetchCup
Candidates = A,B,C
Selected = B
Reason = Safety Priority
Time = T1

下一次:

Decision #1002
Goal = FetchCup
Candidates = A,B
Selected = A
Reason = B Blocked
Time = T2

这些历史可以形成:

HD={D1,D2,…,Dn}H_D=\{D_1,D_2,\ldots,D_n\}

Decision History 不是 Memory,也不是 Experience。

区别为:

Decision History
= 过去做过哪些选择

Memory
= 保存过去有价值的信息

Experience
= 从过去事实中形成的结构化经验

三者可以形成:

Decision
 ↓
Decision History
 ↓
Memory
 ↓
Experience
 ↓
Future Decision

二十一、DecisionService 的工程结构

DecisionService 应继续遵守 ICAI Service / Engine / Repository 分层。

Controller
    ↓
DecisionService
    ├── DecisionEngine
    ├── DecisionRepository
    ├── StateService
    ├── Risk / Conflict
    └── Experience / History

其中:

DecisionService

负责:

创建决策上下文
读取候选方案
组织决策过程
调用 DecisionEngine
保存 Decision Result
保存 Decision History

DecisionEngine

负责:

条件计算
候选过滤
规则计算
候选比较
选择

DecisionRepository

负责:

Decision
Candidate
Condition
Result
History

的持久化。

StateService

负责:

Decision State
Candidate State

的合法状态转换。


二十二、DecisionService 的 PHP 工程结构

按照 PHP 5.6 / PHP 7.0 的兼容要求,可以建立:

class DecisionService
{
    protected $repository;
    protected $engine;
    protected $stateService;

    public function __construct(
        $repository,
        $engine,
        $stateService
    ) {
        $this->repository = $repository;
        $this->engine = $engine;
        $this->stateService = $stateService;
    }

    public function create($goalId, $candidates, $conditions)
    {
        $decision = new Decision();

        $decision->setGoalId($goalId);
        $decision->setCandidates($candidates);
        $decision->setConditions($conditions);

        return $this->repository->save($decision);
    }

    public function calculate($decision)
    {
        return $this->engine->calculate($decision);
    }

    public function getResult($decisionId)
    {
        return $this->repository->findResult($decisionId);
    }
}

这里 DecisionService 不直接写:

复杂比较算法
随机选择
SQL

而是将:

决策计算

交给 DecisionEngine


二十三、DecisionEngine

DecisionEngine 是决策计算核心。

例如:

class DecisionEngine
{
    public function calculate($decision)
    {
        $candidates = $decision->getCandidates();
        $valid = array();

        foreach ($candidates as $candidate) {

            if (!$this->checkCondition($candidate, $decision)) {
                continue;
            }

            if (!$this->checkState($candidate)) {
                continue;
            }

            if (!$this->checkCapability($candidate)) {
                continue;
            }

            $candidate->setScore(
                $this->calculateScore($candidate, $decision)
            );

            $valid[] = $candidate;
        }

        if (empty($valid)) {
            return $this->noCandidateResult($decision);
        }

        return $this->select($valid);
    }
}

这里的 calculateScore() 只是规则计算接口。

实际项目中可以根据具体领域建立:

PriorityRule
RiskRule
CostRule
HistoryRule
ExperienceRule
CapabilityRule
ConditionRule

再由 DecisionEngine 统一执行。


二十四、候选方案的数据结构

数据库可以建立:

decisions
decision_candidates
decision_conditions
decision_results
decision_history
decision_rules

例如:

decisions

id
goal_id
state
created_at
updated_at

decision_candidates

id
decision_id
candidate_type
candidate_id
state
score
reason
created_at

decision_conditions

id
decision_id
condition_type
condition_value
result
created_at

decision_results

id
decision_id
selected_candidate_id
status
reason
calculation_data
created_at

decision_history

id
decision_id
action
candidate_id
old_state
new_state
reason
created_at

这样可以完整保存一次决策的产生、计算、选择和结果。


二十五、决策计算的完整工程流程

一次完整决策可以表示为:

Goal
 ↓
Create Decision Context
 ↓
Load Candidates
 ↓
Load Conditions
 ↓
Check Candidate State
 ↓
Check Capability
 ↓
Check Method Conditions
 ↓
Check Resource
 ↓
Check Risk
 ↓
Filter Invalid Candidates
 ↓
Calculate Candidate Values
 ↓
Compare Candidates
 ↓
Select Candidate
 ↓
Create Decision Result
 ↓
Save Decision History
 ↓
Return Selected Candidate

如果没有候选方案:

Goal
 ↓
Candidate Loading
 ↓
Candidate Filtering
 ↓
No Valid Candidate
 ↓
Decision Result = NO_CANDIDATE
 ↓
Diagnosis / Method Update / Goal Update

这比强行选择一个方案更加符合 ICAI 的工程逻辑。


二十六、无候选方案也是决策结果

这是 DecisionService 必须具备的能力。

例如:

Goal = Move Heavy Box

Candidate A = Lift
Candidate B = Carry
Candidate C = Cart

当前:

Lift = Unavailable
Carry = Unavailable
Cart = Unavailable

正确结果不是:

Selected = A

而是:

Decision Status = NO_CANDIDATE

随后系统可以进入:

No Candidate
 ↓
Diagnosis
 ↓
原因判断
 ├── Capability Missing
 ├── Resource Missing
 ├── Method Blocked
 ├── Condition Failure
 └── Goal Conflict

然后根据原因进入:

Capability Update
Method Update
Repair
Protection
Goal Update

这样 DecisionService 就能够与前面已经建立的 Risk、Conflict、Diagnosis、Repair 体系连接。


二十七、决策结果与反馈

决策本身也可以接受后续执行反馈。

完整过程:

Decision
 ↓
Selected Candidate
 ↓
Behavior
 ↓
Execution
 ↓
Result
 ↓
Feedback

如果结果符合预期:

Decision
 ↓
Success
 ↓
Decision History
 ↓
Experience

如果结果失败:

Decision
 ↓
Selected Candidate
 ↓
Execution
 ↓
Failure
 ↓
Diagnosis
 ↓
Decision Evaluation

这时系统可以发现:

Candidate selection itself may be correct

也可能发现:

Candidate selection was inappropriate

两者必须区分。


二十八、决策失败与方法失败

例如:

Decision:
选择 Method A

之后:

Method A
 ↓
Execution
 ↓
Failure

不能立即得出:

Decision = Wrong

因为失败可能发生在:

Method A 本身
Action
Execution Environment
Resource
Object State
Capability

因此 Diagnosis 必须分析:

Decision
 ↓
Selected Candidate
 ↓
Execution Failure
 ↓
Diagnosis
 ↓
Cause

如果:

Cause = Method A defective

则 MethodService 更新。

如果:

Cause = Capability unavailable

则 CapabilityService 更新。

如果:

Cause = Decision Rule inappropriate

则 Decision Rule 本身需要更新。

因此:

执行失败不能未经 Diagnosis 就直接归因于 Decision。


二十九、DecisionService 与 Experience 的闭环

Decision History 可以经过 Memory 和 Experience 形成后续决策依据:

Decision
 ↓
Result
 ↓
History
 ↓
Memory
 ↓
Experience
 ↓
Future Decision

例如:

Condition:
Battery < 30%

Method A:
Long-distance movement

历史:
3 次执行
3 次失败

形成 Experience:

LowBattery
+
LongDistanceMethod
→
HighFailureRisk

下一次:

Decision Context
 ↓
Experience Match
 ↓
Risk Evaluation
 ↓
Candidate Evaluation
 ↓
Alternative Method

这构成 ICAI 的经验辅助决策机制。

它仍然不是神经网络训练,而是:

History
+
Memory
+
Experience
+
Rules
+
Current Facts
→
Decision

属于离散、可解释、可追踪的认知计算过程。


三十、DecisionService 的最终闭环

DecisionService 的完整闭环为:

Decision Condition
        ↓
Candidate Solutions
        ↓
Candidate Filtering
        ↓
Rule Calculation
        ↓
Candidate Comparison
        ↓
Candidate Selection
        ↓
Decision Result
        ↓
Decision History
        ↓
Execution
        ↓
Feedback
        ↓
Experience
        ↓
Future Decision

形式化为:

Dt=f(G,Ca,Co,S,R,H,E)D_t= f(G,Ca,Co,S,R,H,E)

然后:

Dt→Candidatet→Selectiont→Executiont→Resultt→Feedbackt→HistorytD_t \rightarrow Candidate_t \rightarrow Selection_t \rightarrow Execution_t \rightarrow Result_t \rightarrow Feedback_t \rightarrow History_t

再进入:

Historyt→Memory→Experience→Dt+1History_t \rightarrow Memory \rightarrow Experience \rightarrow D_{t+1}

由此形成:

Current Facts
 ↓
Decision
 ↓
Actual Execution
 ↓
Actual Result
 ↓
History
 ↓
Experience
 ↓
Next Decision

三十一、DecisionService 与前后 Service 的完整关系

目前 Service 层已经形成连续结构:

NeedService
    ↓
Need

GoalService
    ↓
Goal

CapabilityService
    ↓
Capability

MethodService
    ↓
Method

DecisionService
    ↓
Decision

BehaviorService
    ↓
Behavior

ActionService
    ↓
Action

ExecutionService
    ↓
Execution

ResultService
    ↓
Result

FeedbackService
    ↓
Feedback

MemoryService
    ↓
Memory

ExperienceService
    ↓
Experience

其核心执行关系为:

Need
 ↓
Goal
 ↓
Capability
 ↓
Method
 ↓
Decision
 ↓
Behavior
 ↓
Action
 ↓
Execution
 ↓
Result
 ↓
Feedback
 ↓
Memory
 ↓
Experience

DecisionService 位于其中的关键位置:

MethodCandidates→Decision→SelectedMethodMethodCandidates \rightarrow Decision \rightarrow SelectedMethod

因此它既不能提前执行,也不能绕过 Method。


三十二、DecisionService 的最终模型

经过本章定义,可以将 DecisionService 正式表示为:

DS=(C,Ca,Cal,R)DS=(C,Ca,Cal,R)

其中:

C=Decision ConditionsC=Decision\ Conditions

表示当前决策所依据的目标、能力、状态、资源、风险、优先级等条件;

Ca=Candidate SolutionsCa=Candidate\ Solutions

表示当前可参与决策的候选方案;

Cal=Decision CalculationCal=Decision\ Calculation

表示通过事实、条件、规则、权重、历史与经验进行候选过滤和比较;

R=Decision ResultR=Decision\ Result

表示最终选择、未选择、无候选、失败或其他决策状态及其原因。

因此:

DecisionService
=
Decision Conditions
+
Candidate Solutions
+
Decision Calculation
+
Decision Result

三十三、本章总结

DecisionService 是 ICAI Service 层中真正负责“选择”的服务。

它不负责创造 Goal,不负责声明 Capability,不负责设计 Method,也不负责执行 Behavior。

它的职责是:

条件
 ↓
候选
 ↓
计算
 ↓
选择
 ↓
结果

即:

决策条件 → 候选方案 → 决策计算 → 决策结果

其中,决策条件提供当前事实和约束;候选方案提供可选择对象;决策计算通过明确的规则、条件、优先级、风险、历史和经验进行比较;决策结果则记录最终选择及其理由。

完整关系可以表示为:

Goal
 ↓
Capability
 ↓
Method Candidates
 ↓
Decision Conditions
 ↓
Candidate Filtering
 ↓
Decision Calculation
 ↓
Candidate Comparison
 ↓
Decision Result
 ↓
Selected Method
 ↓
Behavior
 ↓
Action
 ↓
Execution
 ↓
Result
 ↓
Feedback
 ↓
Decision History
 ↓
Memory
 ↓
Experience
 ↓
Future Decision

最重要的工程边界为:

CapabilityService
→ 有没有能力

MethodService
→ 有哪些可行方法

DecisionService
→ 当前选择哪个方案

BehaviorService
→ 如何组织选定方案的行为

Execution
→ 实际发生了什么

Result
→ 实际产生了什么结果

因此,DecisionService 最终建立的是一个可解释、可追踪、可验证、可回溯的离散决策工程机制

CurrentFacts+Conditions+Candidates+Rules+History+Experience→DecisionCurrentFacts + Conditions + Candidates + Rules + History + Experience \rightarrow Decision

而 Decision 并不在选择完成后结束,它还会通过:

Decision→Execution→Result→Feedback→History→Experience→NextDecisionDecision \rightarrow Execution \rightarrow Result \rightarrow Feedback \rightarrow History \rightarrow Experience \rightarrow NextDecision

形成持续的认知决策闭环。

由此,ICAI 的核心执行链进一步完整化:

Need→Goal→Capability→Method→Decision→Behavior→Action→Execution→Result→Feedback→Memory→ExperienceNeed \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback \rightarrow Memory \rightarrow Experience

DecisionService 正是这条链中负责把“可行方案”转化为“当前选择”的核心服务层。

Leave a Reply

Your email address will not be published. Required fields are marked *