Build a text analysis agent that accepts a topic and returns a structured analysis with a summary, key points, and a sentiment rating. It demonstrates:Documentation Index
Fetch the complete documentation index at: https://docs.hellofriday.ai/llms.txt
Use this file to discover all available pages before exploring further.
- The
@agentdecorator for metadata - Calling an LLM through
ctx.llm.generate_object()for structured output - Returning structured data with
ok()
Prerequisites
- Friday Studio installed and running — daemon reachable at
http://localhost:18080 - Python 3.11+ and
uv(for IDE support) - A text editor (VS Code recommended)
Step 1: Set up IDE support
You need the SDK installed locally for autocomplete and type checking. Create a Python environment and install the SDK:VS Code configuration (optional)
VS Code configuration (optional)
Create Reload VS Code after creating the file. Cmd+click on
.vscode/settings.json in your agent directory:AgentContext in the next step should jump to the SDK definition.Step 2: Create the agent file
Create a directory for your agent anywhere on your machine:- A
@dataclassto define the output shape ctx.llm.generate_object()to request structured JSON from an LLM- The host’s LLM provider — your code never handles API keys
~/my-agents/text-analyzer/agent.py:
Step 3: Build and test
Restart the platform to build your agent:agents/ on startup. Verify the build succeeded:
15200:
"sentiment": "negative".
Step 4: Iterate
Editagents/text-analyzer/agent.py, then rebuild and test:
text-analyzer to the latest semver version (1.0.1).
Step 5: Register in a workspace (optional)
To use your agent within a Friday workspace (for planner routing, signals, and multi-agent orchestration), add it to your workspace’sworkspace.yml:
workspace.yml
type: user field tells Friday this is a custom Python agent. The agent: key must match the id in the @agent decorator. This step is not required for direct execution.
Advanced topics
Using the HTTP API directly
Using the HTTP API directly
For CI/CD pipelines or automation, register agents via the daemon API on port Error responses include the phase that failed (
18080:validate or write):Troubleshooting
Troubleshooting
Agent not found after registering — Check that registration returned
{"ok": true, ...}. Verify the agent ID matches what you pass to the execute command. Run friday agent list --user to see all registered agents.Build fails with syntax errors — The SDK uses pure Python dataclasses — no Pydantic. Ensure your type hints use standard library types only.Build returns 400 — Your @agent decorator metadata failed validation. Required fields: id, version, description.ImportError on third-party packages — Only the Python standard library and friday_agent_sdk are available in agent processes. You cannot import requests or import openai. Use ctx.http and ctx.llm instead.Credentials not working — Verify your .env file contains ANTHROPIC_API_KEY and restart the platform: curl -X POST http://localhost:18080/api/agents/register \ -H "Content-Type: application/json" \ -d '{"entrypoint": "/abs/path/to/agent.py"}'.Next steps
Call LLMs
Different models, structured output, and error handling.
Make HTTP requests
Fetch data from external APIs.
Use MCP tools
Invoke GitHub, databases, and other MCP servers.
How agents work
The subprocess model and host capabilities.

