Module: Phronomy

Defined in:
lib/phronomy.rb,
lib/phronomy/eval.rb,
lib/phronomy/tool.rb,
lib/phronomy/actor.rb,
lib/phronomy/agent.rb,
lib/phronomy/loader.rb,
lib/phronomy/memory.rb,
lib/phronomy/context.rb,
lib/phronomy/railtie.rb,
lib/phronomy/version.rb,
lib/phronomy/runnable.rb,
lib/phronomy/splitter.rb,
lib/phronomy/workflow.rb,
lib/phronomy/tool/base.rb,
lib/phronomy/agent/base.rb,
lib/phronomy/embeddings.rb,
lib/phronomy/eval/runner.rb,
lib/phronomy/eval/scorer.rb,
lib/phronomy/loader/base.rb,
lib/phronomy/state_store.rb,
lib/phronomy/token_usage.rb,
lib/phronomy/agent/runner.rb,
lib/phronomy/eval/dataset.rb,
lib/phronomy/eval/metrics.rb,
lib/phronomy/tracing/base.rb,
lib/phronomy/vector_store.rb,
lib/phronomy/agent/handoff.rb,
lib/phronomy/configuration.rb,
lib/phronomy/output_parser.rb,
lib/phronomy/splitter/base.rb,
lib/phronomy/tool/mcp_tool.rb,
lib/phronomy/eval/eval_case.rb,
lib/phronomy/guardrail/base.rb,
lib/phronomy/memory/storage.rb,
lib/phronomy/trust_pipeline.rb,
lib/phronomy/context/builder.rb,
lib/phronomy/embeddings/base.rb,
lib/phronomy/eval/comparison.rb,
lib/phronomy/prompt_template.rb,
lib/phronomy/rails/agent_job.rb,
lib/phronomy/tool/agent_tool.rb,
lib/phronomy/workflow_runner.rb,
lib/phronomy/eval/eval_result.rb,
lib/phronomy/eval/scorer/base.rb,
lib/phronomy/knowledge_source.rb,
lib/phronomy/memory/retrieval.rb,
lib/phronomy/state_store/base.rb,
lib/phronomy/workflow_context.rb,
lib/phronomy/agent/react_agent.rb,
lib/phronomy/context/assembler.rb,
lib/phronomy/guardrail/builtin.rb,
lib/phronomy/loader/csv_loader.rb,
lib/phronomy/state_store/redis.rb,
lib/phronomy/vector_store/base.rb,
lib/phronomy/memory/compression.rb,
lib/phronomy/output_parser/base.rb,
lib/phronomy/memory/storage/base.rb,
lib/phronomy/tracing/null_tracer.rb,
lib/phronomy/context/token_budget.rb,
lib/phronomy/context/trim_context.rb,
lib/phronomy/active_record/acts_as.rb,
lib/phronomy/active_record/message.rb,
lib/phronomy/eval/scorer/llm_judge.rb,
lib/phronomy/knowledge_source/base.rb,
lib/phronomy/memory/retrieval/base.rb,
lib/phronomy/state_store/encryptor.rb,
lib/phronomy/state_store/in_memory.rb,
lib/phronomy/thread_actor_registry.rb,
lib/phronomy/vector_store/pgvector.rb,
lib/phronomy/loader/markdown_loader.rb,
lib/phronomy/vector_store/in_memory.rb,
lib/phronomy/context/token_estimator.rb,
lib/phronomy/context/trigger_context.rb,
lib/phronomy/eval/scorer/exact_match.rb,
lib/phronomy/memory/compression/base.rb,
lib/phronomy/memory/retrieval/recent.rb,
lib/phronomy/tracing/langfuse_tracer.rb,
lib/phronomy/active_record/checkpoint.rb,
lib/phronomy/active_record/extensions.rb,
lib/phronomy/loader/plain_text_loader.rb,
lib/phronomy/memory/storage/in_memory.rb,
lib/phronomy/guardrail/input_guardrail.rb,
lib/phronomy/memory/retrieval/semantic.rb,
lib/phronomy/output_parser/json_parser.rb,
lib/phronomy/state_store/active_record.rb,
lib/phronomy/vector_store/redis_search.rb,
lib/phronomy/context/compaction_context.rb,
lib/phronomy/guardrail/output_guardrail.rb,
lib/phronomy/memory/compression/summary.rb,
lib/phronomy/memory/retrieval/composite.rb,
lib/phronomy/state_store/encryptor/base.rb,
lib/phronomy/eval/scorer/includes_scorer.rb,
lib/phronomy/memory/conversation_manager.rb,
lib/phronomy/splitter/recursive_splitter.rb,
lib/phronomy/memory/storage/active_record.rb,
lib/phronomy/splitter/fixed_size_splitter.rb,
lib/phronomy/context/context_version_cache.rb,
lib/phronomy/tracing/open_telemetry_tracer.rb,
lib/phronomy/embeddings/ruby_llm_embeddings.rb,
lib/phronomy/knowledge_source/rag_knowledge.rb,
lib/phronomy/agent/before_completion_context.rb,
lib/phronomy/output_parser/structured_parser.rb,
lib/phronomy/knowledge_source/entity_knowledge.rb,
lib/phronomy/knowledge_source/static_knowledge.rb,
lib/generators/phronomy/install/install_generator.rb,
lib/phronomy/state_store/encryptor/active_support.rb,
lib/phronomy/memory/compression/tool_output_pruner.rb,
lib/phronomy/guardrail/builtin/pii_pattern_detector.rb,
lib/phronomy/guardrail/builtin/prompt_injection_detector.rb

