agent_factory.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from hello_agents import Config, SimpleAgent, ToolRegistry
  2. from app.prompts.standard_code_prompt import STANDARD_CODE_PROMPT
  3. from app.prompts.standard_prompt import STANDARD_PROMPT
  4. from app.prompts.inspire_prompt import INSPIRE_PROMPT
  5. from app.services.llm_service import LLMService
  6. from app.tools.mermaid_validator_tool import MermaidValidatorTool
  7. EXECUTION_HINT = "执行要求:先调用 MermaidValidatorTool 校验;若返回 INVALID 再修复并调用一次;最终仅输出 Mermaid 代码。"
  8. def _prompt_by_mode(mode: str) -> str:
  9. if mode == "standard-code":
  10. return STANDARD_CODE_PROMPT
  11. if mode == "standard":
  12. return STANDARD_PROMPT
  13. return INSPIRE_PROMPT
  14. def _fast_config() -> Config:
  15. return Config(
  16. trace_enabled=False,
  17. skills_enabled=False,
  18. session_enabled=False,
  19. subagent_enabled=False,
  20. todowrite_enabled=False,
  21. devlog_enabled=False,
  22. stream_enabled=False,
  23. enable_smart_compression=False,
  24. temperature=0.2,
  25. )
  26. def build_agent(mode: str, validator: MermaidValidatorTool) -> SimpleAgent:
  27. registry = ToolRegistry()
  28. registry.register_tool(validator)
  29. return SimpleAgent(
  30. name=f"plan2flow-{mode}-agent",
  31. llm=LLMService.create_llm(),
  32. system_prompt=f"{_prompt_by_mode(mode)}\n{EXECUTION_HINT}",
  33. tool_registry=registry,
  34. config=_fast_config(),
  35. enable_tool_calling=True,
  36. max_tool_iterations=2,
  37. )