Certified Agent Developer

📝 Take Exam: Start Level 1 Written Exam
Accept the assignment to get your exam repository. Submit answers by creating an issue.

   
Duration 45 minutes
Questions 30
Passing Score 70% (21 correct)

Section 1: Core Concepts (10 questions)

Question 1: What is SWML?

  • A) A Python framework for building agents
  • B) A JSON document format that tells SignalWire how to handle calls
  • C) A text-to-speech engine
  • D) A database for storing call data

Question 2: Which class is the foundation for all SignalWire agents?

  • A) SWMLService
  • B) SwaigFunction
  • C) AgentBase
  • D) VoiceAgent

Question 3: What does SWAIG stand for?

  • A) SignalWire Agent Integration Gateway
  • B) SignalWire AI Gateway
  • C) Smart Web AI Generator
  • D) Signal Wire Application Interface

Question 4: When a call arrives at your agent, what does SignalWire request?

  • A) A phone number to forward to
  • B) An audio file to play
  • C) A SWML document with instructions
  • D) User credentials

Question 5: What is the purpose of the ai verb in SWML?

  • A) To play audio files
  • B) To create an AI-powered conversation
  • C) To transfer calls
  • D) To record the call

Question 6: What happens when a user asks something that requires a function call?

  • A) The call disconnects
  • B) SignalWire calls your SWAIG endpoint with the function request
  • C) The AI makes up an answer
  • D) The call transfers to a human

Question 7: Which of these is NOT a SignalWire platform component?

  • A) SWML Engine
  • B) AI Gateway
  • C) Phone Numbers
  • D) Code Compiler

Question 8: What must every SWML document include?

  • A) A phone number
  • B) A version field and sections object with main array
  • C) User authentication
  • D) Audio files

Question 9: Why is ngrok useful for agent development?

  • A) It compiles Python code faster
  • B) It provides a public URL to reach your localhost
  • C) It generates SWML automatically
  • D) It stores call recordings

Question 10: What is the primary purpose of basic authentication on your agent?

  • A) To improve call quality
  • B) To prevent unauthorized access to your endpoints
  • C) To speed up response time
  • D) To enable voice recognition

Section 2: Building Agents (10 questions)

Question 11: What is the minimum code needed to create a working agent?

  • A) agent = AgentBase(name="my-agent") and agent.run()
  • B) agent = AgentBase() only
  • C) A full class definition with at least 5 methods
  • D) A YAML configuration file

Question 12: What is the Prompt Object Model (POM)?

  • A) A database for storing prompts
  • B) A structured way to build prompts using sections
  • C) A text-to-speech engine
  • D) A testing framework

Question 13: Which method adds a prompt section to an agent?

  • A) agent.set_prompt()
  • B) agent.prompt_add_section()
  • C) agent.add_prompt()
  • D) agent.create_section()

Question 14: What do “fillers” do in a voice agent?

  • A) Fill in missing words in speech recognition
  • B) Provide phrases spoken while processing or waiting
  • C) Complete incomplete sentences
  • D) Fill database fields

Question 15: Which code correctly configures voice?

  • A) agent.voice("English", "en-US", "rime.spore")
  • B) agent.add_language("English", "en-US", "rime.spore")
  • C) agent.set_voice("rime.spore")
  • D) agent.configure_tts("English")

Question 16: What is the purpose of if __name__ == "__main__":?

  • A) To define the main prompt
  • B) To ensure code only runs when file is executed directly
  • C) To set the agent name
  • D) To configure authentication

Question 17: What is wrong with this prompt for a voice agent?

“Click the blue button to proceed, then fill out the form on page 2.”

  • A) It’s too short
  • B) It references visual/web elements that callers can’t see
  • C) It uses incorrect grammar
  • D) Nothing is wrong

Question 18: What command generates SWML from an agent file?

  • A) python agent.py --swml
  • B) swml-generate agent.py
  • C) swaig-test agent.py --dump-swml
  • D) signalwire build agent.py

Question 19: Which is a valid language code?

  • A) english-us
  • B) en-US
  • C) ENGLISH
  • D) us-en

Question 20: What is the class-based agent pattern best for?

  • A) Simple, one-line agents
  • B) Agents with complex logic and multiple methods
  • C) Agents without functions
  • D) Testing only

Section 3: SWAIG Functions (10 questions)

Question 21: What decorator creates a SWAIG function?

  • A) @function
  • B) @agent.tool
  • C) @swaig
  • D) @callable

Question 22: What parameter is REQUIRED in the @tool decorator?

  • A) name
  • B) parameters
  • C) description
  • D) secure

Question 23: What must a SWAIG function return?

  • A) A string
  • B) A dictionary
  • C) A SwaigFunctionResult
  • D) None

Question 24: How does the AI know when to call a specific function?

  • A) Random selection
  • B) Based on the function’s description matching user intent
  • C) Based on the function’s name
  • D) The user must request it explicitly

Question 25: What does this parameter definition create?

def search(query: str, limit: int = 10)
  • A) Two required parameters
  • B) One required (query) and one optional (limit) parameter
  • C) Two optional parameters
  • D) Invalid syntax

Question 26: How do you test a function without making a call?

  • A) python agent.py --test
  • B) swaig-test agent.py --exec function_name --param value
  • C) curl localhost:3000/test
  • D) Functions can only be tested with live calls

Question 27: What is the purpose of function fillers?

  • A) To fill in missing parameters
  • B) To provide speech while the function is processing
  • C) To complete the function code
  • D) To fill the database

Question 28: Which is a valid enum parameter definition?

  • A) "enum": "sales, support, billing"
  • B) "enum": ["sales", "support", "billing"]
  • C) "type": "enum"
  • D) "options": ["sales", "support", "billing"]

Question 29: What command lists all functions in an agent?

  • A) swaig-test agent.py --list-tools
  • B) swaig-test agent.py --functions
  • C) python agent.py --list
  • D) signalwire functions agent.py

Question 30: What happens when a function returns an error message in SwaigFunctionResult?

  • A) The call disconnects
  • B) The AI incorporates the message into its response to the caller
  • C) An error log is created
  • D) The function is retried automatically

Submission

Submit your answers via GitHub Classroom. Your exam will be auto-graded.


Scoring

  • 27-30 correct: Excellent
  • 24-26 correct: Good
  • 21-23 correct: Pass
  • Below 21: Review required

Next: Level 1 Practical Exam


Back to top

SignalWire AI Agents Certification Program