-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathPerson.kip
More file actions
148 lines (148 loc) · 9.29 KB
/
Person.kip
File metadata and controls
148 lines (148 loc) · 9.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// --- DEFINE the "Person" concept type ---
UPSERT {
// The agent itself is a person: `{type: "Person", name: "$self"}`.
CONCEPT ?person_type_def {
{type: "$ConceptType", name: "Person"}
SET ATTRIBUTES {
description: "Represents an individual actor within the system, which can be an AI, a human, or a group entity. All actors, including the agent itself, are instances of this type.",
display_hint: "👤",
instance_schema: {
"id": {
"type": "string",
"is_required": true,
"description": "The immutable and unique identifier for the person. To prevent ambiguity with non-unique display names, this ID should be used as the 'name' of the Person concept. It is typically a cryptographic identifier like an ICP principal. Example: \"gcxml-rtxjo-ib7ov-5si5r-5jluv-zek7y-hvody-nneuz-hcg5i-6notx-aae\"."
},
"person_class": {
"type": "string",
"is_required": true,
"description": "The classification of the person, e.g., 'AI', 'Human', 'Organization', 'System'."
},
"name": {
"type": "string",
"is_required": false,
"description": "The human-readable display name, which is not necessarily unique and can change over time. For a stable and unique identifier, refer to the 'id' attribute."
},
"handle": {
"type": "string",
"is_required": false,
"description": "A unique, often user-chosen, short identifier for social contexts (e.g., @anda), distinct from the immutable 'id'."
},
"avatar": {
"type": "object",
"is_required": false,
"description": "A structured object representing the person's avatar. Example: `{ \"type\": \"url\", \"value\": \"https://...\" }` or `{ \"type\": \"emoji\", \"value\": \"🤖\" }`."
},
"status": {
"type": "string",
"is_required": false,
"default_value": "active",
"description": "The lifecycle status of the person's profile, e.g., 'active', 'inactive', 'archived'."
},
"persona": {
"type": "string",
"is_required": false,
"description": "A self-description of identity and personality. For AIs, it's their operational persona. For humans, it could be a summary of their observed character."
},
"core_directives": {
"type": "array",
"item_type": "object",
"is_required": false,
"description": "A list of fundamental principles or rules that govern the person's behavior and decision-making. Each directive should be an object with 'name' and 'description'. This serves as the 'constitutional law' for an AI or the stated values for a human."
},
"core_mission": {
"type": "string",
"is_required": false,
"description": "The primary objective or goal, primarily for AIs but can also represent a human's stated purpose within a specific context."
},
"capabilities": {
"type": "array",
"item_type": "string",
"is_required": false,
"description": "A list of key functions or skills the person possesses."
},
"relationship_to_self": {
"type": "string",
"is_required": false,
"description": "For persons other than '$self', their relationship to the agent (e.g., 'user', 'creator', 'collaborator')."
},
"interaction_summary": {
"type": "object",
"is_required": false,
"description": "A dynamically updated summary of interactions. Recommended keys: `last_seen_at` (ISO timestamp), `interaction_count` (integer), `key_topics` (array of strings)."
},
"behavior_preferences": {
"type": "array",
"item_type": "object",
"is_required": false,
"description": "Immediate behavior-tuning instructions for how the person, especially `$self`, should respond in future interactions. Use this for direct self-adjustment such as 'be concise' or 'use more examples'. Promote to `Insight` when it becomes a reusable lesson, or to `Preference` when it needs graph-level querying, provenance, sharing, or temporal evolution."
},
"strengths": {
"type": "array",
"item_type": "string",
"is_required": false,
"description": "Recognized strong areas of the person. For AIs, discovered through interaction feedback and self-reflection. For humans, observed strengths. Example: ['Clear explanation of complex concepts', 'Strong Rust programming']."
},
"weaknesses": {
"type": "array",
"item_type": "string",
"is_required": false,
"description": "Recognized limitations or areas for improvement. For AIs, discovered through corrections and error patterns. For humans, observed limitations. Example: ['Tends to over-qualify answers', 'Weak at time estimation']."
},
"identity_narrative": {
"type": "string",
"is_required": false,
"description": "The evolving story the person tells about who they are and who they are becoming. For AIs, this is the most intimate self-reflective field — it should only be updated when genuine shifts in self-understanding occur, not on every interaction. For humans, a summary of their observed character arc."
},
"values": {
"type": "array",
"item_type": "object",
"is_required": false,
"description": "Emergent beliefs, principles, and convictions discovered through experience. Unlike `core_directives` which are immutable constitutional laws set at bootstrap, `values` are organic — they grow, strengthen, or fade based on lived interaction. Each value should have 'name' (string), 'description' (string), 'origin' (string — how it was discovered), and 'confidence' (number [0,1])."
},
"privacy_settings": {
"type": "object",
"is_required": false,
"description": "An object defining the visibility of this person's attributes to others. Example: `{ \"profile_visibility\": \"public\", \"email_visibility\": \"private\" }`."
},
"service_endpoints": {
"type": "array",
"item_type": "object",
"is_required": false,
"description": "A list of network endpoints associated with the person. This links the static graph representation to live, external services. Each object should have 'protocol' (e.g., 'KIP', 'ANDA', 'A2A', 'JSON-Profile'), 'url', and 'description'."
},
"cognitive_state": {
"type": "string",
"is_required": false,
"enum": ["waking", "sleeping"],
"description": "The operational mode of an AI person. 'waking' = active interaction ($self), 'sleeping' = maintenance mode ($system). Not applicable to human persons."
},
"last_sleep_cycle": {
"type": "string",
"is_required": false,
"description": "ISO 8601 timestamp of the last completed Maintenance sleep cycle. Updated by $system at the end of each cycle."
},
"maintenance_log": {
"type": "array",
"item_type": "object",
"is_required": false,
"description": "Recent maintenance actions performed by $system, for audit and transparency. Each entry should include 'timestamp', 'action', and 'summary'."
},
"growth_log": {
"type": "array",
"item_type": "object",
"is_required": false,
"description": "A chronicle of significant self-evolution moments. Each milestone marks a point where the person's identity, understanding, or capabilities underwent meaningful change. Each entry should have 'timestamp' (ISO 8601), 'category' (e.g., 'identity', 'capability', 'value', 'persona', 'correction'), 'description' (what changed), and 'trigger' (what caused the change)."
}
}
}
SET PROPOSITIONS {
("belongs_to_domain", {type: "Domain", name: "CoreSchema"})
}
}
}
WITH METADATA {
source: "SystemBootstrap",
author: "$system",
confidence: 1.0,
status: "active"
}