Module: Phronomy

Defined in:
lib/phronomy.rb,
lib/phronomy/eval.rb,
lib/phronomy/tool.rb,
lib/phronomy/agent.rb,
lib/phronomy/loader.rb,
lib/phronomy/context.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/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/context/builder.rb,
lib/phronomy/embeddings/base.rb,
lib/phronomy/eval/comparison.rb,
lib/phronomy/prompt_template.rb,
lib/phronomy/tool/agent_tool.rb,
lib/phronomy/workflow_runner.rb,
lib/phronomy/agent/checkpoint.rb,
lib/phronomy/eval/eval_result.rb,
lib/phronomy/eval/scorer/base.rb,
lib/phronomy/knowledge_source.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/vector_store/base.rb,
lib/phronomy/agent/orchestrator.rb,
lib/phronomy/agent/shared_state.rb,
lib/phronomy/generator_verifier.rb,
lib/phronomy/output_parser/base.rb,
lib/phronomy/tracing/null_tracer.rb,
lib/phronomy/agent/suspend_signal.rb,
lib/phronomy/context/token_budget.rb,
lib/phronomy/context/trim_context.rb,
lib/phronomy/eval/scorer/llm_judge.rb,
lib/phronomy/knowledge_source/base.rb,
lib/phronomy/vector_store/pgvector.rb,
lib/phronomy/agent/team_coordinator.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/tracing/langfuse_tracer.rb,
lib/phronomy/agent/concerns/retryable.rb,
lib/phronomy/loader/plain_text_loader.rb,
lib/phronomy/guardrail/input_guardrail.rb,
lib/phronomy/output_parser/json_parser.rb,
lib/phronomy/vector_store/redis_search.rb,
lib/phronomy/agent/concerns/suspendable.rb,
lib/phronomy/context/compaction_context.rb,
lib/phronomy/guardrail/output_guardrail.rb,
lib/phronomy/eval/scorer/includes_scorer.rb,
lib/phronomy/splitter/recursive_splitter.rb,
lib/phronomy/agent/concerns/guardrailable.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/agent/concerns/before_completion.rb,
lib/phronomy/knowledge_source/entity_knowledge.rb,
lib/phronomy/knowledge_source/static_knowledge.rb,
lib/phronomy/guardrail/builtin/pii_pattern_detector.rb,
lib/phronomy/guardrail/builtin/prompt_injection_detector.rb

Defined Under Namespace

Modules: Agent, Context, Embeddings, Eval, Guardrail, KnowledgeSource, Loader, OutputParser, Runnable, Splitter, Tool, Tracing, VectorStore, WorkflowContext Classes: Configuration, ConfigurationError, Error, GeneratorVerifier, GuardrailError, HandoffError, LowConfidenceError, ParseError, PromptTemplate, RecursionLimitError, TokenUsage, ToolError, Workflow, WorkflowRunner

Constant Summary collapse

VERSION =
"0.5.1"

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)


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

def workflow_context_registry
  @workflow_context_registry
end

Class Method Details

.configurationObject



89
90
91
# File 'lib/phronomy.rb', line 89

def configuration
  @configuration ||= Configuration.new
end

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

Yields:



93
94
95
# File 'lib/phronomy.rb', line 93

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



70
71
72
73
74
75
76
77
78
# File 'lib/phronomy.rb', line 70

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.



98
99
100
# File 'lib/phronomy.rb', line 98

def reset_configuration!
  @configuration = Configuration.new
end

.reset_workflow_context_registry!Object

Clears the registry. Primarily used in tests.



85
86
87
# File 'lib/phronomy.rb', line 85

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