vv-agent 0.6.1

VectorVein agent runtime, SDK, CLI, tools, and workspace backends
Documentation
mod common;

use std::sync::Arc;

use common::{print_run_result, run_facade_prompt, ExampleConfig};
use vv_agent::{BeforeMemoryCompactEvent, Message, RunConfig, RuntimeHook};

struct KeepProjectNameHook;

impl RuntimeHook for KeepProjectNameHook {
    fn before_memory_compact(&self, event: BeforeMemoryCompactEvent<'_>) -> Option<Vec<Message>> {
        let mut messages = event.messages.to_vec();
        messages.push(Message::system(
            "压缩记忆时保留项目名 vv-agent-rs 和当前任务目标。",
        ));
        Some(messages)
    }
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = ExampleConfig::load();
    let result = run_facade_prompt(
        &config,
        "memory-demo",
        "你会产生多轮中间推理,并在上下文变长时保持核心任务信息。",
        "连续列出项目风险、机会、验证步骤,最后汇总。",
        RunConfig::builder()
            .hook(Arc::new(KeepProjectNameHook))
            .max_cycles(10)
            .build(),
    )
    .await?;
    print_run_result(&result)
}