✨ Identity onboarding + Verbatim dialogue memory

- Added [identity] config section (agent_name, agent_role, user_name,
  user_role, setup_complete) to GyandootConfig and AgentConfig
- Agent loop now injects identity into system prompt on startup
- Agent loop injects past verbatim dialogue memory into system prompt
- Added dialogue_append() / dialogue_read() to MemPalace
  - Word-by-word, line-by-line verbatim record in dialogue.md
  - No compression, no truncation — every message preserved
- Agent loop writes to BOTH daily transcript AND verbatim dialogue
  on every turn
- All config paths pass identity through (flat converter, subagents)
This commit is contained in:
2026-06-11 22:31:20 +05:30
parent e309d5e2cc
commit c135ee811d
5 changed files with 154 additions and 4 deletions

View File

@@ -29,6 +29,8 @@ pub struct GyandootConfig {
pub gateway: GatewaySection,
#[serde(default)]
pub browser: BrowserSection,
#[serde(default)]
pub identity: IdentitySection,
}
impl Default for GyandootConfig {
@@ -40,6 +42,7 @@ impl Default for GyandootConfig {
memory: MemorySection::default(),
gateway: GatewaySection::default(),
browser: BrowserSection::default(),
identity: IdentitySection::default(),
}
}
}
@@ -238,6 +241,38 @@ impl Default for BrowserSection {
}
}
/// `[identity]` section — agent and user identity for MemPalace onboarding.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IdentitySection {
/// Agent's name (e.g. "GyanDoot", "Maya").
#[serde(default)]
pub agent_name: String,
/// Agent's role / personality description.
#[serde(default)]
pub agent_role: String,
/// User's name (the human operating the agent).
#[serde(default)]
pub user_name: String,
/// User's role / relationship to the agent.
#[serde(default)]
pub user_role: String,
/// Whether identity onboarding has been completed.
#[serde(default)]
pub setup_complete: bool,
}
impl Default for IdentitySection {
fn default() -> Self {
Self {
agent_name: String::new(),
agent_role: String::new(),
user_name: String::new(),
user_role: String::new(),
setup_complete: false,
}
}
}
// ─── Legacy / backward-compatible config types ──────────────────────────
// These are re-exported under their original names so downstream crates
// (gyandoot-agent, gyandoot-providers, etc.) continue to compile unchanged.
@@ -256,6 +291,7 @@ pub struct AgentConfig {
pub security: SecurityRootConfig,
pub kanban: KanbanRootConfig,
pub skills: SkillsRootConfig,
pub identity: IdentitySection,
}
impl Default for AgentConfig {
@@ -272,6 +308,7 @@ impl Default for AgentConfig {
security: SecurityRootConfig::default(),
kanban: KanbanRootConfig::default(),
skills: SkillsRootConfig::default(),
identity: IdentitySection::default(),
}
}
}
@@ -310,6 +347,7 @@ impl From<GyandootConfig> for AgentConfig {
security: SecurityRootConfig::default(),
kanban: KanbanRootConfig::default(),
skills: SkillsRootConfig::default(),
identity: cfg.identity,
}
}
}