Add persistent local agent tools
This commit is contained in:
@@ -319,6 +319,7 @@ pub(crate) struct Generator {
|
||||
#[derive(Clone)]
|
||||
pub(crate) struct ChatTurn {
|
||||
pub(crate) user: bool,
|
||||
pub(crate) tool: bool,
|
||||
pub(crate) skip_previous_eos: bool,
|
||||
pub(crate) reasoning: Option<String>,
|
||||
pub(crate) reasoning_complete: bool,
|
||||
@@ -571,6 +572,7 @@ impl Generator {
|
||||
let mut reasoning = settings.reasoning_mode != ReasoningMode::Direct;
|
||||
let mut generated = ChatTurn {
|
||||
user: false,
|
||||
tool: false,
|
||||
skip_previous_eos: false,
|
||||
reasoning: reasoning.then(String::new),
|
||||
reasoning_complete: !reasoning,
|
||||
@@ -896,7 +898,7 @@ fn conversation_key(system: &str, reasoning: ReasoningMode, messages: &[ChatTurn
|
||||
output.extend_from_slice(value.as_bytes());
|
||||
}
|
||||
|
||||
let mut output = b"DS4Server chat checkpoint v2".to_vec();
|
||||
let mut output = b"DS4Server chat checkpoint v3".to_vec();
|
||||
text(&mut output, system);
|
||||
output.push(match reasoning {
|
||||
ReasoningMode::Direct => 0,
|
||||
@@ -905,6 +907,7 @@ fn conversation_key(system: &str, reasoning: ReasoningMode, messages: &[ChatTurn
|
||||
});
|
||||
for message in messages {
|
||||
output.push(u8::from(message.user));
|
||||
output.push(u8::from(message.tool));
|
||||
output.push(u8::from(message.skip_previous_eos));
|
||||
match &message.reasoning {
|
||||
Some(reasoning) => {
|
||||
@@ -1057,6 +1060,7 @@ mod sampling_tests {
|
||||
fn split_utf8_token_bytes_are_joined_before_decoding() {
|
||||
let mut generated = ChatTurn {
|
||||
user: false,
|
||||
tool: false,
|
||||
skip_previous_eos: false,
|
||||
reasoning: None,
|
||||
reasoning_complete: true,
|
||||
@@ -1076,6 +1080,7 @@ mod sampling_tests {
|
||||
fn checkpoint_tag_covers_the_canonical_chat_state() {
|
||||
let mut messages = vec![ChatTurn {
|
||||
user: true,
|
||||
tool: false,
|
||||
skip_previous_eos: false,
|
||||
reasoning: None,
|
||||
reasoning_complete: true,
|
||||
@@ -1102,6 +1107,7 @@ mod sampling_tests {
|
||||
let prefix = conversation_key("System", ReasoningMode::High, &messages);
|
||||
messages.push(ChatTurn {
|
||||
user: false,
|
||||
tool: false,
|
||||
skip_previous_eos: false,
|
||||
reasoning: Some("because".into()),
|
||||
reasoning_complete: true,
|
||||
|
||||
Reference in New Issue
Block a user