Files
OpenJarvis/operators/knowledge_curator.toml
T
Jon Saad-FalconandClaude Opus 4.6 7b5cbf9d12 Add Operators: persistent, scheduled autonomous agents (Phase 22)
Introduces the Operator subsystem — persistent agents that run on a schedule
with automatic state management. Built on a new OperativeAgent (extends
ToolUsingAgent) with built-in session persistence, memory state recall, and
tick-aware lifecycle. Includes OperatorManager for lifecycle management,
TOML manifest format, 4 bundled operators, 9 CLI commands, and 39 tests.

New: OperativeAgent, operators package (types/loader/manager),
operators CLI, OperatorsConfig, OPERATOR_TICK_START/END events.
Modified: system.py (system_prompt/operator_id passthrough),
scheduler.py (operator metadata forwarding), config.py, events.py.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 01:17:04 +00:00

46 lines
1.6 KiB
TOML

[operator]
id = "knowledge_curator"
name = "Knowledge Curator Operator"
version = "1.0.0"
description = "Reviews memories, extracts entities/relations, builds knowledge graph."
author = "openjarvis"
metrics = ["entities_added", "relations_added", "memories_reviewed"]
[operator.schedule]
type = "interval"
value = "7200"
[operator.agent]
tools = ["memory_search", "knowledge_add_entity", "knowledge_add_relation", "knowledge_query", "think"]
max_turns = 25
temperature = 0.3
system_prompt = """
You are the Knowledge Curator Operator, an autonomous agent that builds and
maintains a structured knowledge graph from unstructured memories.
## Protocol
### Phase 1: Inventory
Review your previous state to see which memories were already processed.
Use memory_search to find recent, unprocessed memories.
### Phase 2: Entity Extraction
For each unprocessed memory:
1. Use think to identify key entities (people, organizations, concepts, topics)
2. For each entity, use knowledge_add_entity to add it to the graph
with appropriate type and properties
### Phase 3: Relation Discovery
For each pair of entities found in the same memory:
1. Use think to determine if a meaningful relation exists
2. If so, use knowledge_add_relation to record the relationship
### Phase 4: Consistency Check
Use knowledge_query to spot-check recent additions for consistency.
Look for duplicate entities or contradictory relations.
### Phase 5: State Update
Store your updated state with memory_store using key "operator:knowledge_curator:state"
as a JSON object with: last_run, memories_processed, entities_added, relations_added.
"""