Inspiration
As a freelancer juggling multiple clients, I found myself drowning in spreadsheets, sticky notes, and half a dozen SaaS tools. Project tracking in Notion, contracts in Google Docs, invoices in Stripe, follow-up reminders in my head — the overhead was eating 30% of my billable hours. I wondered: what if a single AI agent could manage all of this through natural conversation?
That's how Solo Worker OS was born — an AI-native operating system for solo workers and freelancers, where the entire business workflow runs through one chat interface.
What it does
Solo Worker OS turns freelance business management into a conversation. You just talk to the AI agent, and it handles the rest:
- "New client — Marcus Rivera, e-commerce platform, budget $15,000, deadline August 15" → The agent extracts structured data, asks for clarification if needed, then creates the project in the database
- "Generate a contract for Marcus's project" → The agent drafts a full service agreement with payment terms, scope, and timeline
- "Which projects are overdue?" → The agent queries the database and prioritizes your follow-ups
- "Write a firm follow-up email for the unpaid Sarah invoice" → The agent generates a professional payment reminder in your chosen tone
Behind the scenes, the agent runs a full agentic loop: it reasons over your request, selects the right tools, chains multi-step workflows, and executes autonomously. When Casper blockchain mode is enabled, it can even verify on-chain payments — "Marcus has 45,000 CSPR on testnet, well above the $15,000 invoice."
How we built it
We built Solo Worker OS on a flexible, provider-agnostic agent framework, using Qwen Cloud as the core LLM. The system autonomously handles intent recognition, structured data extraction, tool calling, and multi-step workflow chaining, converting casual natural language conversations into executable freelance business operations including project creation, contract drafting, progress inquiry, and customized email generation.
Challenges we ran into
Tool call streaming — DashScope's streaming API buffers tool_calls differently from text chunks. We had to carefully parse SSE deltas, buffer partial function arguments, and execute tools only when the complete call arrived.
- Agentic loop termination — The agent sometimes kept calling tools in circles. We solved this with a max-iteration cap (6) and by checking
finish_reasonto distinguish between "needs more tools" and "task complete." - Clarification vs. action — Training the agent to ask for missing information (e.g., "Is 3000元 CNY or SGD?") before executing, rather than guessing wrong and rolling back.
- Context window management — Injecting the full project list into every prompt could exceed context limits with many projects. We mitigated this by keeping project summaries concise and implementing a relevance filter for large datasets. ## Accomplishments that we're proud of
- Zero hardcoded workflows — the agent decides which tools to call and in what order, purely from Qwen's reasoning over the system prompt
- Bilingual support — the entire UI works in both English and Chinese, with server-side language detection ## What we learned
- Agentic loops require careful guardrails — unlimited iterations lead to circular reasoning
- Streaming + function calling is significantly harder than batch API calls — the SSE parsing logic took multiple iterations to get right
- Persistent memory transforms an AI assistant into an operating system — the agent feels qualitatively different when it remembers everything ## What's next for Solo Work OS
- Payment detection webhook — listen for on-chain events and auto-update project status
- Voice interface — manage projects hands-free
- Multi-agent collaboration — specialized sub-agents for design, development, and finance
Built With
- casper-network
- function-calling
- next.js-14
- postgresql
- qwen-cloud-(dashscope-api)
- sse-streaming
- supabase
- tailwind-css
- typescript
Log in or sign up for Devpost to join the conversation.