Define Agent and swarm-specific acceptance evidence, move the reports under docs, and make the homepage point to the current standard, live run, model I/O, and handoff evidence. Constraint: Agent quality standards are configured from industry AI and agent risk references because there is no single accepted swarm-Agent certification standard. Rejected: Treating py_compile or unittest as the primary quality standard | they are evidence collection tools, not the Agent quality standard itself. Confidence: high Scope-risk: moderate Directive: Keep future standard reports under docs/ and keep secrets in ignored local .env files only. Tested: git diff --cached --check; python -B -m py_compile swarm_minimal/*.py examples/*.py tests/*.py; python -B -m unittest discover -s tests; python -u -B examples/run_academic_standard_evaluation.py Not-tested: Did not rerun the full live Azure/NewAPI S07 scenario after moving docs; previous live run 3e8e58ae4e084bc8b90cf5c46f8992f3 passed before the docs relocation. Co-authored-by: OmX <omx@oh-my-codex.dev>
64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
from pathlib import Path
|
|
import json
|
|
import sys
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(ROOT))
|
|
|
|
from swarm_minimal.azure_store import PostgresRedisBlobSwarmStore
|
|
from swarm_minimal.config import SwarmConfig
|
|
from swarm_minimal.core import SwarmCoordinator, Task
|
|
from swarm_minimal.local_env import load_project_env
|
|
from swarm_minimal.newapi_agnet import (
|
|
NewApiChannelConfig,
|
|
build_model_test_agnets,
|
|
discover_newapi_models,
|
|
select_distinct_models,
|
|
)
|
|
|
|
|
|
def main() -> None:
|
|
load_project_env(ROOT)
|
|
azure_config = SwarmConfig.from_env()
|
|
newapi_config = NewApiChannelConfig.from_env()
|
|
print("azure_config:")
|
|
print(json.dumps(azure_config.redacted_summary(), ensure_ascii=False, indent=2))
|
|
print("newapi_config:")
|
|
print(json.dumps(newapi_config.redacted_summary(), ensure_ascii=False, indent=2))
|
|
|
|
store = PostgresRedisBlobSwarmStore(azure_config)
|
|
try:
|
|
store.ensure_schema()
|
|
models = select_distinct_models(discover_newapi_models(newapi_config), count=3)
|
|
print("selected_models:")
|
|
for model in models:
|
|
print(f"- {model}")
|
|
|
|
agents = build_model_test_agnets(newapi_config, models=models)
|
|
coordinator = SwarmCoordinator(store=store, agents=agents)
|
|
goal = "full live test: Azure-backed swarm with three NewAPI model Agnets"
|
|
run_id = coordinator.submit_goal(goal)
|
|
|
|
for index, model in enumerate(models):
|
|
store.add_task(
|
|
Task(
|
|
kind=f"model_test_{index + 1}",
|
|
input=f"{goal}; model={model}",
|
|
)
|
|
)
|
|
|
|
result = coordinator.run_until_converged(run_id)
|
|
print("run_id:", result.run_id)
|
|
print("accepted_score:", result.accepted_score)
|
|
print("completed_tasks:", result.completed_tasks)
|
|
print("accepted_task_id:", result.accepted_task_id)
|
|
print("accepted_output:", result.accepted_output)
|
|
print("artifact_path:", f"swarm-runs/{result.run_id}/result.json")
|
|
finally:
|
|
store.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|