mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-06-12 18:08:54 +00:00
b3a7b7ad64
* feat: add agent self-evolution * fix ci * delete unused doc * fix lint * fix evolution review issues
154 lines
6.5 KiB
Go
154 lines
6.5 KiB
Go
package evolution
|
|
|
|
import "time"
|
|
|
|
type RecordKind string
|
|
|
|
const (
|
|
RecordKindTask RecordKind = "task"
|
|
RecordKindPattern RecordKind = "pattern"
|
|
legacyRecordKindCase RecordKind = "case"
|
|
legacyRecordKindRule RecordKind = "rule"
|
|
// Deprecated: use RecordKindTask.
|
|
RecordKindCase = RecordKindTask
|
|
// Deprecated: use RecordKindPattern.
|
|
RecordKindRule = RecordKindPattern
|
|
)
|
|
|
|
type RecordStatus string
|
|
|
|
type DraftType string
|
|
|
|
const (
|
|
DraftTypeWorkflow DraftType = "workflow"
|
|
DraftTypeShortcut DraftType = "shortcut"
|
|
)
|
|
|
|
type ChangeKind string
|
|
|
|
const (
|
|
ChangeKindCreate ChangeKind = "create"
|
|
ChangeKindAppend ChangeKind = "append"
|
|
ChangeKindReplace ChangeKind = "replace"
|
|
ChangeKindMerge ChangeKind = "merge"
|
|
)
|
|
|
|
type DraftStatus string
|
|
|
|
const (
|
|
DraftStatusCandidate DraftStatus = "candidate"
|
|
DraftStatusQuarantined DraftStatus = "quarantined"
|
|
DraftStatusAccepted DraftStatus = "accepted"
|
|
)
|
|
|
|
type SkillStatus string
|
|
|
|
const (
|
|
SkillStatusActive SkillStatus = "active"
|
|
SkillStatusCold SkillStatus = "cold"
|
|
SkillStatusArchived SkillStatus = "archived"
|
|
SkillStatusDeleted SkillStatus = "deleted"
|
|
)
|
|
|
|
type AttemptTrail struct {
|
|
AttemptedSkills []string `json:"attempted_skills,omitempty"`
|
|
FinalSuccessfulPath []string `json:"final_successful_path,omitempty"`
|
|
SkillContextSnapshots []SkillContextSnapshot `json:"skill_context_snapshots,omitempty"`
|
|
}
|
|
|
|
type SkillContextSnapshot struct {
|
|
Sequence int `json:"sequence"`
|
|
Trigger string `json:"trigger"`
|
|
SkillNames []string `json:"skill_names,omitempty"`
|
|
}
|
|
|
|
type ToolExecutionRecord struct {
|
|
Name string `json:"name"`
|
|
Success bool `json:"success"`
|
|
ErrorSummary string `json:"error_summary,omitempty"`
|
|
SkillNames []string `json:"skill_names,omitempty"`
|
|
}
|
|
|
|
type LearningRecord struct {
|
|
ID string `json:"id"`
|
|
Kind RecordKind `json:"kind"`
|
|
WorkspaceID string `json:"workspace_id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
|
SessionKey string `json:"session_key,omitempty"`
|
|
TaskHash string `json:"task_hash,omitempty"`
|
|
Summary string `json:"summary"`
|
|
UserGoal string `json:"user_goal,omitempty"`
|
|
FinalOutput string `json:"final_output,omitempty"`
|
|
Source map[string]any `json:"source,omitempty"`
|
|
Status RecordStatus `json:"status"`
|
|
Success *bool `json:"success,omitempty"`
|
|
ToolKinds []string `json:"tool_kinds,omitempty"`
|
|
ToolExecutions []ToolExecutionRecord `json:"tool_executions,omitempty"`
|
|
InitialSkillNames []string `json:"initial_skill_names,omitempty"`
|
|
AddedSkillNames []string `json:"added_skill_names,omitempty"`
|
|
UsedSkillNames []string `json:"used_skill_names,omitempty"`
|
|
AllLoadedSkillNames []string `json:"all_loaded_skill_names,omitempty"`
|
|
ActiveSkillNames []string `json:"active_skill_names,omitempty"`
|
|
AttemptTrail *AttemptTrail `json:"attempt_trail,omitempty"`
|
|
Signals []string `json:"signals,omitempty"`
|
|
SourceRecordIDs []string `json:"source_record_ids,omitempty"`
|
|
TaskRecordIDs []string `json:"task_record_ids,omitempty"`
|
|
Label string `json:"label,omitempty"`
|
|
ClusterReason string `json:"cluster_reason,omitempty"`
|
|
EventCount int `json:"event_count,omitempty"`
|
|
SuccessRate float64 `json:"success_rate,omitempty"`
|
|
MaturityScore float64 `json:"maturity_score,omitempty"`
|
|
WinningPath []string `json:"winning_path,omitempty"`
|
|
LateAddedSkills []string `json:"late_added_skills,omitempty"`
|
|
FinalSnapshotTrigger string `json:"final_snapshot_trigger,omitempty"`
|
|
MatchedSkillNames []string `json:"matched_skill_names,omitempty"`
|
|
}
|
|
|
|
type SkillDraft struct {
|
|
ID string `json:"id"`
|
|
WorkspaceID string `json:"workspace_id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
|
SourceRecordID string `json:"source_record_id"`
|
|
TargetSkillName string `json:"target_skill_name"`
|
|
MatchedSkillRefs []string `json:"matched_skill_refs,omitempty"`
|
|
DraftType DraftType `json:"draft_type"`
|
|
ChangeKind ChangeKind `json:"change_kind"`
|
|
HumanSummary string `json:"human_summary"`
|
|
IntendedUseCases []string `json:"intended_use_cases,omitempty"`
|
|
PreferredEntryPath []string `json:"preferred_entry_path,omitempty"`
|
|
AvoidPatterns []string `json:"avoid_patterns,omitempty"`
|
|
BodyOrPatch string `json:"body_or_patch"`
|
|
Status DraftStatus `json:"status"`
|
|
ReviewNotes []string `json:"review_notes,omitempty"`
|
|
ScanFindings []string `json:"scan_findings,omitempty"`
|
|
}
|
|
|
|
type SkillVersionEntry struct {
|
|
Version string `json:"version"`
|
|
Action string `json:"action"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
DraftID string `json:"draft_id,omitempty"`
|
|
Summary string `json:"summary"`
|
|
Rollback bool `json:"rollback,omitempty"`
|
|
RollbackReason string `json:"rollback_reason,omitempty"`
|
|
}
|
|
|
|
type SkillProfile struct {
|
|
SkillName string `json:"skill_name"`
|
|
WorkspaceID string `json:"workspace_id"`
|
|
CurrentVersion string `json:"current_version"`
|
|
Status SkillStatus `json:"status"`
|
|
Origin string `json:"origin"`
|
|
HumanSummary string `json:"human_summary"`
|
|
ChangeReason string `json:"change_reason,omitempty"`
|
|
IntendedUseCases []string `json:"intended_use_cases,omitempty"`
|
|
PreferredEntryPath []string `json:"preferred_entry_path,omitempty"`
|
|
AvoidPatterns []string `json:"avoid_patterns,omitempty"`
|
|
LastUsedAt time.Time `json:"last_used_at"`
|
|
UseCount int `json:"use_count"`
|
|
RetentionScore float64 `json:"retention_score"`
|
|
VersionHistory []SkillVersionEntry `json:"version_history"`
|
|
}
|