EntityType enum extended with 3 agent types:
- AgentPrompt: track prompt templates, usage, quality
- AgentSkill: track learned capabilities, success rate, latency
- AgentDecision: track decisions, reasoning, outcomes
New module: agent_entity.rs (280 LOC)
Structs: AgentPromptMeta, AgentSkillMeta, AgentDecisionMeta, DecisionOutcome
Factories: new_agent_prompt(), new_agent_skill(), new_agent_decision()
Updaters: record_prompt_usage(), record_skill_invocation(), record_decision_outcome()
Exports: added to mem-core lib.rs
Tests: 8 new (prompt, skill, decision, outcome, usage stats,
invocation stats, round-trip, serialization)
Build: cargo build --release clean
Suite: 174 lib tests pass
This commit is contained in:
@@ -17,6 +17,13 @@ pub enum EntityType {
|
||||
Location,
|
||||
Event,
|
||||
Organization,
|
||||
/// Agent prompt template tracked as a first-class entity.
|
||||
/// Enables the agent to learn which prompts produce good results.
|
||||
AgentPrompt,
|
||||
/// Agent skill — a reusable capability the agent has learned.
|
||||
AgentSkill,
|
||||
/// Agent decision — a recorded choice with reasoning and outcome.
|
||||
AgentDecision,
|
||||
Unknown,
|
||||
}
|
||||
|
||||
@@ -29,6 +36,9 @@ impl EntityType {
|
||||
Self::Location => "location",
|
||||
Self::Event => "event",
|
||||
Self::Organization => "organization",
|
||||
Self::AgentPrompt => "agent_prompt",
|
||||
Self::AgentSkill => "agent_skill",
|
||||
Self::AgentDecision => "agent_decision",
|
||||
Self::Unknown => "unknown",
|
||||
}
|
||||
}
|
||||
@@ -41,6 +51,9 @@ impl EntityType {
|
||||
"location" => Self::Location,
|
||||
"event" => Self::Event,
|
||||
"organization" => Self::Organization,
|
||||
"agent_prompt" => Self::AgentPrompt,
|
||||
"agent_skill" => Self::AgentSkill,
|
||||
"agent_decision" => Self::AgentDecision,
|
||||
_ => Self::Unknown,
|
||||
}
|
||||
}
|
||||
@@ -175,6 +188,9 @@ mod tests {
|
||||
EntityType::Person,
|
||||
EntityType::Tool,
|
||||
EntityType::Concept,
|
||||
EntityType::AgentPrompt,
|
||||
EntityType::AgentSkill,
|
||||
EntityType::AgentDecision,
|
||||
] {
|
||||
let s = ty.as_str();
|
||||
assert_eq!(EntityType::from_str(s), *ty);
|
||||
|
||||
Reference in New Issue
Block a user