pub struct PromptContext { /* private fields */ }Expand description
Context builder for agent system prompts
This component standardizes how agents build their system prompts by:
- Loading bootstrap files from the workspace
- Injecting memory context
- Managing skill loading and progressive disclosure
- Providing a consistent identity section
Uses RichAgentContext internally for context management.
Implementations§
Source§impl PromptContext
impl PromptContext
Sourcepub fn default_bootstrap_files() -> Vec<String>
pub fn default_bootstrap_files() -> Vec<String>
Default bootstrap files to load
Sourcepub async fn new(
workspace: impl AsRef<Path>,
) -> Result<PromptContext, AgentError>
pub async fn new( workspace: impl AsRef<Path>, ) -> Result<PromptContext, AgentError>
Create a new prompt context
Sourcepub async fn with_identity(
workspace: impl AsRef<Path>,
identity: AgentIdentity,
) -> Result<PromptContext, AgentError>
pub async fn with_identity( workspace: impl AsRef<Path>, identity: AgentIdentity, ) -> Result<PromptContext, AgentError>
Create with custom identity
Sourcepub fn with_bootstrap_files(self, files: Vec<String>) -> PromptContext
pub fn with_bootstrap_files(self, files: Vec<String>) -> PromptContext
Set the bootstrap files to load
Sourcepub fn with_always_load(self, skills: Vec<String>) -> PromptContext
pub fn with_always_load(self, skills: Vec<String>) -> PromptContext
Set skills that should always be loaded
Sourcepub async fn build_system_prompt(&mut self) -> Result<String, AgentError>
pub async fn build_system_prompt(&mut self) -> Result<String, AgentError>
Build the complete system prompt
Sourcepub async fn memory(&mut self) -> Result<&FileBasedStorage, AgentError>
pub async fn memory(&mut self) -> Result<&FileBasedStorage, AgentError>
Get memory storage reference
Sourcepub fn rich_context(&self) -> &RichAgentContext
pub fn rich_context(&self) -> &RichAgentContext
Get the rich context for extended functionality
Sourcepub fn identity(&self) -> &AgentIdentity
pub fn identity(&self) -> &AgentIdentity
Get the identity
Trait Implementations§
Source§impl Clone for PromptContext
impl Clone for PromptContext
Source§fn clone(&self) -> PromptContext
fn clone(&self) -> PromptContext
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PromptContext
impl !RefUnwindSafe for PromptContext
impl Send for PromptContext
impl Sync for PromptContext
impl Unpin for PromptContext
impl UnsafeUnpin for PromptContext
impl !UnwindSafe for PromptContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage