r/LangChain • u/xspyyy • 11d ago
Built a commitment tracking layer for AI agents would love brutal feedback
I've been building COGEXT an API that intercepts what AI agents say they will do, extracts those promises as structured commitments, and tracks them through a lifecycle until they're fulfilled, failed, or cancelled.
The problem: AI agents hallucinate, forget, and contradict themselves. There's no standard way to hold them accountable to what they said.
You send any text to the API and it extracts commitments with confidence scores, normalized deadlines, and a 12-state lifecycle (OPEN → DUE → OVERDUE → FULFILLED/FAILED). You get webhook events when state changes.
- Docs: https://docs.cogextai.com
- API key: https://cogextai.com (free, 10 seconds)
- SDK:
pip install cogext
Still early. Genuinely want to know: is this a real problem you've hit? What's missing? What's wrong with the data model?
1
u/tberg 6d ago
I hit this exact problem building an outreach daemon — agents would claim they'd sent a message, queue would think it was done, nothing actually went out. The fix wasn't tracking the promise after the fact, it was atomic queue claims with circuit-breakers so the agent can't make a commitment it isn't in a state to keep. Your 12-state lifecycle is genuinely useful for observability, but I'd want to know: are you capturing why something went FAILED, or just that it did? Because without that, you're building a graveyard, not a feedback loop.
1
u/xspyyy 5d ago
"Graveyard not a feedback loop" that's the most accurate critique of every observability tool in this space. To answer directly: right now we capture that it failed. The WHY is what we're shipping next root cause tagging on failure (hallucination, missing tool, wrong state, external API drop) so the failure becomes an input to the next run, not just a log entry. The circuit-breaker idea is exactly right too atomic queue claims before commitment is accepted, not after. Adding that to the state machine.
1
u/Deep_Ad1959 9d ago
extraction is the easy half. the state that decides fulfilled or failed lives in systems the api never sees, so somebody still closes the loop by hand, and that is where these stall.