Core domain type definitions for the Embabel Agent Framework, providing foundational data classes and interfaces for agent-based AI workflows including content assets, research entities, and person types with Jackson serialization and PromptContributor capabilities.
All API signatures for embabel-agent-domain types.
interface ContentAsset : HasContent, Timestamped, PromptContributor
data class Blog(
val title: String,
val author: String,
override val content: String,
override val timestamp: Instant = Instant.now(),
val keywords: Set<String> = emptySet(),
val format: String = "markdown"
) : ContentAssetdata class Summary(
val summary: String
) : HasContentProperty: content: String (from HasContent, returns summary)
interface Person {
val name: String
}
data class PersonImpl(
override val name: String
) : Personopen class NewsStory(
override val url: String,
val title: String,
override val summary: String
) : PromptContributor, Page
open class RelevantNewsStories(
val items: List<NewsStory>
) : PromptContributorMethods:
NewsStory.contribution(): String - Formatted for LLM promptsRelevantNewsStories.contribution(): String - Joined contributions or "No relevant news stories found."open class ResearchTopic(
val topic: String,
val questions: List<String>
)
open class ResearchTopics(
val topics: List<ResearchTopic>
)
open class ResearchReport(
val topic: String,
override val content: String,
override val links: List<InternetResource>
) : InternetResources, HasInfoString, ContentAssetProperty: timestamp: Instant (from ContentAsset via Timestamped, auto-set)
Methods:
infoString(verbose: Boolean? = null, indent: Int = 0): StringtoString(): String - Returns infoString(verbose = false, indent = 0)contribution(): String - Formatted for LLM promptsSee External Types for types from embabel-agent-api and embabel-common.
tessl i tessl/maven-com-embabel-agent--embabel-agent-domain@0.3.0