Defined Under Namespace

Modules: ActiveRecord, Agent, Context, Embeddings, Eval, Generators, Guardrail, KnowledgeSource, Loader, Memory, OutputParser, Rails, Runnable, Splitter, StateStore, ThreadActorRegistry, Tool, Tracing, VectorStore, WorkflowContext Classes: Actor, Configuration, ConfigurationError, Error, GuardrailError, HandoffError, ParseError, PromptTemplate, Railtie, RecursionLimitError, TokenUsage, ToolError, TrustPipeline, Workflow, WorkflowRunner

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.workflow_context_registryHash{String => Class}? (readonly)

Returns the current registry Hash, or nil when no class has been registered.

Returns:

  • (Hash{String => Class}, nil)


67
68
69
# File 'lib/phronomy.rb', line 67

def workflow_context_registry
  @workflow_context_registry
end

Class Method Details

.configurationObject



74
75
76
# File 'lib/phronomy.rb', line 74

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



78
79
80
# File 'lib/phronomy.rb', line 78

def configure
  yield configuration
end

.register_workflow_context(*classes) ⇒ Object

Register one or more WorkflowContext classes that are allowed to be deserialized by StateStore backends. When at least one class is registered, only registered classes will be accepted by +StateStore::Base#safe_state_class+.

Call this once at application startup (e.g. in a Rails initializer).

Examples:

Phronomy.register_workflow_context(ScanContext, OtherContext)

Parameters:

  • classes (Array<Class>)

    classes including Phronomy::WorkflowContext



55
56
57
58
59
60
61
62
63
# File 'lib/phronomy.rb', line 55

def register_workflow_context(*classes)
  @registry_mutex.synchronize do
    @workflow_context_registry ||= {}
    classes.each do |klass|
      raise ArgumentError, "#{klass.inspect} is not a Class" unless klass.is_a?(Class)
      @workflow_context_registry[klass.name] = klass
    end
  end
end

.reset_configuration!Object

Resets configuration; primarily used in tests.



83
84
85
# File 'lib/phronomy.rb', line 83

def reset_configuration!
  @configuration = Configuration.new
end

.reset_workflow_context_registry!Object

Clears the registry. Primarily used in tests.



70
71
72
# File 'lib/phronomy.rb', line 70

def reset_workflow_context_registry!
  @registry_mutex.synchronize { @workflow_context_registry = nil }
end