Write normal LangChain code. Get Temporal durability. One decorator.
DuraLang exposes 3 tools (dura__tool, dura__llm, dura__mcp) that are Temporal activity wrappers, not user-facing agent tools. Tool names violate verb_noun convention (dura__ prefix is framework-internal, not action-oriented). Descriptions exist but are terse (30-60 chars) and lack LLM-optimized guidance on WHEN to use each tool or what downstream actions they enable. Input schemas are present with type declarations but lack parameter descriptions, critical for LLM reasoning. No output schema documentation. Error handling is present in code (ValueError/TypeError caught) but not surfaced in tool descriptions. These are infrastructure tools, not domain tools, they lack the composition patterns needed for agent planning.
Execute a single LLM inference call. Reconstructs the LLM from LLMIdentity, rebinds tools, invokes, returns serialized AIMessage.
Execute a single MCP server tool call.
Execute a single tool call. Non-retryable errors (ValueError, TypeError, KeyError) are caught and returned as error results. Retryable errors (network, timeout) are re-raised for Temporal retry.
Tool names do not follow verb_noun convention. 'dura__tool', 'dura__llm', 'dura__mcp' are framework-internal identifiers, not action verbs. LLMs cannot infer intent from names alone.
Input parameters lack descriptions. 'tool_name', 'messages', 'llm_identity', 'arguments' have type declarations but no guidance on format, constraints, or valid values. LLMs cannot reason about parameter semantics.
No output schema documentation. Tool descriptions do not specify what fields are returned or their types. Agents cannot plan downstream tool calls without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | 2026-07-28+ | v2 |
Tool descriptions are under 20 characters for dura__mcp ('Execute a single MCP server tool call.' = 40 chars, but lacks WHEN/WHY guidance). Descriptions do not explain when to select this tool vs alternatives or what prerequisites exist.
These are infrastructure/framework tools, not domain tools. They lack composition patterns (tool chaining, idempotency, natural identifiers). Agents using these tools must reason about Temporal internals, not domain intent.