minimal.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python3
  2. """Run one minimal-agent turn through the bundled Python SDK runtime."""
  3. from __future__ import annotations
  4. import argparse
  5. import os
  6. from pathlib import Path
  7. from deepseek_harness import DeepSeekHarness
  8. def main() -> None:
  9. """Parse one task and print the agent's final response."""
  10. parser = argparse.ArgumentParser()
  11. configured_home = os.environ.get("DSH_HOME", "")
  12. parser.add_argument("prompt", help="Task for the minimal agent")
  13. parser.add_argument("--workspace", type=Path, default=Path.cwd())
  14. parser.add_argument(
  15. "--dsh-home",
  16. type=Path,
  17. default=Path(configured_home) if configured_home.strip() else None,
  18. )
  19. parser.add_argument("--profile", default="sdk-minimal")
  20. parser.add_argument("--session-id")
  21. parser.add_argument("--provider", default="deepseek-official")
  22. parser.add_argument("--model", default=os.environ.get("DSH_MODEL", "deepseek-v4-flash"))
  23. parser.add_argument("--max-tokens", type=int)
  24. args = parser.parse_args()
  25. if args.dsh_home is None:
  26. parser.error("--dsh-home or a non-empty DSH_HOME is required")
  27. workspace = args.workspace.resolve()
  28. dsh_home = args.dsh_home.resolve()
  29. with DeepSeekHarness(
  30. provider=args.provider,
  31. model=args.model,
  32. max_tokens=args.max_tokens,
  33. cwd=str(workspace),
  34. dsh_home=str(dsh_home),
  35. profile=args.profile,
  36. env={"DSH_MODEL": args.model},
  37. ) as harness:
  38. result = harness.run(args.prompt, session_id=args.session_id)
  39. print(result.final_response)
  40. if __name__ == "__main__":
  41. main()