An Open Agent Architecture