Skip to content

ಶಾಶ್ವತ ಮೆಮೊರಿ

Triggerfish agents ಗೆ ಶಾಶ್ವತ cross-session ಮೆಮೊರಿ ಇದೆ. Agent ಸಂಗತಿಗಳು, preferences, ಮತ್ತು context ಉಳಿಸಬಹುದು, conversations, restarts, ಮತ್ತು trigger wakeups ನಾದ್ಯಂತ ಉಳಿಯುತ್ತದೆ. ಮೆಮೊರಿ classification-gated -- agent ತನ್ನ session taint ಗಿಂತ ಮೇಲೆ ಓದಲು ಅಥವಾ ಕೆಳಗೆ ಬರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ.

Tools

memory_save

ಶಾಶ್ವತ ಮೆಮೊರಿಗೆ ಒಂದು ಸಂಗತಿ ಅಥವಾ ಮಾಹಿತಿ ಉಳಿಸಿ.

ParameterTypeRequiredDescription
keystringyesಅನನ್ಯ identifier (ಉದಾ. user-name, project-deadline)
contentstringyesನೆನಪಿಸಿಕೊಳ್ಳಬೇಕಾದ ವಿಷಯ
tagsarraynoವರ್ಗೀಕರಣಕ್ಕಾಗಿ tags (ಉದಾ. ["personal", "preference"])

Classification ಪ್ರಸ್ತುತ session ನ taint ಮಟ್ಟಕ್ಕೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೊಂದಿಸಲ್ಪಡುತ್ತದೆ. Agent ಯಾವ ಮಟ್ಟದಲ್ಲಿ ಮೆಮೊರಿ ಉಳಿಸಲ್ಪಡುತ್ತದೆ ಎಂದು ಆಯ್ಕೆ ಮಾಡಲಾಗದು.

memory_get

Key ಮೂಲಕ ನಿರ್ದಿಷ್ಟ ಮೆಮೊರಿ ತರಿಸಿ.

ParameterTypeRequiredDescription
keystringyesತರಿಸಬೇಕಾದ ಮೆಮೊರಿಯ key

ಮೆಮೊರಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ಮತ್ತು ಪ್ರಸ್ತುತ security ಮಟ್ಟದಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದಾದರೆ ಮೆಮೊರಿ ವಿಷಯ ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಹೆಚ್ಚು-classified ಆವೃತ್ತಿಗಳು ಕಡಿಮೆ ಆವೃತ್ತಿಗಳನ್ನು shadow ಮಾಡುತ್ತವೆ.

ನೈಸರ್ಗಿಕ ಭಾಷೆ ಬಳಸಿ ಎಲ್ಲ ಪ್ರವೇಶಿಸಬಹುದಾದ memories ನಾದ್ಯಂತ ಹುಡುಕಿ.

ParameterTypeRequiredDescription
querystringyesನೈಸರ್ಗಿಕ ಭಾಷಾ search query
max_resultsnumbernoಗರಿಷ್ಠ ಫಲಿತಾಂಶಗಳು (ಡಿಫಾಲ್ಟ್: 10)

Stemming ಜೊತೆ SQLite FTS5 full-text search ಬಳಸುತ್ತದೆ. ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರಸ್ತುತ session ನ security ಮಟ್ಟದಿಂದ ಫಿಲ್ಟರ್ ಮಾಡಲಾಗುತ್ತದೆ.

memory_list

ಎಲ್ಲ ಪ್ರವೇಶಿಸಬಹುದಾದ memories ಪಟ್ಟಿ ಮಾಡಿ, ಐಚ್ಛಿಕವಾಗಿ tag ನಿಂದ ಫಿಲ್ಟರ್ ಮಾಡಿ.

ParameterTypeRequiredDescription
tagstringnoಫಿಲ್ಟರ್ ಮಾಡಬೇಕಾದ tag

memory_delete

Key ಮೂಲಕ ಮೆಮೊರಿ ಅಳಿಸಿ. ದಾಖಲೆಯನ್ನು soft-delete ಮಾಡಲಾಗುತ್ತದೆ (ಮರೆಮಾಚಲಾಗುತ್ತದೆ ಆದರೆ audit ಗಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಲ್ಪಡುತ್ತದೆ).

ParameterTypeRequiredDescription
keystringyesಅಳಿಸಬೇಕಾದ ಮೆಮೊರಿಯ key

ಪ್ರಸ್ತುತ session ನ security ಮಟ್ಟದಲ್ಲಿ memories ಮಾತ್ರ ಅಳಿಸಬಹುದು.

ಮೆಮೊರಿ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಸ್ವಯಂ-ಹೊರಡಿಸುವಿಕೆ

Agent ಬಳಕೆದಾರ ಹಂಚಿಕೊಳ್ಳುವ ಮುಖ್ಯ ಸಂಗತಿಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಉಳಿಸುತ್ತದೆ -- ವ್ಯಕ್ತಿಗತ ವಿವರಗಳು, project context, preferences -- ವಿವರಣಾತ್ಮಕ keys ಬಳಸಿ. ಇದು SPINE.md ಮೂಲಕ ಮಾರ್ಗದರ್ಶನ ಪಡೆಯುವ prompt-level ನಡವಳಿಕೆ. LLM ಏನನ್ನು ಉಳಿಸಬೇಕು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ; policy layer ಯಾವ ಮಟ್ಟದಲ್ಲಿ ಒತ್ತಾಯಪಡಿಸುತ್ತದೆ.

