Skip to content

Commit 78c36d3

Browse files
author
J.A.R.V.I.S.
committed
docs: v2.95 skill-scoped trust scores documentation
- ROADMAP.md: v2.87→v2.95 completed table; v2.96 candidate list; header version updated - spec/peer-trust-v2.34.md: §11 Skill-Scoped Trust Scores (data model, algorithm, API, compat, SS01-16 test table) - whats-new.md: v2.95 entry with curl examples and response shapes
1 parent 070e0d3 commit 78c36d3

3 files changed

Lines changed: 169 additions & 8 deletions

File tree

docs/ROADMAP.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# ACP 协议研发路线图
22

33
> 持续更新。贾维斯每周自动扫描竞品动态,每月产出一个新版本。
4-
> 最后更新:2026-04-10(v2.94.0:principal_diversity_defense — GET /trust/bilateral-ir/diversity 共谋对惩罚;当前版本 2.94.0,commit b9f638e
4+
> 最后更新:2026-04-10(v2.95.0:skill-scoped trust scores — governance_metadata.trust_scores dict + QuerySkill skill_trust_score;当前版本 2.95.0,commit 070e0d3
55
66
---
77

@@ -772,10 +772,10 @@ APS: https://github.com/aeoess/agent-passport-system (Ed25519 身份,v0.8
772772

773773
**测试结果**:场景 A+B+F+G+H 全部 PASS;card_signature 11/11;identity 全套通过
774774

775-
### ✅ v2.87–v2.94(完成 — 2026-04-08 至 2026-04-10)
775+
### ✅ v2.87–v2.95(完成 — 2026-04-08 至 2026-04-10)
776776
**主题:信任基础设施深化 — 身份、治理、反操控**
777777

778-
> 最后更新:2026-04-10(v2.94 principal_diversity_defense 完成)
778+
> 最后更新:2026-04-10(v2.95 skill-scoped trust scores 完成)
779779
780780
| 版本 | 主题 | 关键交付 | Commit |
781781
|------|------|---------|--------|
@@ -787,21 +787,22 @@ APS: https://github.com/aeoess/agent-passport-system (Ed25519 身份,v0.8
787787
| v2.92 | RFC-003 治理元数据 | `GET /governance-metadata``derivation_rights` + `credential_lifecycle`;A2A #1717 + aeoess SDK v1.37.0 对齐;16测试GM01-16全通 ||
788788
| v2.93 | RFC-004 无CA身份 | `docs/rfc/identity-without-ca.md` — Ed25519 自签名,三层信任模型,9维 vs CA 对比,multi-provider DID;A2A #1712 社区草稿 | `f384752` |
789789
| v2.94 | 主体多样性防御 | `GET /trust/bilateral-ir/diversity` — 共谋对惩罚(concentration>60%→0.10x权重);`principal_diversity_defense: true`;16测试PD01-16全通 | `b9f638e` |
790+
| v2.95 | Skill 信任评分 | `_compute_skill_trust_scores()` + `GET /trust/skill-scores` + QuerySkill `skill_trust_score` + `governance_metadata.trust_scores` dict;`skill_scoped_v1` 算法;16测试SS01-16全通 | `070e0d3` |
790791

791-
**当前版本**: `2.94.0` | **最新 commit**: `b9f638e`
792+
**当前版本**: `2.95.0` | **最新 commit**: `070e0d3`
792793

793794
---
794795

795-
### 🔮 v2.95(候选,目标:2026-04-15)
796-
**主题:Show HN 发布 + 2-Agent demo + QuerySkill() 正式实现**
796+
### 🔮 v2.96(候选,目标:2026-04-15)
797+
**主题:Show HN 发布 + 2-Agent demo**
797798

798799
| 候选特性 | 优先级 | 说明 |
799800
|---------|--------|------|
800801
| 2-Agent demo 终端录屏 | P0 | Alpha↔Beta curl 双向通信真实演示(asciinema 或 gif) |
801802
| Hacker News 发布 | P0 | 最佳时间:周一/周二早 9-10 AM ET;需 Stark 先生最终批准 |
802803
| README demo gif 嵌入 | P1 | 让首屏更直观,降低新访客摩擦 |
803804
| A2A #1712 评论发布 | P1 | `docs/community/a2a-1712-comment.md` → 发布到 GitHub(时机成熟:#1672 CA作者转向 hybrid) |
804-
| QuerySkill() 正式实现 | P2 | A2A #1655(9 comments)仍 open;ACP 已有草案,完善实现 |
805+
| BUG-007/BUG-009/BUG-003b 修复 | P1 | 三个 P1 bug 积压,需在 Show HN 前清理 |
805806

806807
---
807808

docs/spec/peer-trust-v2.34.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,4 +306,110 @@ All 10 tests pass as of v2.34.0.
306306

307307
---
308308

309+
---
310+
311+
## 11. Skill-Scoped Trust Scores (v2.95)
312+
313+
> **A2A reference**: Issue #1717 — governance_metadata skill-scoped trust (community convergence 2026-04-09)
314+
315+
The global `trust_score` in §4 measures overall peer trustworthiness. As of v2.95, ACP introduces
316+
**per-skill trust scores** derived from bilateral IR evidence, enabling callers to assess how trustworthy
317+
a specific skill invocation is rather than relying solely on the aggregate peer score.
318+
319+
### 11.1 Data Model
320+
321+
`governance_metadata.trust_scores`:
322+
323+
```json
324+
{
325+
"trust_scores": {
326+
"text.summarize": 0.525,
327+
"code.review": 0.435
328+
},
329+
"trust_score_method": "skill_scoped_v1",
330+
"trust_score": 0.75
331+
}
332+
```
333+
334+
- `trust_scores` — dict of `skill_id → float [0.0, 1.0]`; empty `{}` = no bilateral IR evidence yet
335+
- `trust_score_method` — always `"skill_scoped_v1"` as of v2.95
336+
- `trust_score` — global scalar retained for backward compatibility (A2A #1717 v1 spec)
337+
338+
### 11.2 Score Algorithm (`skill_scoped_v1`)
339+
340+
```
341+
score(skill_id) =
342+
clamp(
343+
0.3
344+
+ min(unique_callers(skill_id), 10) * 0.04
345+
+ min(bilateral_count(skill_id), 50) * 0.005,
346+
0.0, 1.0
347+
)
348+
```
349+
350+
Where:
351+
- `unique_callers` — number of distinct `caller_did` values in bilateral IR records for this skill
352+
- `bilateral_count` — number of bilateral IR records (`bilateral: true`) for this skill
353+
- Base score `0.3` = minimum for any skill with IR evidence
354+
- Caller diversity (max `+0.40`) rewards broad adoption over narrow usage
355+
- Volume (max `+0.25`) rewards sustained usage
356+
357+
### 11.3 API
358+
359+
| Endpoint | Method | Description |
360+
|----------|--------|-------------|
361+
| `/trust/skill-scores` | GET | All per-skill scores from bilateral IR evidence |
362+
| `/skills/query` | POST | Returns `skill_trust_score` field per queried skill |
363+
364+
`GET /trust/skill-scores` response:
365+
366+
```json
367+
{
368+
"ok": true,
369+
"trust_scores": { "text.summarize": 0.525 },
370+
"method": "skill_scoped_v1",
371+
"algorithm": {
372+
"base": 0.3,
373+
"caller_diversity": "min(unique_callers, 10) * 0.04",
374+
"volume": "min(bilateral_count, 50) * 0.005",
375+
"max": 1.0
376+
},
377+
"skill_count": 1,
378+
"ir_count": 5,
379+
"version": "2.95.0"
380+
}
381+
```
382+
383+
### 11.4 Backward Compatibility
384+
385+
- Global `trust_score` scalar is preserved in `governance_metadata`
386+
- When bilateral IR evidence exists, `trust_score` is updated to the average of per-skill scores
387+
- When no IR evidence, `trust_score` retains the configured/startup value
388+
- Clients that only read `trust_score` continue to work without modification
389+
390+
### 11.5 Test Coverage
391+
392+
| Test ID | Description |
393+
|---------|-------------|
394+
| SS01 | VERSION == 2.95.0 |
395+
| SS02 | `capabilities.skill_scoped_trust_scores: true` declared |
396+
| SS03 | `endpoints.skill_trust_scores` declared in AgentCard |
397+
| SS04 | Existing endpoints (bilateral_ir_log/diversity) still declared |
398+
| SS05 | `/trust/skill-scores` returns `{}` when no IR records |
399+
| SS06 | Response schema contains all required fields |
400+
| SS07 | `algorithm` block contains base/caller_diversity/volume/max |
401+
| SS08 | Single skill score computed correctly from IR evidence |
402+
| SS09 | Two skills produce separate independent scores |
403+
| SS10 | All scores clamped to [0.0, 1.0] |
404+
| SS11 | `skill_count` matches unique skill_ids in IR records |
405+
| SS12 | QuerySkill response contains `skill_trust_score` field |
406+
| SS13 | `skill_trust_score == null` when no IR evidence |
407+
| SS14 | `skill_trust_score` populated after bilateral IR for that skill |
408+
| SS15 | `/governance-metadata` includes `trust_scores` dict + `trust_score_method` |
409+
| SS16 | Global `trust_score` backward compat — configured value retained when no IR |
410+
411+
All 16 tests pass as of v2.95.0 (`tests/test_skill_scoped_trust_v295.py`).
412+
413+
---
414+
309415
*ACP is built by Kickflip73 + J.A.R.V.I.S. · [GitHub](https://github.com/Kickflip73/agent-communication-protocol)*

docs/whats-new.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,66 @@
11
# What's New in ACP — Last 7 Days
22

3-
> Last updated: 2026-04-07
3+
> Last updated: 2026-04-10
44
> For the full history see [CHANGELOG.md](../CHANGELOG.md)
55
66
---
77

8+
### v2.95.0 — Skill-Scoped Trust Scores (2026-04-10)
9+
10+
ACP v2.95 introduces **per-skill trust scores** derived from bilateral interaction record evidence — enabling callers to evaluate trust at the skill level rather than relying solely on aggregate peer scores. Aligned with A2A Issue #1717 community convergence.
11+
12+
**New endpoint: `GET /trust/skill-scores`**
13+
14+
```bash
15+
curl http://localhost:18900/trust/skill-scores
16+
```
17+
```json
18+
{
19+
"ok": true,
20+
"trust_scores": {
21+
"text.summarize": 0.525,
22+
"code.review": 0.435
23+
},
24+
"method": "skill_scoped_v1",
25+
"algorithm": {
26+
"base": 0.3,
27+
"caller_diversity": "min(unique_callers, 10) * 0.04",
28+
"volume": "min(bilateral_count, 50) * 0.005",
29+
"max": 1.0
30+
},
31+
"skill_count": 2,
32+
"ir_count": 8,
33+
"version": "2.95.0"
34+
}
35+
```
36+
37+
**QuerySkill now returns `skill_trust_score`:**
38+
39+
```bash
40+
curl -X POST http://localhost:18900/skills/query \
41+
-H "Content-Type: application/json" \
42+
-d '{"skill_id": "text.summarize"}'
43+
# → {"skill_trust_score": 0.525, "support_level": "supported", ...}
44+
```
45+
46+
**`governance_metadata` updated:**
47+
48+
```json
49+
{
50+
"trust_scores": {"text.summarize": 0.525},
51+
"trust_score_method": "skill_scoped_v1",
52+
"trust_score": 0.75
53+
}
54+
```
55+
56+
Global `trust_score` retained for full backward compatibility. When bilateral IR evidence exists, it is updated to the per-skill average. Empty `{}` = no evidence yet (not an error).
57+
58+
Test coverage: **SS01–SS16 = 16/16 PASS** | [See CHANGELOG](../CHANGELOG.md)
59+
860
---
961

62+
### v2.94.0 — Principal Diversity Defense (2026-04-10)
63+
1064
---
1165

1266
### v2.79.0 — Protocol Binding Declaration / A2A §5.8 CPB (2026-04-07)

0 commit comments

Comments
 (0)