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