Inspiration
I wanted to explore what an AI agent could do if it moved beyond simply answering questions and actually took action in the real world.
Procurement stood out to me because finding suppliers can involve calling multiple businesses, asking the same questions repeatedly, recording prices and availability, comparing delivery times, and deciding which option is actually best.
I was inspired to build an agent that could handle that repetitive communication for a buyer.
That became Sourcy ; an autonomous AI procurement agent that calls suppliers, collects live procurement information, analyzes the responses, and recommends the best supplier for the buyer's specific situation.
The key idea was simple: the cheapest supplier is not always the best supplier.
What it does
Sourcy allows a buyer to provide:
- Product
- Quantity
- Delivery location
- Budget
- Urgency
The agent then contacts suppliers through CALL-E, asks structured procurement questions, and collects information such as:
- Product availability
- Stock quantity
- Unit price
- Delivery cost
- Delivery time
- Bulk discounts
Sourcy converts the supplier responses into structured information and compares the available options.
It then makes a contextual recommendation based on:
- Total cost
- Budget fit
- Stock sufficiency
- Delivery speed
- Urgency
- Bulk discounts
- Supplier risk
Instead of only returning a supplier name, Sourcy explains why that supplier was selected.
The application also includes a Demo Mode, allowing the complete procurement workflow to be tested without making real phone calls.
How we built it
Sourcy was built with Python, Streamlit, and the CALL-E Python SDK.
The system was developed incrementally, starting with supplier sourcing and quote collection and evolving into a smart procurement decision engine.
The core workflow is:
Buyer request → Supplier calls → Information extraction → Supplier comparison → Contextual scoring → Recommendation → Explanation
CALL-E provides the communication layer that allows the agent to interact with suppliers by phone.
The procurement engine handles the reasoning around those conversations. It evaluates supplier quotes against the buyer's budget, urgency, requested quantity, delivery requirements, and supplier risk.
I also built a Demo Mode with predefined supplier responses so I could repeatedly test different procurement scenarios without using real phone calls.
Challenges we ran into
One of the biggest challenges was deciding what actually makes a supplier "best."
At first, it would be easy to simply select the supplier with the lowest price. But that quickly becomes unreliable.
For example, a cheaper supplier might not have enough stock or might take too long to deliver for an urgent request.
I therefore had to build a decision system that could balance multiple factors rather than optimize for price alone.
I also had to handle different procurement situations, including:
- Normal procurement
- Urgent procurement
- Tight budgets
- No budget specified
- Quantities exceeding supplier capacity
- Flexible delivery requirements
Another challenge was turning conversational supplier responses into structured information that the rest of the system could reason about.
Finally, because real phone calls have a cost and side effect, I separated Live Mode from Demo Mode so that development and testing could happen safely.
Accomplishments that we're proud of
The biggest accomplishment is that Sourcy became more than a phone-call demo.
It combines real phone-based agent interaction with a decision-making system.
In Live Mode, the agent can use CALL-E to communicate with suppliers. After the conversation, Sourcy can process the information and use it to make a procurement recommendation.
I am also proud of the contextual decision engine.
For example, changing the buyer's urgency can change which supplier is recommended. Changing the budget can also affect the recommendation. A supplier that looks attractive based on price alone can be rejected if it cannot fulfill the required quantity.
I also built explanations around the recommendation so the buyer can understand the reasoning instead of receiving an unexplained AI decision.
Most importantly, I built the project incrementally and tested the complete workflow across different procurement scenarios.
What we learned
Building Sourcy taught me that an effective AI agent is not just an LLM connected to an API.
The useful part is the workflow surrounding the AI:
input → action → evidence → analysis → decision → explanation
I learned how important structured information is when building agentic systems. A phone conversation is useful, but the information gathered from that conversation needs to be extracted into something the system can reason about.
I also learned that real-world decisions are often contextual. Optimizing for a single variable such as price can produce a bad decision when other constraints matter.
Most importantly, CALL-E showed me how an AI agent can move from simply generating text to communicating with the real world and taking meaningful action.
What's next for Sourcy
The next version of Sourcy could become a much more complete procurement assistant.
I would like to add:
- Automatic supplier discovery
- A larger and more persistent supplier database
- Negotiation during supplier calls
- Supplier reliability and performance history
- Purchase-order generation
- Human approval before an order is placed
- More advanced supplier risk scoring
- Integration with existing business procurement systems
The long-term goal is for Sourcy to handle more of the procurement workflow autonomously while keeping important purchasing decisions under human control.
Sourcy started as an experiment in AI phone agents, but it has evolved into my exploration of how AI can communicate, gather real-world information, reason about constraints, and turn that information into an actionable business decision.
Built With
- ai-agents
- artificial-intelligence
- automation
- call-e
- decision-making
- procurement
- python
- streamlit
- supplier-management
- voice-ai
Log in or sign up for Devpost to join the conversation.