GitHub Action commited on
Commit ·
b824a76
1
Parent(s): d19cea4
Sync from GitHub with Git LFS
Browse files- docs/HMP-0005.md +64 -7
docs/HMP-0005.md
CHANGED
|
@@ -3036,7 +3036,64 @@ All evaluations are signed and verified locally.
|
|
| 3036 |
|
| 3037 |
---
|
| 3038 |
|
| 3039 |
-
#### 6.2.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3040 |
|
| 3041 |
Each agent **computes a local consensus score** by aggregating received evaluations, taking trust and time into account.
|
| 3042 |
There is no centralized mechanism — consensus emerges statistically across the distributed network.
|
|
@@ -3067,7 +3124,7 @@ Results are recalculated dynamically as new data arrives.
|
|
| 3067 |
|
| 3068 |
---
|
| 3069 |
|
| 3070 |
-
#### 6.2.
|
| 3071 |
|
| 3072 |
Each container receives a local status based on:
|
| 3073 |
|
|
@@ -3085,7 +3142,7 @@ Each container receives a local status based on:
|
|
| 3085 |
|
| 3086 |
---
|
| 3087 |
|
| 3088 |
-
#### 6.2.
|
| 3089 |
|
| 3090 |
`consensus_result` containers serve to **record aggregated consensus results** and are the main artifact of CogConsensus.
|
| 3091 |
|
|
@@ -3156,7 +3213,7 @@ Each container receives a local status based on:
|
|
| 3156 |
|
| 3157 |
---
|
| 3158 |
|
| 3159 |
-
#### 6.2.
|
| 3160 |
|
| 3161 |
| Consensus type | Minimum threshold |
|
| 3162 |
| -------------------------------- | ---------------------------------------------------------------------- |
|
|
@@ -3166,7 +3223,7 @@ Each container receives a local status based on:
|
|
| 3166 |
|
| 3167 |
---
|
| 3168 |
|
| 3169 |
-
#### 6.2.
|
| 3170 |
|
| 3171 |
Evaluations and results form a **proof chain** (`proof-chain`):
|
| 3172 |
|
|
@@ -3182,7 +3239,7 @@ Each element is signed and can be independently verified using cryptographic sig
|
|
| 3182 |
|
| 3183 |
---
|
| 3184 |
|
| 3185 |
-
#### 6.2.
|
| 3186 |
|
| 3187 |
The network allows multiple consensus results on the same object, reflecting different methodologies or ethical filters.
|
| 3188 |
|
|
@@ -3214,7 +3271,7 @@ This allows agents to explicitly indicate that a new consensus **disputes** a pr
|
|
| 3214 |
|
| 3215 |
---
|
| 3216 |
|
| 3217 |
-
#### 6.2.
|
| 3218 |
|
| 3219 |
```python
|
| 3220 |
# Example of a recommended algorithm for computing local consensus
|
|
|
|
| 3036 |
|
| 3037 |
---
|
| 3038 |
|
| 3039 |
+
#### 6.2.3 Container `vote`
|
| 3040 |
+
|
| 3041 |
+
Represents an agent’s explicit stance toward another container (goal, task, ethics_solution, or proposal).
|
| 3042 |
+
A `vote` container is **atomic** — one container expresses one agent’s position regarding one target container.
|
| 3043 |
+
|
| 3044 |
+
```json
|
| 3045 |
+
{
|
| 3046 |
+
"head": {
|
| 3047 |
+
"class": "vote"
|
| 3048 |
+
},
|
| 3049 |
+
"payload": {
|
| 3050 |
+
"target_did": "did:hmp:container:ethics_solution-4fba2",
|
| 3051 |
+
"vote_value": 1,
|
| 3052 |
+
"vote_type": "approval",
|
| 3053 |
+
"reason": "Consistent with prior consensus and ethical policy E-17"
|
| 3054 |
+
},
|
| 3055 |
+
"related": {
|
| 3056 |
+
"in_reply_to": "did:hmp:container:ethics_solution-4fba2",
|
| 3057 |
+
"previous_version": "did:hmp:container:vote-13452"
|
| 3058 |
+
}
|
| 3059 |
+
}
|
| 3060 |
+
```
|
| 3061 |
+
|
| 3062 |
+
| Field | Description |
|
| 3063 |
+
| -------------------------- | --------------------------------------------------------------------------------------------------- |
|
| 3064 |
+
| `target_did` | DID of the container being voted on (goal, task, ethics_solution, etc.). |
|
| 3065 |
+
| `vote_value` | Numerical or boolean representation of stance: e.g., `1` (approve), `0` (neutral/abstain), `-1` (reject). |
|
| 3066 |
+
| `vote_type` | Optional symbolic label for semantics (`approval`, `objection`, `support`, `abstain`, etc.). |
|
| 3067 |
+
| `reason` | Optional short explanation or reference to supporting evidence. |
|
| 3068 |
+
| `related.in_reply_to` | Reference to the container the vote responds to. |
|
| 3069 |
+
| `related.previous_version` | Used if an agent revises its vote. |
|
| 3070 |
+
|
| 3071 |
+
---
|
| 3072 |
+
|
| 3073 |
+
**Interpretation**
|
| 3074 |
+
|
| 3075 |
+
* Each agent MAY publish one or more `vote` containers for a given `target_did`.
|
| 3076 |
+
When multiple exist, the most recent (by timestamp) is considered current.
|
| 3077 |
+
* `vote` containers can later be aggregated by `consensus_result` containers (see below).
|
| 3078 |
+
* Votes are immutable records; updates are expressed as new versions (`related.previous_version`).
|
| 3079 |
+
|
| 3080 |
+
---
|
| 3081 |
+
|
| 3082 |
+
**Example cases**
|
| 3083 |
+
|
| 3084 |
+
* In **GMP**, votes determine task delegation or approval.
|
| 3085 |
+
* In **EGP**, votes determine which ethical solution to adopt.
|
| 3086 |
+
* In **CogConsensus**, votes contribute to collective decision formation (e.g., proposal approval).
|
| 3087 |
+
|
| 3088 |
+
---
|
| 3089 |
+
|
| 3090 |
+
> **Note:**
|
| 3091 |
+
> Although voting semantics may differ across protocols, all use the same standardized `vote` container class,
|
| 3092 |
+
> ensuring interoperability and unified aggregation through `consensus_result`.
|
| 3093 |
+
|
| 3094 |
+
---
|
| 3095 |
+
|
| 3096 |
+
#### 6.2.4 Consensus computation
|
| 3097 |
|
| 3098 |
Each agent **computes a local consensus score** by aggregating received evaluations, taking trust and time into account.
|
| 3099 |
There is no centralized mechanism — consensus emerges statistically across the distributed network.
|
|
|
|
| 3124 |
|
| 3125 |
---
|
| 3126 |
|
| 3127 |
+
#### 6.2.5 Consensus states
|
| 3128 |
|
| 3129 |
Each container receives a local status based on:
|
| 3130 |
|
|
|
|
| 3142 |
|
| 3143 |
---
|
| 3144 |
|
| 3145 |
+
#### 6.2.6 Consensus result containers (`consensus_result`)
|
| 3146 |
|
| 3147 |
`consensus_result` containers serve to **record aggregated consensus results** and are the main artifact of CogConsensus.
|
| 3148 |
|
|
|
|
| 3213 |
|
| 3214 |
---
|
| 3215 |
|
| 3216 |
+
#### 6.2.7 Consensus thresholds
|
| 3217 |
|
| 3218 |
| Consensus type | Minimum threshold |
|
| 3219 |
| -------------------------------- | ---------------------------------------------------------------------- |
|
|
|
|
| 3223 |
|
| 3224 |
---
|
| 3225 |
|
| 3226 |
+
#### 6.2.8 Proof chains and verifiability
|
| 3227 |
|
| 3228 |
Evaluations and results form a **proof chain** (`proof-chain`):
|
| 3229 |
|
|
|
|
| 3239 |
|
| 3240 |
---
|
| 3241 |
|
| 3242 |
+
#### 6.2.9 Ethical consensus and alternative results
|
| 3243 |
|
| 3244 |
The network allows multiple consensus results on the same object, reflecting different methodologies or ethical filters.
|
| 3245 |
|
|
|
|
| 3271 |
|
| 3272 |
---
|
| 3273 |
|
| 3274 |
+
#### 6.2.10 Recommended agent algorithm
|
| 3275 |
|
| 3276 |
```python
|
| 3277 |
# Example of a recommended algorithm for computing local consensus
|