- Feature Name: (fill with a unique identifier,
my_feature_name) - Start Date: (fill with today's date, YYYY-MM-DD)
- RFC PR: rfcs#0000
- Tracking Issue: astrid#0000
One paragraph explanation of the feature.
Why are we doing this? What use cases does it support? What is the expected outcome?
This is the most important section. Motivate the need for the standard clearly.
Explain the interface as if teaching it to a capsule developer who wants to implement this standard. Introduce concepts, walk through examples, explain how a conforming capsule behaves from the user's perspective.
This is the technical portion of the RFC. Define precisely:
- Tool names and their semantics
- Input schemas (JSON with field types, required/optional, constraints)
- Output schemas (success and error shapes)
- Host function requirements (if any)
- Event types emitted (if any)
- Ordering and concurrency guarantees
- Error handling contract
Be thorough enough that an independent developer can implement a conforming capsule from this section alone.
Why should we not do this?
- Why is this design the best among alternatives?
- What other designs were considered and why were they rejected?
- What is the impact of not standardizing this?
Discuss prior art, both the good and the bad, in relation to this proposal. This can include similar interfaces in other agent runtimes, plugin systems, or protocol standards.
- What parts of the design are still to be determined?
- What related issues are out of scope for this RFC but should be addressed in the future?
Think about what natural extensions and evolutions this RFC enables. This is a good place to "dump ideas" that are related but out of scope.