| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- from __future__ import annotations
- import sys
- from pathlib import Path
- from huggingface_hub import ChatCompletionInputTool
- FILENAME_CONFIG = "agent.json"
- PROMPT_FILENAMES = ("PROMPT.md", "AGENTS.md")
- DEFAULT_AGENT = {
- "model": "Qwen/Qwen2.5-72B-Instruct",
- "provider": "nebius",
- "servers": [
- {
- "type": "stdio",
- "command": "npx",
- "args": [
- "-y",
- "@modelcontextprotocol/server-filesystem",
- str(Path.home() / ("Desktop" if sys.platform == "darwin" else "")),
- ],
- },
- {
- "type": "stdio",
- "command": "npx",
- "args": ["@playwright/mcp@latest"],
- },
- ],
- }
- DEFAULT_SYSTEM_PROMPT = """
- You are an agent - please keep going until the user’s query is completely
- resolved, before ending your turn and yielding back to the user. Only terminate
- your turn when you are sure that the problem is solved, or if you need more
- info from the user to solve the problem.
- If you are not sure about anything pertaining to the user’s request, use your
- tools to read files and gather the relevant information: do NOT guess or make
- up an answer.
- You MUST plan extensively before each function call, and reflect extensively
- on the outcomes of the previous function calls. DO NOT do this entire process
- by making function calls only, as this can impair your ability to solve the
- problem and think insightfully.
- """.strip()
- MAX_NUM_TURNS = 10
- TASK_COMPLETE_TOOL: ChatCompletionInputTool = ChatCompletionInputTool.parse_obj( # type: ignore
- {
- "type": "function",
- "function": {
- "name": "task_complete",
- "description": "Call this tool when the task given by the user is complete",
- "parameters": {
- "type": "object",
- "properties": {},
- },
- },
- }
- )
- ASK_QUESTION_TOOL: ChatCompletionInputTool = ChatCompletionInputTool.parse_obj( # type: ignore
- {
- "type": "function",
- "function": {
- "name": "ask_question",
- "description": "Ask the user for more info required to solve or clarify their problem.",
- "parameters": {
- "type": "object",
- "properties": {},
- },
- },
- }
- )
- EXIT_LOOP_TOOLS: list[ChatCompletionInputTool] = [TASK_COMPLETE_TOOL, ASK_QUESTION_TOOL]
- DEFAULT_REPO_ID = "tiny-agents/tiny-agents"
|