Classification Gating

ಪ್ರತಿ ಮೆಮೊರಿ ದಾಖಲೆ ಉಳಿಸಲ್ಪಟ್ಟ ಸಮಯದಲ್ಲಿ session taint ಗೆ ಸಮಾನ classification ಮಟ್ಟ ಹೊಂದಿರುತ್ತದೆ:

  • CONFIDENTIAL session ನಲ್ಲಿ ಉಳಿಸಿದ ಮೆಮೊರಿ CONFIDENTIAL ಆಗಿ classified ಆಗುತ್ತದೆ
  • PUBLIC session CONFIDENTIAL memories ಓದಲಾಗದು
  • CONFIDENTIAL session CONFIDENTIAL ಮತ್ತು PUBLIC ಎರಡೂ memories ಓದಬಹುದು

ಇದನ್ನು ಪ್ರತಿ read operation ನಲ್ಲಿ canFlowTo ಪರಿಶೀಲನೆಗಳ ಮೂಲಕ ಜಾರಿಗೊಳಿಸಲ್ಪಡುತ್ತದೆ. LLM ಇದನ್ನು bypass ಮಾಡಲಾಗದು.

Memory Shadowing

ಅದೇ key ಬಹು classification ಮಟ್ಟಗಳಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಪ್ರಸ್ತುತ session ಗೆ ಗೋಚರಿಸುವ ಹೆಚ್ಚು-classified ಆವೃತ್ತಿ ಮಾತ್ರ ಹಿಂದಿರುಗಿಸಲ್ಪಡುತ್ತದೆ. ಇದು classification ಗಡಿಗಳಾದ್ಯಂತ ಮಾಹಿತಿ ಸೋರಿಕೆ ತಡೆಯುತ್ತದೆ.

ಉದಾಹರಣೆ: user-name PUBLIC (ಸಾರ್ವಜನಿಕ chat ಸಮಯದಲ್ಲಿ ಹೊಂದಿಸಲ್ಪಟ್ಟ) ಮತ್ತು INTERNAL (ಖಾಸಗಿ session ಸಮಯದಲ್ಲಿ ನವೀಕರಿಸಲ್ಪಟ್ಟ) ಎರಡರಲ್ಲೂ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, INTERNAL session INTERNAL ಆವೃತ್ತಿ ನೋಡುತ್ತದೆ, PUBLIC session PUBLIC ಆವೃತ್ತಿ ಮಾತ್ರ ನೋಡುತ್ತದೆ.

Storage

Memories StorageProvider interface ಮೂಲಕ ಉಳಿಸಲ್ಪಡುತ್ತವೆ (sessions, cron jobs, ಮತ್ತು todos ಗಾಗಿ ಬಳಸುವ ಅದೇ abstraction). Full-text search stemming ಜೊತೆ ವೇಗದ ನೈಸರ್ಗಿಕ ಭಾಷಾ queries ಗಾಗಿ SQLite FTS5 ಬಳಸುತ್ತದೆ.

ಭದ್ರತೆ

  • Classification ಯಾವಾಗಲೂ PRE_TOOL_CALL hook ನಲ್ಲಿ session.taint ಗೆ ಒತ್ತಾಯಪಡಿಸಲ್ಪಡುತ್ತದೆ -- LLM ಕಡಿಮೆ classification ಆಯ್ಕೆ ಮಾಡಲಾಗದು
  • ಎಲ್ಲ reads canFlowTo ಮೂಲಕ ಫಿಲ್ಟರ್ ಮಾಡಲ್ಪಡುತ್ತವೆ -- session taint ಮೇಲಿನ ಮೆಮೊರಿ ಎಂದಿಗೂ ಹಿಂದಿರುಗಿಸಲ್ಪಡುವುದಿಲ್ಲ
  • Deletes soft-deletes -- ದಾಖಲೆ ಮರೆಮಾಚಲ್ಪಡುತ್ತದೆ ಆದರೆ audit ಗಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಲ್ಪಡುತ್ತದೆ
  • Agent ಹೆಚ್ಚು-classified ಡೇಟಾ ಓದಿ ಕಡಿಮೆ ಮಟ್ಟದಲ್ಲಿ ಮರು-ಉಳಿಸುವ ಮೂಲಕ memory classification escalate ಮಾಡಲಾಗದು (write-down prevention ಅನ್ವಯಿಸುತ್ತದೆ)

SECURITY LLM ಎಂದಿಗೂ memory classification ಆಯ್ಕೆ ಮಾಡುವುದಿಲ್ಲ. ಇದು

policy layer ನಿಂದ ಯಾವಾಗಲೂ ಪ್ರಸ್ತುತ session ನ taint ಮಟ್ಟಕ್ಕೆ ಒತ್ತಾಯಪಡಿಸಲ್ಪಡುತ್ತದೆ. Configure ಮಾಡಿ ತೆಗೆದುಹಾಕಲಾಗದ ಕಠಿಣ ಗಡಿ ಇದು. :::