Max Turnの実装

This commit is contained in:
2026-04-11 03:16:36 +09:00
parent 60505f206b
commit 0fe05e502e
11 changed files with 119 additions and 5 deletions
+52
View File
@@ -2,6 +2,7 @@ mod scope;
pub use scope::Scope;
use std::num::NonZeroU32;
use std::path::PathBuf;
use serde::{Deserialize, Serialize};
@@ -56,6 +57,8 @@ pub struct WorkerManifest {
#[serde(default)]
pub max_tokens: Option<u32>,
#[serde(default)]
pub max_turns: Option<NonZeroU32>,
#[serde(default)]
pub temperature: Option<f32>,
}
@@ -151,6 +154,55 @@ model = "llama3"
assert!(manifest.provider.api_key_env.is_none());
}
#[test]
fn parse_max_turns() {
let toml = r#"
[pod]
name = "test"
[provider]
kind = "anthropic"
model = "claude-sonnet-4-20250514"
[worker]
max_turns = 50
"#;
let manifest = PodManifest::from_toml(toml).unwrap();
assert_eq!(manifest.worker.max_turns.unwrap().get(), 50);
}
#[test]
fn omitted_max_turns_is_none() {
let toml = r#"
[pod]
name = "test"
[provider]
kind = "anthropic"
model = "claude-sonnet-4-20250514"
[worker]
"#;
let manifest = PodManifest::from_toml(toml).unwrap();
assert!(manifest.worker.max_turns.is_none());
}
#[test]
fn reject_max_turns_zero() {
let toml = r#"
[pod]
name = "test"
[provider]
kind = "anthropic"
model = "claude-sonnet-4-20250514"
[worker]
max_turns = 0
"#;
assert!(PodManifest::from_toml(toml).is_err());
}
#[test]
fn reject_unknown_provider() {
let toml = r#"