I don't really understand why I have to? I thought that the key thing was to wrap the returned deferred from within the context manager. And the failures from `Agent` do get logged in the correct context. eg


```
(eliot)(twisted_actions =)[~/.../HybridLogic/eliot]$ python examples/twisted_actions.py http://localhost{u'action_counter': 0,
 u'action_status': u'started',
 u'action_type': u'twisted_actions:main',
 u'task_level': u'/',
 u'task_uuid': u'91f1f1a2-73fc-467e-b3ba-0cdf453ed2dc',
 u'timestamp': 1401264810.794939}




{u'action_counter': 1,
 'exception': u'twisted.internet.error.ConnectionRefusedError',
 u'message_type': u'eliot:traceback',
 'reason': u'Connection was refused by other side: 111: Connection refused.',
 'system': u'twisted_actions:main',
 u'task_level': u'/',
 u'task_uuid': u'91f1f1a2-73fc-467e-b3ba-0cdf453ed2dc',
 u'timestamp': 1401264810.818807,
 'traceback': u"Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionRefusedError'>: Connection was refused by other side: 111: Connection refused.\n"}




{u'action_counter': 2,
 u'action_status': u'failed',
 u'action_type': u'twisted_actions:main',
 u'exception': u'twisted.internet.error.ConnectionRefusedError',
 u'reason': u'Connection was refused by other side: 111: Connection refused.',
 u'task_level': u'/',
 u'task_uuid': u'91f1f1a2-73fc-467e-b3ba-0cdf453ed2dc',
 u'timestamp': 1401264810.820312}
```

I'm sure I *still* don't fully understand how it all works, but perhaps the documentation needs to be made clearer or perhaps the API isn't as clear as it could be.